, , , , , , println . 2.12 - dominates , :
overlaps(dtor1, dted1) && (dtor1 =:= dted1 || {
val dtorC = complexity(dtor1)
val dtedC = complexity(dted1)
val result = dtorC > dtedC
println(if (result) "Dominates:" else "Does not dominate:")
println(s"$dtor (complexity: $dtorC)")
println(s"$dted (complexity: $dtedC)")
println("===========================")
result
})
sbt publishLocal scalac :
Dominates:
TC[shapeless.::[String,shapeless.::[String,shapeless.HNil]]] (complexity: 7)
TC[shapeless.:+:[ComplexClass,shapeless.CNil]] (complexity: 6)
===========================
, TC String :: String :: HNil ( node ), ComplexClass :+: CNil ( ). , String :: String :: HNil ComplexClass :+: CNil, - , .
, , , , . :
case class Foo(i: Int) extends Trait2
, :
Does not dominate:
TC[shapeless.::[String,shapeless.::[String,shapeless.HNil]]] (complexity: 7)
TC[shapeless.:+:[ComplexClass,shapeless.:+:[Foo,shapeless.CNil]]] (complexity: 9)
, ComplexClass hlist Trait2, , Trait2 ( TC, ) .
, ,