diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2013-02-05 00:19:05 +0100 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2013-02-05 21:34:25 +0100 |
commit | b43ae58f312e4769de5a6942b4cb820cd609f31b (patch) | |
tree | c1c6241ad28a01082605286245c9a99ade728efb /test/files/run/t6989/Test_2.scala | |
parent | 02ed5fb3bc8d792872223ceecfd8fd0ae089d923 (diff) | |
download | scala-b43ae58f312e4769de5a6942b4cb820cd609f31b.tar.gz scala-b43ae58f312e4769de5a6942b4cb820cd609f31b.tar.bz2 scala-b43ae58f312e4769de5a6942b4cb820cd609f31b.zip |
introduces an exhaustive java-to-scala test
Originally composed to accommodate pull request feedback, this test has
uncovered a handful of bugs in FromJavaClassCompleter, namely:
* SI-7071 non-public ctors get lost
* SI-7072 inner classes are read incorrectly
I'm leaving the incorrect results of FromJavaClassCompleters in the check
file, so that we get notified when something changes there.
Diffstat (limited to 'test/files/run/t6989/Test_2.scala')
-rw-r--r-- | test/files/run/t6989/Test_2.scala | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/test/files/run/t6989/Test_2.scala b/test/files/run/t6989/Test_2.scala index ba88e5cce3..e48e82422d 100644 --- a/test/files/run/t6989/Test_2.scala +++ b/test/files/run/t6989/Test_2.scala @@ -1,21 +1,40 @@ import scala.reflect.runtime.universe._ +// Originally composed to accommodate pull request feedback, this test has +// uncovered a handful of bugs in FromJavaClassCompleter, namely: +// * SI-7071 non-public ctors get lost +// * SI-7072 inner classes are read incorrectly + +// I'm leaving the incorrect results of FromJavaClassCompleters in the check +// file, so that we get notified when something changes there. + package object foo { - def test(sym: Symbol) = { + def testAll(): Unit = { + test(typeOf[foo.PackagePrivateJavaClass].typeSymbol) + test(typeOf[foo.PackagePrivateJavaClass].typeSymbol.companionSymbol) + test(typeOf[foo.JavaClass_1].typeSymbol) + test(typeOf[foo.JavaClass_1].typeSymbol.companionSymbol) + } + + def test(sym: Symbol): Unit = { + printSymbolDetails(sym) + if (sym.isClass || sym.isModule) { + sym.typeSignature.declarations.toList.sortBy(_.name.toString) foreach test + } + } + + def printSymbolDetails(sym: Symbol): Unit = { + def stableSignature(sym: Symbol) = sym.typeSignature match { + case ClassInfoType(_, _, _) => "ClassInfoType(...)" + case tpe => tpe.toString + } println("============") - println(sym) + println(s"sym = $sym, signature = ${stableSignature(sym)}, owner = ${sym.owner}") println(s"isPrivate = ${sym.isPrivate}") println(s"isProtected = ${sym.isProtected}") println(s"isPublic = ${sym.isPublic}") println(s"privateWithin = ${sym.privateWithin}") } - - def testAll() = { - test(typeOf[foo.JavaClass_1].typeSymbol) - test(typeOf[foo.JavaClass_1].declaration(newTermName("x"))) - test(typeOf[foo.JavaClass_1].declaration(newTermName("y"))) - test(typeOf[foo.JavaClass_1].declaration(newTermName("z"))) - } } object Test extends App { |