-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[ModuleInterface] Don't print extensions of internal types #19440
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@swift-ci Please smoke test |
if (auto *ED = dyn_cast<ExtensionDecl>(D)) { | ||
if (!shouldPrint(ED->getExtendedNominal(), options)) | ||
return false; | ||
// FIXME: We also need to check the generic signature for constraints |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is essentially already what the code in AccessRequests.cpp is doing. Isn't checking the extension's max access sufficient here?
Also I notice in shouldPrint() you have some special logic for typealiases. Please refactor this to use isPassthroughTypeAlias(), which is in Sema right now but could move to a method on TypeAliasDecl.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Max access doesn't take UFI into account. EDIT: …but I'll make sure not to duplicate the code when I do the right thing.
The logic that's there isn't for passthrough typealiases; it's for the typealiases synthesized in the body of generic types.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if it would be better if we changed associated type inference to not create those special typealiases for generic parameters at all.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, when it first went in Doug mentioned that that's where we want to go. We can remove this then.
@@ -102,3 +102,12 @@ extension PublicStruct { | |||
// CHECK: public private(set) static var secretlySettable: Int{{$}} | |||
public private(set) static var secretlySettable: Int = 0 | |||
} // CHECK: {{^[}]$}} | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add a CHECK-NOT
for InternalStruct_BAD
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's one at the top of the file that just says "BAD" must not appear anywhere. :-)
Any further feedback? |
I admit to doing the easy part of this first. I'll file a bug so I don't forget about the second part, but it looks like nothing in the overlays is using that right now.