Skip to content

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