たとえば、式が整数型 (Byte、Short、Int、Long) であるかどうかを確認する必要がありますが、Double または Float ではありません。次のコードは常に機能するとは限りません。
case Apply(Select(q, n), List(rhs)) =>
if (q.tpe.weak_<:<(typeOf[Long])) true else false
いくつかの q では、たとえ Int 型であっても、tpe は弱適合されません:
a.type weak_<:< Long == false
q.symbol.typeSignature
代わりにq.tpe
正しく動作しますが、すべてが機能しているわけではありませq
んsymbol != NoSymbol