<FromGitter>
<HertzDevil> what's the difference between `Type#covariant?` and `Type#implements?`
<FromGitter>
<HertzDevil> (in the compiler)
deavmi has quit [Ping timeout: 272 seconds]
deavmi has joined #crystal-lang
_whitelogger has joined #crystal-lang
f1reflyylmao has joined #crystal-lang
f1refly has quit [Ping timeout: 245 seconds]
f1reflyylmao is now known as f1refly
f1reflyylmao has joined #crystal-lang
f1refly has quit [Ping timeout: 260 seconds]
f1reflyylmao is now known as f1refly
_ht has joined #crystal-lang
fifr` has joined #crystal-lang
deavmi has quit [Ping timeout: 256 seconds]
deavmi has joined #crystal-lang
deavmi has quit [Ping timeout: 264 seconds]
deavmi has joined #crystal-lang
deavmi has quit [Quit: Eish! Load shedding.]
deavmi has joined #crystal-lang
hendursa1 has joined #crystal-lang
hendursaga has quit [Ping timeout: 268 seconds]
<FromGitter>
<asterite> @HertzDevil I can't remember. Maybe they are the same, or they are slightly different. The easiest thing would be to make one call the other and see what specs fail. In any case, the `Type` type has too many methods and most of them are very confusing.
ua has quit [Ping timeout: 246 seconds]
ua has joined #crystal-lang
ua has quit [Ping timeout: 246 seconds]
ua has joined #crystal-lang
<FromGitter>
<asterite> It's probably different for procs
<FromGitter>
<HertzDevil> the only two places that use `Type#covariant?` are when checking abstract def arg restrictions and when checking `Proc#call`'s arguments