diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/files/run/t7533.check | 30 | ||||
-rw-r--r-- | test/files/run/t7533.scala | 38 |
2 files changed, 68 insertions, 0 deletions
diff --git a/test/files/run/t7533.check b/test/files/run/t7533.check new file mode 100644 index 0000000000..fa5b3edc8f --- /dev/null +++ b/test/files/run/t7533.check @@ -0,0 +1,30 @@ +Testing Symbol.isAbstract... +=======class C======= +class C => true +constructor C => false +value x1 => true +value x2 => false +value x2 => false +method y1 => true +method y2 => false +type T1 => true +type T2 => false +=======trait T======= +trait T => true +method $init$ => false +value z1 => true +value z2 => false +value z2 => false +method w1 => true +method w2 => false +type U1 => true +type U2 => false +=======class D======= +class D => false +constructor D => false +value x1 => false +value x1 => false +method y1 => false +=======object M======= +object M => false +constructor M => false diff --git a/test/files/run/t7533.scala b/test/files/run/t7533.scala new file mode 100644 index 0000000000..46d0b3b02e --- /dev/null +++ b/test/files/run/t7533.scala @@ -0,0 +1,38 @@ +import scala.reflect.runtime.universe._ + +abstract class C { + val x1: Int + val x2: Int = 2 + def y1: Int + def y2: Int = 2 + type T1 <: Int + type T2 = Int +} +trait T { + val z1: Int + val z2: Int = 2 + def w1: Int + def w2: Int = 2 + type U1 <: Int + type U2 = Int +} +class D extends C { + val x1 = 3 + def y1 = 3 +} +object M + +object Test extends App { + println("Testing Symbol.isAbstract...") + def test[T: TypeTag] = { + val sym = typeOf[T].typeSymbol + println(s"=======$sym=======") + def printAbstract(sym: Symbol) = println(s"$sym => ${sym.isAbstract}") + printAbstract(sym) + sym.typeSignature.declarations.sorted.foreach(printAbstract) + } + test[C] + test[T] + test[D] + test[M.type] +}
\ No newline at end of file |