-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[CodeCompletion] Polish unresolved member completion #19953
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
[CodeCompletion] Polish unresolved member completion #19953
Conversation
in unresolved member completion.
* Early exit for operators * Early exit for equal types
in unresolved member completion. e.g. struct Node { typealias Child = Node init(children: [Child]) {} } let node: Node = .#^COMPLETE^# This used to emit `.init(children:)` and `.Child(children:)`.
@swift-ci Please smoke test |
Using If we could lower the priority of these would that be sufficient? That would be fine with me since I can just type out "init" to filter to them anyway. |
I was a little unclear about this. I'm not removing before
after
I'm only removing member type constructions, because they are basically dupes of |
I see. Could you clarify this in the PR description then? It says:
It sounds like this only applies to the second case. |
.init(children:)
and.Child(children:)
. But emitting.Child(children:)
is meaningless and may confuse users, especially if the type has many initializers.For example,
String
has several member types aliased toString
such asUnicodeScalarLiteralType
,StringLiteralType
. Emitting.StringLiteralType()
along with.init()
doesn't make sense.