diff options
author | Antoine Gourlay <antoine@gourlay.fr> | 2014-10-10 09:02:34 +0200 |
---|---|---|
committer | Antoine Gourlay <antoine@gourlay.fr> | 2014-10-24 15:23:39 +0200 |
commit | f8d1a9ff38cc0c0ce7279ca9169022eab51d6b60 (patch) | |
tree | fd073aec07c313f53333bd7baebe619de0f5d5f9 | |
parent | 2b5df373638d08204b71258928289f6b39e25d5f (diff) | |
download | scala-f8d1a9ff38cc0c0ce7279ca9169022eab51d6b60.tar.gz scala-f8d1a9ff38cc0c0ce7279ca9169022eab51d6b60.tar.bz2 scala-f8d1a9ff38cc0c0ce7279ca9169022eab51d6b60.zip |
SI-8875 showCode should print all class constructor modifiers.
showCode used to print nothing when the only modifier was a change in
visibility scope (i.e. no flags but privateWithin is set).
-rw-r--r-- | src/reflect/scala/reflect/internal/Printers.scala | 2 | ||||
-rw-r--r-- | test/junit/scala/reflect/internal/PrintersTest.scala | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/Printers.scala b/src/reflect/scala/reflect/internal/Printers.scala index 2ce861898f..c4953b2c1f 100644 --- a/src/reflect/scala/reflect/internal/Printers.scala +++ b/src/reflect/scala/reflect/internal/Printers.scala @@ -761,7 +761,7 @@ trait Printers extends api.Printers { self: SymbolTable => val build.SyntacticClassDef(_, _, _, ctorMods, vparamss, earlyDefs, parents, selfType, body) = cl // constructor's modifier - if (ctorMods.hasFlag(AccessFlags)) { + if (ctorMods.hasFlag(AccessFlags) || ctorMods.hasAccessBoundary) { print(" ") printModifiers(ctorMods, primaryCtorParam = false) } diff --git a/test/junit/scala/reflect/internal/PrintersTest.scala b/test/junit/scala/reflect/internal/PrintersTest.scala index ca9b4671b2..7043c26d5e 100644 --- a/test/junit/scala/reflect/internal/PrintersTest.scala +++ b/test/junit/scala/reflect/internal/PrintersTest.scala @@ -354,6 +354,13 @@ trait ClassPrintTests { | def y = "test" |}""") + @Test def testClassConstructorModifiers = assertPrintedCode("class X private (x: scala.Int)") + + @Test def testClassConstructorModifierVisibility = assertPrintedCode(sm""" + |object A { + | class X protected[A] (x: scala.Int) + |}""") + @Test def testClassWithPublicParams = assertPrintedCode("class X(val x: scala.Int, val s: scala.Predef.String)") @Test def testClassWithParams1 = assertPrintedCode("class X(x: scala.Int, s: scala.Predef.String)") |