[[syntax trees at end of specialize]] // newSource1 package { class C2[@specialized(scala.Boolean) U >: Nothing <: Any] extends Object { def (): C2[U] = { C2.super.(); () }; def apply(x: U): U = x; def apply$mcZ$sp(x: Boolean): Boolean = C2.this.apply(x.asInstanceOf[U]()).asInstanceOf[Boolean]() }; class B extends Object { def (): B = { B.super.(); () }; new C2$mcZ$sp().apply$mcZ$sp(true) }; class C2$mcZ$sp extends C2[Boolean] { def (): C2$mcZ$sp = { C2$mcZ$sp.super.(); () }; @inline final override def apply(x: Boolean): Boolean = C2$mcZ$sp.this.apply$mcZ$sp(x); @inline final override def apply$mcZ$sp(x: Boolean): Boolean = x } } [log inliner] Analyzing C2.apply count 0 with 1 blocks [log inliner] C2.apply blocks before inlining: 1 (2) after: 1 (2) [log inliner] Analyzing C2.apply$mcZ$sp count 0 with 1 blocks [log inliner] C2.apply$mcZ$sp blocks before inlining: 1 (8) after: 1 (8) [log inliner] Not inlining into apply because it is marked @inline. [log inliner] Not inlining into apply$mcZ$sp because it is marked @inline.