> On Apr 20, 2016, at 4:37 PM, Joseph Bell via swift-dev <swift-dev@swift.org> 
> wrote:
> 
> I've noticed in Xcode there are a lot of fixits that tell you exactly what to 
> do to "fix it", and it will do it for you.  However, this does not apply to 
> "does not conform to protocol" errors; I'm wondering if it is possible for 
> the fixit engine to add methods/properties such that, at a minimum, a user 
> knows what to actually add/implement to get protocol conformance.

It is absolutely possible and would be a wonderful improvement. The trickiest 
part comes down to synthesizing the right declaration (basically, creating what 
the user should have written) so it can be presented to the user in the Fix-It 
text. We actually have some code that does something similar. Try this in Xcode:

class A {
  required init(x: Int, y: String) { }
}

class B : A {
  init() {
    super.init(x: 5, y: "hello")
  }
}

and you get a Fix-It that adds the missing required initializer:

  required init(x: Int, y: String) {
    fatalError("init(x:y:) has not been implemented")
  }

(That’s lib/Sema/TypeCheckDecl.cpp’s diagnoseMissingRequiredInitializer(), 
FWIW).

        - Doug


_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to