Skip to content

[AST] Don't return decls from unsatisfied conformance #23332

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

Conversation

rintaro
Copy link
Member

@rintaro rintaro commented Mar 15, 2019

in lookupVisibleMemberDecls().

When a type conditionally conforms to a protocol, it used to unconditionally provide symbols from extension to that protocol.
e.g.:

  protocol P {}
  extension P {
    func foo() {}
  }

  struct S<T> {}
  extension S: P where T == Int {}

  func test(val: S<String>) {
    val.#^COMPLETE^#
  }

This should not provide foo() method.

rdar://problem/36594731

@rintaro
Copy link
Member Author

rintaro commented Mar 15, 2019

@swift-ci Please smoke test

@rintaro
Copy link
Member Author

rintaro commented Mar 15, 2019

@swift-ci Please smoke test Linux platform

When a type conditionally conforms to a protocol, it used to provide
symbols from extension to that protocol.
e.g.:

  protocol P {}
  extension P {
    func foo() {}
  }

  struct S<T> {}
  extension S: P where T == Int {}

  func test(val: S<String>) {
    val.#^COMPLETE^#
  }

This should not provide `foo()` method.

rdar://problem/36594731
@rintaro rintaro force-pushed the ide-completion-conformance-rdar36594731 branch from fe94ba0 to dcb1db2 Compare March 15, 2019 22:52
@rintaro
Copy link
Member Author

rintaro commented Mar 15, 2019

@swift-ci Please smoke test

@natecook1000
Copy link
Member

@swift-ci Please smoke test Linux platform

@rintaro
Copy link
Member Author

rintaro commented Mar 20, 2019

@benlangmuir @slavapestov Could you review this?

@rintaro rintaro merged commit 232e4a4 into swiftlang:master Mar 25, 2019
@rintaro rintaro deleted the ide-completion-conformance-rdar36594731 branch April 19, 2019 16:59
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