generics - What does the "_" type mean in swift error messages? -


occasionally when using generics, error message refers "_" parameter. doesn't appear documented. mean?

as example, error:

cannot convert value of type 'jawdroppingfeat<superhero>' closure result type 'jawdroppingfeat<_>' 

when try compile:

protocol superherotype {   typealias superpower }  struct jawdroppingfeat<superhero: superherotype superhero: arbitrary, superhero.superpower: arbitrary>: arbitrary {   let subject: superhero   let superpowerused: superhero.superpower    static var arbitrary: gen<jawdroppingfeat<superhero>> {     {       return gen.zip(superhero.arbitrary, superhero.superpower.arbitrary)         .map{ (x: superhero, y: superhero.superpower) in           jawdroppingfeat(subject: x, superpowerused: y)         }     }   } } 

the gen , arbitrary types swiftcheck , relevant declarations are:

public struct gen<a> {   public static func zip<a, b>(gen1: swiftcheck.gen<a>, _ gen2: swiftcheck.gen<b>) -> swiftcheck.gen<(a, b)>   public func map<b>(f: -> b) -> swiftcheck.gen<b> }  public protocol arbitrary {   public static var arbitrary: swiftcheck.gen<self> { } } 

i assume <_> swift failing infer type parameter rather image of chris lattner wincing @ me. have more precise (and documented) meaning?

edit

my best current theory when swift fails infer type parameter, instead of failing immediately, assigns null (_) type, results in actual compile error downstream @ point incompatible type (in case, parameters .map) passed.

it means have incomplete type information in return value of parameter.

in case .map function returning generic jawdroppingfeat did not specify embedded type.

i assume meant write

 jawdroppingfeat<superhero>(subject: x, superpowerused: y) 

Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

css - Make div keyboard-scrollable in jQuery Mobile? -

ruby on rails - Seeing duplicate requests handled with Unicorn -