Skip to content

[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

Merged
merged 1 commit into from
Sep 26, 2018

Conversation

jrose-apple
Copy link
Contributor

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.

@jrose-apple
Copy link
Contributor Author

@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
Copy link
Contributor

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.

Copy link
Contributor Author

@jrose-apple jrose-apple Sep 21, 2018

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.

Copy link
Contributor

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.

Copy link
Contributor Author

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: {{^[}]$}}

Copy link
Contributor

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?

Copy link
Contributor Author

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. :-)

@jrose-apple
Copy link
Contributor Author

Any further feedback?

@jrose-apple jrose-apple merged commit b29f010 into swiftlang:master Sep 26, 2018
@jrose-apple jrose-apple deleted the shhhh branch September 26, 2018 21:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants