summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/files/instrumented/inline-in-constructors.flags2
-rw-r--r--test/files/jvm/bytecode-test-example/Foo_1.flags1
-rw-r--r--test/files/jvm/constant-optimization/Foo_1.flags1
-rw-r--r--test/files/jvm/nooptimise/Foo_1.flags1
-rw-r--r--test/files/jvm/nooptimise/Foo_1.scala8
-rw-r--r--test/files/jvm/nooptimise/Test.scala23
-rw-r--r--test/files/jvm/patmat_opt_ignore_underscore.flags1
-rw-r--r--test/files/jvm/patmat_opt_no_nullcheck.flags1
-rw-r--r--test/files/jvm/patmat_opt_no_nullcheck/test.scala11
-rw-r--r--test/files/jvm/patmat_opt_primitive_typetest.flags1
-rw-r--r--test/files/jvm/t7006/Foo_1.flags1
-rw-r--r--test/files/neg/case-collision.check6
-rw-r--r--test/files/neg/case-collision.flags2
-rw-r--r--test/files/neg/sealed-final-neg.check11
-rw-r--r--test/files/neg/sealed-final-neg.flags2
-rw-r--r--test/files/neg/sealed-final-neg.scala2
-rw-r--r--test/files/neg/t3234.check6
-rw-r--r--test/files/neg/t3234.flags1
-rw-r--r--test/files/pos/inline-access-levels.flags2
-rw-r--r--test/files/pos/inliner2.flags1
-rw-r--r--test/files/pos/sealed-final.flags1
-rw-r--r--test/files/pos/t3234.flags1
-rw-r--r--test/files/pos/t3234.scala (renamed from test/files/neg/t3234.scala)4
-rw-r--r--test/files/pos/t3420.flags2
-rw-r--r--test/files/pos/t8410.flags2
-rw-r--r--test/files/run/constant-optimization.flags1
-rw-r--r--test/files/run/dead-code-elimination.flags1
-rw-r--r--test/files/run/delambdafy-specialized.check1
-rw-r--r--test/files/run/delambdafy-specialized.flags1
-rw-r--r--test/files/run/delambdafy-specialized.scala6
-rw-r--r--test/files/run/elidable-opt.flags2
-rw-r--r--test/files/run/finalvar.flags2
-rw-r--r--test/files/run/icode-reader-dead-code.scala2
-rw-r--r--test/files/run/optimizer-array-load.flags1
-rw-r--r--test/files/run/sbt-icode-interface.scala48
-rw-r--r--test/files/run/synchronized.flags2
-rw-r--r--test/files/run/t3509.flags2
-rw-r--r--test/files/run/t3569.flags2
-rw-r--r--test/files/run/t4285.flags2
-rw-r--r--test/files/run/t4935.flags2
-rw-r--r--test/files/run/t5789.scala2
-rw-r--r--test/files/run/t6188.flags2
-rw-r--r--test/files/run/t6546.flags1
-rw-r--r--test/files/run/t6546/A_1.scala6
-rw-r--r--test/files/run/t6546/B_2.scala8
-rw-r--r--test/files/run/t7008-scala-defined.flags1
-rw-r--r--test/files/run/t7459b-optimize.flags2
-rw-r--r--test/files/run/t7582.flags2
-rw-r--r--test/files/run/t7582b.flags2
-rw-r--r--test/files/run/t8601-closure-elim.flags2
-rw-r--r--test/files/run/t8601-closure-elim.scala4
-rw-r--r--test/files/run/t8601.flags2
-rw-r--r--test/files/run/t8601b.flags2
-rw-r--r--test/files/run/t8601c.flags2
-rw-r--r--test/files/run/t8601d.flags2
-rw-r--r--test/files/run/t8601e.flags2
-rw-r--r--test/files/run/t9003.flags2
-rw-r--r--test/files/run/t9403.flags2
-rw-r--r--test/pending/jvm/constant-optimization/Foo_1.flags1
-rw-r--r--test/pending/jvm/constant-optimization/Foo_1.scala (renamed from test/files/jvm/constant-optimization/Foo_1.scala)2
-rw-r--r--test/pending/jvm/constant-optimization/Test.scala (renamed from test/files/jvm/constant-optimization/Test.scala)0
-rw-r--r--test/pending/jvm/patmat_opt_ignore_underscore.check (renamed from test/files/jvm/patmat_opt_ignore_underscore.check)0
-rw-r--r--test/pending/jvm/patmat_opt_ignore_underscore.flags1
-rw-r--r--test/pending/jvm/patmat_opt_ignore_underscore/Analyzed_1.scala (renamed from test/files/jvm/patmat_opt_ignore_underscore/Analyzed_1.scala)0
-rw-r--r--test/pending/jvm/patmat_opt_ignore_underscore/test.scala (renamed from test/files/jvm/patmat_opt_ignore_underscore/test.scala)0
-rw-r--r--test/pending/jvm/patmat_opt_no_nullcheck.check (renamed from test/files/jvm/patmat_opt_no_nullcheck.check)0
-rw-r--r--test/pending/jvm/patmat_opt_no_nullcheck.flags1
-rw-r--r--test/pending/jvm/patmat_opt_no_nullcheck/Analyzed_1.scala (renamed from test/files/jvm/patmat_opt_no_nullcheck/Analyzed_1.scala)0
-rw-r--r--test/pending/jvm/patmat_opt_no_nullcheck/test.scala14
-rw-r--r--test/pending/jvm/patmat_opt_primitive_typetest.check (renamed from test/files/jvm/patmat_opt_primitive_typetest.check)0
-rw-r--r--test/pending/jvm/patmat_opt_primitive_typetest.flags1
-rw-r--r--test/pending/jvm/patmat_opt_primitive_typetest/Analyzed_1.scala (renamed from test/files/jvm/patmat_opt_primitive_typetest/Analyzed_1.scala)0
-rw-r--r--test/pending/jvm/patmat_opt_primitive_typetest/test.scala (renamed from test/files/jvm/patmat_opt_primitive_typetest/test.scala)0
-rw-r--r--test/pending/jvm/t7006.check (renamed from test/files/jvm/t7006.check)0
-rw-r--r--test/pending/jvm/t7006/Foo_1.flags1
-rw-r--r--test/pending/jvm/t7006/Foo_1.scala (renamed from test/files/jvm/t7006/Foo_1.scala)0
-rw-r--r--test/pending/jvm/t7006/Test.scala (renamed from test/files/jvm/t7006/Test.scala)6
-rw-r--r--test/pending/pos/inliner2.flags35
-rw-r--r--test/pending/pos/inliner2.scala (renamed from test/files/pos/inliner2.scala)0
-rw-r--r--test/pending/pos/sealed-final.flags41
-rw-r--r--test/pending/pos/sealed-final.scala (renamed from test/files/pos/sealed-final.scala)0
-rw-r--r--test/pending/run/inline-ex-handlers.check (renamed from test/files/run/inline-ex-handlers.check)185
-rw-r--r--test/pending/run/inline-ex-handlers.scala (renamed from test/files/run/inline-ex-handlers.scala)2
-rw-r--r--test/pending/run/t5313.check (renamed from test/files/run/t5313.check)0
-rw-r--r--test/pending/run/t5313.scala (renamed from test/files/run/t5313.scala)2
-rw-r--r--test/pending/run/t6955.scala (renamed from test/files/run/t6955.scala)5
-rw-r--r--test/pending/run/t6956.scala (renamed from test/files/run/t6956.scala)4
-rw-r--r--test/pending/run/test-cpp.check (renamed from test/files/run/test-cpp.check)6
-rw-r--r--test/pending/run/test-cpp.scala (renamed from test/files/run/test-cpp.scala)2
89 files changed, 266 insertions, 258 deletions
diff --git a/test/files/instrumented/inline-in-constructors.flags b/test/files/instrumented/inline-in-constructors.flags
index d1ebc4c940..65caa3736e 100644
--- a/test/files/instrumented/inline-in-constructors.flags
+++ b/test/files/instrumented/inline-in-constructors.flags
@@ -1 +1 @@
--optimise -Ydelambdafy:inline -Ybackend:GenASM
+-Yopt:l:classpath
diff --git a/test/files/jvm/bytecode-test-example/Foo_1.flags b/test/files/jvm/bytecode-test-example/Foo_1.flags
deleted file mode 100644
index 49f2d2c4c8..0000000000
--- a/test/files/jvm/bytecode-test-example/Foo_1.flags
+++ /dev/null
@@ -1 +0,0 @@
--Ybackend:GenASM
diff --git a/test/files/jvm/constant-optimization/Foo_1.flags b/test/files/jvm/constant-optimization/Foo_1.flags
deleted file mode 100644
index 67a1dbe8da..0000000000
--- a/test/files/jvm/constant-optimization/Foo_1.flags
+++ /dev/null
@@ -1 +0,0 @@
--Ynooptimise -Yconst-opt -Ybackend:GenASM \ No newline at end of file
diff --git a/test/files/jvm/nooptimise/Foo_1.flags b/test/files/jvm/nooptimise/Foo_1.flags
deleted file mode 100644
index f493cf9f3f..0000000000
--- a/test/files/jvm/nooptimise/Foo_1.flags
+++ /dev/null
@@ -1 +0,0 @@
--Ybackend:GenASM -optimise -Ynooptimise \ No newline at end of file
diff --git a/test/files/jvm/nooptimise/Foo_1.scala b/test/files/jvm/nooptimise/Foo_1.scala
deleted file mode 100644
index 896d5695de..0000000000
--- a/test/files/jvm/nooptimise/Foo_1.scala
+++ /dev/null
@@ -1,8 +0,0 @@
-class Foo_1 {
- def foo() {
- // optimization will remove this magic 3 from appearing in the source
- // so -Ynooptimize should prevent that
- val x = 3
-
- }
-}
diff --git a/test/files/jvm/nooptimise/Test.scala b/test/files/jvm/nooptimise/Test.scala
deleted file mode 100644
index 7b7ecd6dbd..0000000000
--- a/test/files/jvm/nooptimise/Test.scala
+++ /dev/null
@@ -1,23 +0,0 @@
-import scala.tools.partest.BytecodeTest
-import scala.tools.asm
-import asm.tree.InsnList
-import scala.collection.JavaConverters._
-
-object Test extends BytecodeTest {
- def show: Unit = {
- val classNode = loadClassNode("Foo_1")
- val methodNode = getMethod(classNode, "foo")
- // if optimization didn't run then
- // there should be some useless instructions
- // with the magic constant 3
- val expected = 1
- val got = countMagicThrees(methodNode.instructions)
- assert(got == expected, s"expected $expected but got $got magic threes")
- }
-
- def countMagicThrees(insnList: InsnList): Int = {
- def isMagicThree(node: asm.tree.AbstractInsnNode): Boolean =
- (node.getOpcode == asm.Opcodes.ICONST_3)
- insnList.iterator.asScala.count(isMagicThree)
- }
-}
diff --git a/test/files/jvm/patmat_opt_ignore_underscore.flags b/test/files/jvm/patmat_opt_ignore_underscore.flags
deleted file mode 100644
index 2cd4b38726..0000000000
--- a/test/files/jvm/patmat_opt_ignore_underscore.flags
+++ /dev/null
@@ -1 +0,0 @@
--optimize -Ybackend:GenASM \ No newline at end of file
diff --git a/test/files/jvm/patmat_opt_no_nullcheck.flags b/test/files/jvm/patmat_opt_no_nullcheck.flags
deleted file mode 100644
index 2cd4b38726..0000000000
--- a/test/files/jvm/patmat_opt_no_nullcheck.flags
+++ /dev/null
@@ -1 +0,0 @@
--optimize -Ybackend:GenASM \ No newline at end of file
diff --git a/test/files/jvm/patmat_opt_no_nullcheck/test.scala b/test/files/jvm/patmat_opt_no_nullcheck/test.scala
deleted file mode 100644
index d02c929e01..0000000000
--- a/test/files/jvm/patmat_opt_no_nullcheck/test.scala
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * filter: inliner warning; re-run with
- */
-import scala.tools.partest.BytecodeTest
-
-object Test extends BytecodeTest {
- def show: Unit = {
- val classNode = loadClassNode("SameBytecode")
- sameBytecode(getMethod(classNode, "a"), getMethod(classNode, "b"))
- }
-}
diff --git a/test/files/jvm/patmat_opt_primitive_typetest.flags b/test/files/jvm/patmat_opt_primitive_typetest.flags
deleted file mode 100644
index b9bb09167e..0000000000
--- a/test/files/jvm/patmat_opt_primitive_typetest.flags
+++ /dev/null
@@ -1 +0,0 @@
--optimize -Ybackend:GenASM
diff --git a/test/files/jvm/t7006/Foo_1.flags b/test/files/jvm/t7006/Foo_1.flags
deleted file mode 100644
index 29a9d424f0..0000000000
--- a/test/files/jvm/t7006/Foo_1.flags
+++ /dev/null
@@ -1 +0,0 @@
--optimise -Ydebug -Xfatal-warnings -Ybackend:GenASM
diff --git a/test/files/neg/case-collision.check b/test/files/neg/case-collision.check
index 22cf105a4f..7360833a7d 100644
--- a/test/files/neg/case-collision.check
+++ b/test/files/neg/case-collision.check
@@ -1,12 +1,12 @@
case-collision.scala:5: warning: Class foo.BIPPY differs only in case from foo.Bippy. Such classes will overwrite one another on case-insensitive filesystems.
class BIPPY
^
-case-collision.scala:11: warning: Class foo.HyRaX$ differs only in case from foo.Hyrax$. Such classes will overwrite one another on case-insensitive filesystems.
-object HyRaX
- ^
case-collision.scala:8: warning: Class foo.DINGO$ differs only in case from foo.Dingo$. Such classes will overwrite one another on case-insensitive filesystems.
object DINGO
^
+case-collision.scala:11: warning: Class foo.HyRaX$ differs only in case from foo.Hyrax$. Such classes will overwrite one another on case-insensitive filesystems.
+object HyRaX
+ ^
error: No warnings can be incurred under -Xfatal-warnings.
three warnings found
one error found
diff --git a/test/files/neg/case-collision.flags b/test/files/neg/case-collision.flags
index 14c1069dee..85d8eb2ba2 100644
--- a/test/files/neg/case-collision.flags
+++ b/test/files/neg/case-collision.flags
@@ -1 +1 @@
--Ybackend:GenASM -Xfatal-warnings
+-Xfatal-warnings
diff --git a/test/files/neg/sealed-final-neg.check b/test/files/neg/sealed-final-neg.check
index 500d23f49a..e135f38f8b 100644
--- a/test/files/neg/sealed-final-neg.check
+++ b/test/files/neg/sealed-final-neg.check
@@ -1,4 +1,9 @@
-sealed-final-neg.scala:41: error: expected class or object definition
-"Due to SI-6142 this emits no warnings, so we'll just break it until that's fixed."
-^
+sealed-final-neg.scala:17: warning: neg1/Foo::bar(I)I is annotated @inline but cannot be inlined: the method is not final and may be overridden.
+ def f = Foo.mkFoo() bar 10
+ ^
+sealed-final-neg.scala:37: warning: neg2/Foo::bar(I)I is annotated @inline but cannot be inlined: the method is not final and may be overridden.
+ def f = Foo.mkFoo() bar 10
+ ^
+error: No warnings can be incurred under -Xfatal-warnings.
+two warnings found
one error found
diff --git a/test/files/neg/sealed-final-neg.flags b/test/files/neg/sealed-final-neg.flags
index 3f0fcd2201..01bd79154a 100644
--- a/test/files/neg/sealed-final-neg.flags
+++ b/test/files/neg/sealed-final-neg.flags
@@ -1 +1 @@
--Xfatal-warnings -Ybackend:GenASM -Yinline-warnings -optimise \ No newline at end of file
+-Xfatal-warnings -Yopt:l:project -Yinline-warnings \ No newline at end of file
diff --git a/test/files/neg/sealed-final-neg.scala b/test/files/neg/sealed-final-neg.scala
index bc25330e13..ec3b199819 100644
--- a/test/files/neg/sealed-final-neg.scala
+++ b/test/files/neg/sealed-final-neg.scala
@@ -37,5 +37,3 @@ package neg2 {
def f = Foo.mkFoo() bar 10
}
}
-
-"Due to SI-6142 this emits no warnings, so we'll just break it until that's fixed."
diff --git a/test/files/neg/t3234.check b/test/files/neg/t3234.check
deleted file mode 100644
index 8f0d624ed9..0000000000
--- a/test/files/neg/t3234.check
+++ /dev/null
@@ -1,6 +0,0 @@
-t3234.scala:17: warning: At the end of the day, could not inline @inline-marked method foo3
- println(foo(42) + foo2(11) + foo3(2))
- ^
-error: No warnings can be incurred under -Xfatal-warnings.
-one warning found
-one error found
diff --git a/test/files/neg/t3234.flags b/test/files/neg/t3234.flags
deleted file mode 100644
index 406231bd96..0000000000
--- a/test/files/neg/t3234.flags
+++ /dev/null
@@ -1 +0,0 @@
--Yinline -Yinline-warnings -Xfatal-warnings -Ybackend:GenASM
diff --git a/test/files/pos/inline-access-levels.flags b/test/files/pos/inline-access-levels.flags
index 9bda07eb6c..d34387c651 100644
--- a/test/files/pos/inline-access-levels.flags
+++ b/test/files/pos/inline-access-levels.flags
@@ -1 +1 @@
--optimise -Ybackend:GenASM -Xfatal-warnings -Yinline-warnings
+-Yopt:l:classpath -Xfatal-warnings -Yinline-warnings
diff --git a/test/files/pos/inliner2.flags b/test/files/pos/inliner2.flags
deleted file mode 100644
index bff4bb8afa..0000000000
--- a/test/files/pos/inliner2.flags
+++ /dev/null
@@ -1 +0,0 @@
--optimise -Ybackend:GenASM -Xfatal-warnings \ No newline at end of file
diff --git a/test/files/pos/sealed-final.flags b/test/files/pos/sealed-final.flags
deleted file mode 100644
index 63f5e65527..0000000000
--- a/test/files/pos/sealed-final.flags
+++ /dev/null
@@ -1 +0,0 @@
--Xfatal-warnings -Yinline-warnings -Ybackend:GenASM -optimise \ No newline at end of file
diff --git a/test/files/pos/t3234.flags b/test/files/pos/t3234.flags
new file mode 100644
index 0000000000..78726f64f7
--- /dev/null
+++ b/test/files/pos/t3234.flags
@@ -0,0 +1 @@
+-Yopt:l:project -Yinline-warnings -Xfatal-warnings
diff --git a/test/files/neg/t3234.scala b/test/files/pos/t3234.scala
index 1553f1fa05..c3b7366db8 100644
--- a/test/files/neg/t3234.scala
+++ b/test/files/pos/t3234.scala
@@ -1,7 +1,5 @@
trait Trait1 {
- // need more work before this one works
- // @inline
- def foo2(n: Int) = n*n
+ @inline def foo2(n: Int) = n*n
}
trait Trait2 {
diff --git a/test/files/pos/t3420.flags b/test/files/pos/t3420.flags
index bff4bb8afa..4fbafb7e80 100644
--- a/test/files/pos/t3420.flags
+++ b/test/files/pos/t3420.flags
@@ -1 +1 @@
--optimise -Ybackend:GenASM -Xfatal-warnings \ No newline at end of file
+-Yopt-warnings Yopt:l:project -Xfatal-warnings \ No newline at end of file
diff --git a/test/files/pos/t8410.flags b/test/files/pos/t8410.flags
index 2f32e3b26a..01fc9cd3ac 100644
--- a/test/files/pos/t8410.flags
+++ b/test/files/pos/t8410.flags
@@ -1 +1 @@
--optimise -Ybackend:GenASM -Xfatal-warnings -deprecation:false -Yinline-warnings:false
+-Yopt:l:project -Xfatal-warnings -deprecation:false -Yinline-warnings:false
diff --git a/test/files/run/constant-optimization.flags b/test/files/run/constant-optimization.flags
deleted file mode 100644
index 6c9965e749..0000000000
--- a/test/files/run/constant-optimization.flags
+++ /dev/null
@@ -1 +0,0 @@
--optimise -Ybackend:GenASM
diff --git a/test/files/run/dead-code-elimination.flags b/test/files/run/dead-code-elimination.flags
deleted file mode 100644
index b9bb09167e..0000000000
--- a/test/files/run/dead-code-elimination.flags
+++ /dev/null
@@ -1 +0,0 @@
--optimize -Ybackend:GenASM
diff --git a/test/files/run/delambdafy-specialized.check b/test/files/run/delambdafy-specialized.check
deleted file mode 100644
index c6903b9e29..0000000000
--- a/test/files/run/delambdafy-specialized.check
+++ /dev/null
@@ -1 +0,0 @@
-scala.runtime.AbstractFunction1$mcII$sp
diff --git a/test/files/run/delambdafy-specialized.flags b/test/files/run/delambdafy-specialized.flags
deleted file mode 100644
index d6278aa940..0000000000
--- a/test/files/run/delambdafy-specialized.flags
+++ /dev/null
@@ -1 +0,0 @@
--Ydelambdafy:method -Ybackend:GenASM
diff --git a/test/files/run/delambdafy-specialized.scala b/test/files/run/delambdafy-specialized.scala
deleted file mode 100644
index 634d4e490b..0000000000
--- a/test/files/run/delambdafy-specialized.scala
+++ /dev/null
@@ -1,6 +0,0 @@
-object Test {
- def main(args: Array[String]): Unit = {
- val f = (x: Int) => -x
- println(f.getClass.getSuperclass.getName)
- }
-}
diff --git a/test/files/run/elidable-opt.flags b/test/files/run/elidable-opt.flags
index 6537d2f57a..93fd3d5317 100644
--- a/test/files/run/elidable-opt.flags
+++ b/test/files/run/elidable-opt.flags
@@ -1 +1 @@
--optimise -Ybackend:GenASM -Xelide-below 900
+-Xelide-below 900
diff --git a/test/files/run/finalvar.flags b/test/files/run/finalvar.flags
index 8d9be3d62e..a8c7600a03 100644
--- a/test/files/run/finalvar.flags
+++ b/test/files/run/finalvar.flags
@@ -1 +1 @@
--Yoverride-vars -Yinline -Ybackend:GenASM \ No newline at end of file
+-Yoverride-vars -Yopt:l:project \ No newline at end of file
diff --git a/test/files/run/icode-reader-dead-code.scala b/test/files/run/icode-reader-dead-code.scala
index 535ef2a2e2..df31219dd5 100644
--- a/test/files/run/icode-reader-dead-code.scala
+++ b/test/files/run/icode-reader-dead-code.scala
@@ -36,7 +36,7 @@ object Test extends DirectTest {
// If inlining fails, the compiler will issue an inliner warning that is not present in the
// check file
- compileString(newCompiler("-usejavacp", "-optimise", "-Ybackend:GenASM"))(bCode)
+ compileString(newCompiler("-usejavacp", "-Yopt:l:classpath"))(bCode)
}
def readClass(file: String) = {
diff --git a/test/files/run/optimizer-array-load.flags b/test/files/run/optimizer-array-load.flags
deleted file mode 100644
index 99bd6c895d..0000000000
--- a/test/files/run/optimizer-array-load.flags
+++ /dev/null
@@ -1 +0,0 @@
--optimise -Ybackend:GenASM \ No newline at end of file
diff --git a/test/files/run/sbt-icode-interface.scala b/test/files/run/sbt-icode-interface.scala
index 84d38cc65a..7cd2de5c00 100644
--- a/test/files/run/sbt-icode-interface.scala
+++ b/test/files/run/sbt-icode-interface.scala
@@ -9,34 +9,32 @@ object Test extends DirectTest {
""".trim
def show() {
- for (b <- List("GenASM", "GenBCode")) {
- val global = newCompiler("-usejavacp", s"-Ybackend:$b")
- import global._
- val r = new Run
- r.compileSources(newSourceFile(code) :: Nil)
-
- val results = collection.mutable.Buffer[(Boolean, String)]()
+ val global = newCompiler("-usejavacp")
+ import global._
+ val r = new Run
+ r.compileSources(newSourceFile(code) :: Nil)
- // Nailing down defacto compiler API from SBT's usage
- // https://github.com/sbt/sbt/blob/adb41611cf73260938274915d8462d924df200c8/compile/interface/src/main/scala/xsbt/Analyzer.scala#L29-L41
- def isTopLevelModule(sym: Symbol) = sym.isTopLevel && sym.isModule
- for (unit <- currentRun.units if !unit.isJava) {
- val sourceFile = unit.source.file.file
- for (iclass <- unit.icode) {
- val sym = iclass.symbol
- def addGenerated(separatorRequired: Boolean) {
- results += (separatorRequired -> sym.fullName)
- }
- if (sym.isModuleClass && !sym.isImplClass) {
- if (isTopLevelModule(sym) && sym.companionClass == NoSymbol)
- addGenerated(false)
- addGenerated(true)
- } else
- addGenerated(false)
+ val results = collection.mutable.Buffer[(Boolean, String)]()
+
+ // Nailing down defacto compiler API from SBT's usage
+ // https://github.com/sbt/sbt/blob/adb41611cf73260938274915d8462d924df200c8/compile/interface/src/main/scala/xsbt/Analyzer.scala#L29-L41
+ def isTopLevelModule(sym: Symbol) = sym.isTopLevel && sym.isModule
+ for (unit <- currentRun.units if !unit.isJava) {
+ val sourceFile = unit.source.file.file
+ for (iclass <- unit.icode) {
+ val sym = iclass.symbol
+ def addGenerated(separatorRequired: Boolean) {
+ results += (separatorRequired -> sym.fullName)
}
+ if (sym.isModuleClass && !sym.isImplClass) {
+ if (isTopLevelModule(sym) && sym.companionClass == NoSymbol)
+ addGenerated(false)
+ addGenerated(true)
+ } else
+ addGenerated(false)
}
- val expected = List((false, "C"), (true, "O"), (false, "C$D"))
- assert(results.toList == expected, b + ": " + results.toList)
}
+ val expected = List((false, "C"), (true, "O"), (false, "C$D"))
+ assert(results.toList == expected, s"expected: $expected, actual: ${results.toList}")
}
}
diff --git a/test/files/run/synchronized.flags b/test/files/run/synchronized.flags
index b9bb09167e..19c578e4ad 100644
--- a/test/files/run/synchronized.flags
+++ b/test/files/run/synchronized.flags
@@ -1 +1 @@
--optimize -Ybackend:GenASM
+-Yopt:l:project
diff --git a/test/files/run/t3509.flags b/test/files/run/t3509.flags
index 9c59981aa9..422d6be431 100644
--- a/test/files/run/t3509.flags
+++ b/test/files/run/t3509.flags
@@ -1 +1 @@
--Yinline -Ybackend:GenASM \ No newline at end of file
+-Yopt:l:classpath \ No newline at end of file
diff --git a/test/files/run/t3569.flags b/test/files/run/t3569.flags
index 9c59981aa9..422d6be431 100644
--- a/test/files/run/t3569.flags
+++ b/test/files/run/t3569.flags
@@ -1 +1 @@
--Yinline -Ybackend:GenASM \ No newline at end of file
+-Yopt:l:classpath \ No newline at end of file
diff --git a/test/files/run/t4285.flags b/test/files/run/t4285.flags
index 99bd6c895d..422d6be431 100644
--- a/test/files/run/t4285.flags
+++ b/test/files/run/t4285.flags
@@ -1 +1 @@
--optimise -Ybackend:GenASM \ No newline at end of file
+-Yopt:l:classpath \ No newline at end of file
diff --git a/test/files/run/t4935.flags b/test/files/run/t4935.flags
index b9bb09167e..65caa3736e 100644
--- a/test/files/run/t4935.flags
+++ b/test/files/run/t4935.flags
@@ -1 +1 @@
--optimize -Ybackend:GenASM
+-Yopt:l:classpath
diff --git a/test/files/run/t5789.scala b/test/files/run/t5789.scala
index c8d95f2153..677c9ca229 100644
--- a/test/files/run/t5789.scala
+++ b/test/files/run/t5789.scala
@@ -5,7 +5,7 @@ import scala.tools.partest.ReplTest
object Test extends ReplTest {
- override def extraSettings = "-Yinline -Ybackend:GenASM"
+ override def extraSettings = "-Yopt:l:classpath"
def code = """
val n = 2
() => n
diff --git a/test/files/run/t6188.flags b/test/files/run/t6188.flags
index b9bb09167e..422d6be431 100644
--- a/test/files/run/t6188.flags
+++ b/test/files/run/t6188.flags
@@ -1 +1 @@
--optimize -Ybackend:GenASM
+-Yopt:l:classpath \ No newline at end of file
diff --git a/test/files/run/t6546.flags b/test/files/run/t6546.flags
deleted file mode 100644
index 6015e7c61f..0000000000
--- a/test/files/run/t6546.flags
+++ /dev/null
@@ -1 +0,0 @@
--Ybackend:GenASM -optimise \ No newline at end of file
diff --git a/test/files/run/t6546/A_1.scala b/test/files/run/t6546/A_1.scala
deleted file mode 100644
index bd086c08f8..0000000000
--- a/test/files/run/t6546/A_1.scala
+++ /dev/null
@@ -1,6 +0,0 @@
-final class Opt {
- @inline def getOrElse(x: => String): String = ""
-}
-class A_1 {
- def f(x: Opt): String = x getOrElse null
-}
diff --git a/test/files/run/t6546/B_2.scala b/test/files/run/t6546/B_2.scala
deleted file mode 100644
index 64ec966f75..0000000000
--- a/test/files/run/t6546/B_2.scala
+++ /dev/null
@@ -1,8 +0,0 @@
-import scala.tools.partest.BytecodeTest
-
-object Test extends BytecodeTest {
- def show: Unit = {
- val node = loadClassNode("A_1")
- assert(node.innerClasses.isEmpty, node.innerClasses)
- }
-}
diff --git a/test/files/run/t7008-scala-defined.flags b/test/files/run/t7008-scala-defined.flags
index 49f2d2c4c8..e69de29bb2 100644
--- a/test/files/run/t7008-scala-defined.flags
+++ b/test/files/run/t7008-scala-defined.flags
@@ -1 +0,0 @@
--Ybackend:GenASM
diff --git a/test/files/run/t7459b-optimize.flags b/test/files/run/t7459b-optimize.flags
index b9bb09167e..65caa3736e 100644
--- a/test/files/run/t7459b-optimize.flags
+++ b/test/files/run/t7459b-optimize.flags
@@ -1 +1 @@
--optimize -Ybackend:GenASM
+-Yopt:l:classpath
diff --git a/test/files/run/t7582.flags b/test/files/run/t7582.flags
index 2cd4b38726..422d6be431 100644
--- a/test/files/run/t7582.flags
+++ b/test/files/run/t7582.flags
@@ -1 +1 @@
--optimize -Ybackend:GenASM \ No newline at end of file
+-Yopt:l:classpath \ No newline at end of file
diff --git a/test/files/run/t7582b.flags b/test/files/run/t7582b.flags
index 2cd4b38726..422d6be431 100644
--- a/test/files/run/t7582b.flags
+++ b/test/files/run/t7582b.flags
@@ -1 +1 @@
--optimize -Ybackend:GenASM \ No newline at end of file
+-Yopt:l:classpath \ No newline at end of file
diff --git a/test/files/run/t8601-closure-elim.flags b/test/files/run/t8601-closure-elim.flags
index 9158076b71..642187ff4c 100644
--- a/test/files/run/t8601-closure-elim.flags
+++ b/test/files/run/t8601-closure-elim.flags
@@ -1 +1 @@
--optimize -Ydelambdafy:inline -Ybackend:GenASM
+-Ydelambdafy:method -Yopt:l:classpath
diff --git a/test/files/run/t8601-closure-elim.scala b/test/files/run/t8601-closure-elim.scala
index ebeb16e0c7..40fbf1fe0e 100644
--- a/test/files/run/t8601-closure-elim.scala
+++ b/test/files/run/t8601-closure-elim.scala
@@ -1,4 +1,5 @@
import scala.tools.partest.BytecodeTest
+import scala.tools.partest.ASMConverters.instructionsFromMethod
import scala.tools.asm
import scala.tools.asm.util._
import scala.collection.JavaConverters._
@@ -10,8 +11,9 @@ object Test extends BytecodeTest {
def test(methodName: String) {
val classNode = loadClassNode("Foo")
val methodNode = getMethod(classNode, "b")
+ val instrs = instructionsFromMethod(methodNode)
val ops = methodNode.instructions.iterator.asScala.map(_.getOpcode).toList
- assert(!ops.contains(asm.Opcodes.NEW), ops)// should be allocation free if the closure is eliminated
+ assert(!ops.contains(asm.Opcodes.NEW), instrs)// should be allocation free if the closure is eliminated
}
test("b")
}
diff --git a/test/files/run/t8601.flags b/test/files/run/t8601.flags
index 2cd4b38726..65caa3736e 100644
--- a/test/files/run/t8601.flags
+++ b/test/files/run/t8601.flags
@@ -1 +1 @@
--optimize -Ybackend:GenASM \ No newline at end of file
+-Yopt:l:classpath
diff --git a/test/files/run/t8601b.flags b/test/files/run/t8601b.flags
index 2cd4b38726..65caa3736e 100644
--- a/test/files/run/t8601b.flags
+++ b/test/files/run/t8601b.flags
@@ -1 +1 @@
--optimize -Ybackend:GenASM \ No newline at end of file
+-Yopt:l:classpath
diff --git a/test/files/run/t8601c.flags b/test/files/run/t8601c.flags
index 2cd4b38726..65caa3736e 100644
--- a/test/files/run/t8601c.flags
+++ b/test/files/run/t8601c.flags
@@ -1 +1 @@
--optimize -Ybackend:GenASM \ No newline at end of file
+-Yopt:l:classpath
diff --git a/test/files/run/t8601d.flags b/test/files/run/t8601d.flags
index 2cd4b38726..65caa3736e 100644
--- a/test/files/run/t8601d.flags
+++ b/test/files/run/t8601d.flags
@@ -1 +1 @@
--optimize -Ybackend:GenASM \ No newline at end of file
+-Yopt:l:classpath
diff --git a/test/files/run/t8601e.flags b/test/files/run/t8601e.flags
index b9bb09167e..65caa3736e 100644
--- a/test/files/run/t8601e.flags
+++ b/test/files/run/t8601e.flags
@@ -1 +1 @@
--optimize -Ybackend:GenASM
+-Yopt:l:classpath
diff --git a/test/files/run/t9003.flags b/test/files/run/t9003.flags
index b9bb09167e..65caa3736e 100644
--- a/test/files/run/t9003.flags
+++ b/test/files/run/t9003.flags
@@ -1 +1 @@
--optimize -Ybackend:GenASM
+-Yopt:l:classpath
diff --git a/test/files/run/t9403.flags b/test/files/run/t9403.flags
index 307668060c..65caa3736e 100644
--- a/test/files/run/t9403.flags
+++ b/test/files/run/t9403.flags
@@ -1 +1 @@
--Ybackend:GenASM -optimize
+-Yopt:l:classpath
diff --git a/test/pending/jvm/constant-optimization/Foo_1.flags b/test/pending/jvm/constant-optimization/Foo_1.flags
new file mode 100644
index 0000000000..9691c0985d
--- /dev/null
+++ b/test/pending/jvm/constant-optimization/Foo_1.flags
@@ -0,0 +1 @@
+// constant otimization not there yet, -Yopt:nullness-tracking not enough.
diff --git a/test/files/jvm/constant-optimization/Foo_1.scala b/test/pending/jvm/constant-optimization/Foo_1.scala
index cb67ad4e90..6f408044d7 100644
--- a/test/files/jvm/constant-optimization/Foo_1.scala
+++ b/test/pending/jvm/constant-optimization/Foo_1.scala
@@ -1,6 +1,6 @@
class Foo_1 {
def foo() {
- // constant optimization should eliminate all branches
+ // constant optimization should eliminate all branches
val i = 1
val x = if (i != 1) null else "good"
val y = if (x == null) "good" else x + ""
diff --git a/test/files/jvm/constant-optimization/Test.scala b/test/pending/jvm/constant-optimization/Test.scala
index dc0f8f6103..dc0f8f6103 100644
--- a/test/files/jvm/constant-optimization/Test.scala
+++ b/test/pending/jvm/constant-optimization/Test.scala
diff --git a/test/files/jvm/patmat_opt_ignore_underscore.check b/test/pending/jvm/patmat_opt_ignore_underscore.check
index 43f53aba12..43f53aba12 100644
--- a/test/files/jvm/patmat_opt_ignore_underscore.check
+++ b/test/pending/jvm/patmat_opt_ignore_underscore.check
diff --git a/test/pending/jvm/patmat_opt_ignore_underscore.flags b/test/pending/jvm/patmat_opt_ignore_underscore.flags
new file mode 100644
index 0000000000..453b6b7895
--- /dev/null
+++ b/test/pending/jvm/patmat_opt_ignore_underscore.flags
@@ -0,0 +1 @@
+-Yopt:l:project \ No newline at end of file
diff --git a/test/files/jvm/patmat_opt_ignore_underscore/Analyzed_1.scala b/test/pending/jvm/patmat_opt_ignore_underscore/Analyzed_1.scala
index b0506018f6..b0506018f6 100644
--- a/test/files/jvm/patmat_opt_ignore_underscore/Analyzed_1.scala
+++ b/test/pending/jvm/patmat_opt_ignore_underscore/Analyzed_1.scala
diff --git a/test/files/jvm/patmat_opt_ignore_underscore/test.scala b/test/pending/jvm/patmat_opt_ignore_underscore/test.scala
index d6630e80a0..d6630e80a0 100644
--- a/test/files/jvm/patmat_opt_ignore_underscore/test.scala
+++ b/test/pending/jvm/patmat_opt_ignore_underscore/test.scala
diff --git a/test/files/jvm/patmat_opt_no_nullcheck.check b/test/pending/jvm/patmat_opt_no_nullcheck.check
index 43f53aba12..43f53aba12 100644
--- a/test/files/jvm/patmat_opt_no_nullcheck.check
+++ b/test/pending/jvm/patmat_opt_no_nullcheck.check
diff --git a/test/pending/jvm/patmat_opt_no_nullcheck.flags b/test/pending/jvm/patmat_opt_no_nullcheck.flags
new file mode 100644
index 0000000000..453b6b7895
--- /dev/null
+++ b/test/pending/jvm/patmat_opt_no_nullcheck.flags
@@ -0,0 +1 @@
+-Yopt:l:project \ No newline at end of file
diff --git a/test/files/jvm/patmat_opt_no_nullcheck/Analyzed_1.scala b/test/pending/jvm/patmat_opt_no_nullcheck/Analyzed_1.scala
index 1e4d564cdf..1e4d564cdf 100644
--- a/test/files/jvm/patmat_opt_no_nullcheck/Analyzed_1.scala
+++ b/test/pending/jvm/patmat_opt_no_nullcheck/Analyzed_1.scala
diff --git a/test/pending/jvm/patmat_opt_no_nullcheck/test.scala b/test/pending/jvm/patmat_opt_no_nullcheck/test.scala
new file mode 100644
index 0000000000..5a4a398b67
--- /dev/null
+++ b/test/pending/jvm/patmat_opt_no_nullcheck/test.scala
@@ -0,0 +1,14 @@
+/*
+ * filter: inliner warning; re-run with
+ */
+import scala.tools.partest.{ BytecodeTest, ASMConverters }
+
+object Test extends BytecodeTest {
+ def show: Unit = {
+ val classNode = loadClassNode("SameBytecode")
+ // ASM and GenBCode assign variable slots slightly differently
+ val instrsA = ASMConverters.instructionsFromMethod(getMethod(classNode, "a"))
+ val instrsB = ASMConverters.instructionsFromMethod(getMethod(classNode, "b"))
+ assert(ASMConverters.equivalentBytecode(instrsA, instrsB), diffInstructions(instrsA, instrsB)) // doesn't work
+ }
+}
diff --git a/test/files/jvm/patmat_opt_primitive_typetest.check b/test/pending/jvm/patmat_opt_primitive_typetest.check
index 43f53aba12..43f53aba12 100644
--- a/test/files/jvm/patmat_opt_primitive_typetest.check
+++ b/test/pending/jvm/patmat_opt_primitive_typetest.check
diff --git a/test/pending/jvm/patmat_opt_primitive_typetest.flags b/test/pending/jvm/patmat_opt_primitive_typetest.flags
new file mode 100644
index 0000000000..19c578e4ad
--- /dev/null
+++ b/test/pending/jvm/patmat_opt_primitive_typetest.flags
@@ -0,0 +1 @@
+-Yopt:l:project
diff --git a/test/files/jvm/patmat_opt_primitive_typetest/Analyzed_1.scala b/test/pending/jvm/patmat_opt_primitive_typetest/Analyzed_1.scala
index c961082fa7..c961082fa7 100644
--- a/test/files/jvm/patmat_opt_primitive_typetest/Analyzed_1.scala
+++ b/test/pending/jvm/patmat_opt_primitive_typetest/Analyzed_1.scala
diff --git a/test/files/jvm/patmat_opt_primitive_typetest/test.scala b/test/pending/jvm/patmat_opt_primitive_typetest/test.scala
index 2927e763d5..2927e763d5 100644
--- a/test/files/jvm/patmat_opt_primitive_typetest/test.scala
+++ b/test/pending/jvm/patmat_opt_primitive_typetest/test.scala
diff --git a/test/files/jvm/t7006.check b/test/pending/jvm/t7006.check
index 6294b14d62..6294b14d62 100644
--- a/test/files/jvm/t7006.check
+++ b/test/pending/jvm/t7006.check
diff --git a/test/pending/jvm/t7006/Foo_1.flags b/test/pending/jvm/t7006/Foo_1.flags
new file mode 100644
index 0000000000..5d1b6b2644
--- /dev/null
+++ b/test/pending/jvm/t7006/Foo_1.flags
@@ -0,0 +1 @@
+-Yopt:l:project -Ydebug -Xfatal-warnings
diff --git a/test/files/jvm/t7006/Foo_1.scala b/test/pending/jvm/t7006/Foo_1.scala
index 3985557d9f..3985557d9f 100644
--- a/test/files/jvm/t7006/Foo_1.scala
+++ b/test/pending/jvm/t7006/Foo_1.scala
diff --git a/test/files/jvm/t7006/Test.scala b/test/pending/jvm/t7006/Test.scala
index 065a23510e..7b4a8c45fb 100644
--- a/test/files/jvm/t7006/Test.scala
+++ b/test/pending/jvm/t7006/Test.scala
@@ -7,8 +7,10 @@ object Test extends BytecodeTest {
def show: Unit = {
val classNode = loadClassNode("Foo_1")
val methodNode = getMethod(classNode, "foo")
- assert(count(methodNode.instructions, asm.Opcodes.NOP) == 0)
- assert(count(methodNode.instructions, asm.Opcodes.GOTO) == 1)
+ val nopCount = count(methodNode.instructions, asm.Opcodes.NOP)
+ val gotoCount = count(methodNode.instructions, asm.Opcodes.GOTO)
+ assert(nopCount == 0, s"NOPs expected: 0, actual: $nopCount")
+ assert(gotoCount == 1, s"GOTOs expected: 1, actual: $gotoCount")
}
def count(insnList: InsnList, opcode: Int): Int = {
diff --git a/test/pending/pos/inliner2.flags b/test/pending/pos/inliner2.flags
new file mode 100644
index 0000000000..4bf93a9c2a
--- /dev/null
+++ b/test/pending/pos/inliner2.flags
@@ -0,0 +1,35 @@
+-optimise -Ybackend:GenASM -Xfatal-warnings
+/*
+This is what we get with 2.11.2-M3 and -Yopt:l:project:
+
+ public final int bob1();
+ Code:
+ 0: aload_0
+ 1: aload_0
+ 2: astore 6
+ 4: aload 6
+ 6: invokedynamic #62, 0 // InvokeDynamic #0:apply$mcZ$sp:(LA;)Lscala/runtime/java8/JFunction0$mcZ$sp;
+ 11: checkcast #29 // class scala/Function0
+ 14: invokedynamic #71, 0 // InvokeDynamic #1:apply$mcI$sp:()Lscala/runtime/java8/JFunction0$mcI$sp;
+ 19: checkcast #29 // class scala/Function0
+ 22: invokedynamic #76, 0 // InvokeDynamic #2:apply$mcI$sp:()Lscala/runtime/java8/JFunction0$mcI$sp;
+ 27: checkcast #29 // class scala/Function0
+ 30: astore 4
+ 32: astore_3
+ 33: astore_2
+ 34: astore_1
+ 35: aload_2
+ 36: pop
+ 37: aload 6
+ 39: invokevirtual #53 // Method A$$$anonfun$1:()Z
+ 42: ifeq 54
+ 45: aload_3
+ 46: invokeinterface #36, 1 // InterfaceMethod scala/Function0.apply:()Ljava/lang/Object;
+ 51: goto 61
+ 54: aload 4
+ 56: invokeinterface #36, 1 // InterfaceMethod scala/Function0.apply:()Ljava/lang/Object;
+ 61: astore 5
+ 63: aload 5
+ 65: invokestatic #82 // Method scala/runtime/BoxesRunTime.unboxToInt:(Ljava/lang/Object;)I
+ 68: ireturn
+*/ \ No newline at end of file
diff --git a/test/files/pos/inliner2.scala b/test/pending/pos/inliner2.scala
index bc83e04312..bc83e04312 100644
--- a/test/files/pos/inliner2.scala
+++ b/test/pending/pos/inliner2.scala
diff --git a/test/pending/pos/sealed-final.flags b/test/pending/pos/sealed-final.flags
new file mode 100644
index 0000000000..63d024a0ba
--- /dev/null
+++ b/test/pending/pos/sealed-final.flags
@@ -0,0 +1,41 @@
+-Xfatal-warnings -Yinline-warnings -Ybackend:GenASM -optimise
+/*
+The new flag settings could be
+ -Yopt-warnings -Yopt:l:project
+
+The issue here is that things are being inlined, but a lot of
+redundant load/store instructions are left behind:
+
+2.11.7:
+
+ public int f();
+ Code:
+ 0: getstatic #19 // Field Foo$.MODULE$:LFoo$;
+ 3: invokevirtual #23 // Method Foo$.mkFoo:()LFoo;
+ 6: pop
+ 7: bipush 10
+ 9: iconst_1
+ 10: iadd
+ 11: ireturn
+
+
+2.12.0-M3:
+
+ public int f();
+ Code:
+ 0: getstatic #19 // Field Foo$.MODULE$:LFoo$;
+ 3: invokevirtual #23 // Method Foo$.mkFoo:()LFoo;
+ 6: bipush 10
+ 8: istore_2
+ 9: dup
+ 10: ifnonnull 15
+ 13: aconst_null
+ 14: athrow
+ 15: astore_1
+ 16: iload_2
+ 17: iconst_1
+ 18: iadd
+ 19: istore_3
+ 20: iload_3
+ 21: ireturn
+*/ \ No newline at end of file
diff --git a/test/files/pos/sealed-final.scala b/test/pending/pos/sealed-final.scala
index bdedb5c1f6..bdedb5c1f6 100644
--- a/test/files/pos/sealed-final.scala
+++ b/test/pending/pos/sealed-final.scala
diff --git a/test/files/run/inline-ex-handlers.check b/test/pending/run/inline-ex-handlers.check
index 36fc2eefa4..fce32771b4 100644
--- a/test/files/run/inline-ex-handlers.check
+++ b/test/pending/run/inline-ex-handlers.check
@@ -7,7 +7,7 @@
startBlock: 1
- blocks: [1,2,3,4]
+ blocks: [1,3,4]
-
+
@@ -186,2 +186,4 @@
92 LOAD_LOCAL(value x$1)
+ 92 STORE_LOCAL(variable boxed1)
@@ -16,19 +16,19 @@
@@ -194,5 +196,2 @@
92 CALL_METHOD MyException.message (dynamic)
- 92 JUMP 2
--
-- 2:
+-
+- 2:
92 RETURN(REF(class Object))
@@ -246,3 +245,3 @@
startBlock: 1
- blocks: [1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18]
+ blocks: [1,2,3,4,5,6,8,11,12,13,14,15,16,17,18]
-
+
@@ -257,5 +256,2 @@
92 SCOPE_ENTER value x1
- 92 JUMP 7
--
-- 7:
+-
+- 7:
92 LOAD_LOCAL(value x1)
@@ -408,5 +404,5 @@
def main(args: Array[String] (ARRAY[REF(class String)])): Unit {
@@ -37,27 +37,27 @@
startBlock: 1
- blocks: [1,2,3,4,5,8,10,11,13]
+ blocks: [1,2,3,5,8,10,11,13,14]
-
+
@@ -434,4 +430,13 @@
103 CALL_METHOD MyException.<init> (static-instance)
- 103 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 14
-
-+ 14:
+
++ 14:
+ 101 LOAD_LOCAL(value ex6)
+ 101 STORE_LOCAL(value x4)
+ 101 SCOPE_ENTER value x4
+ 106 LOAD_LOCAL(value x4)
+ 106 IS_INSTANCE REF(class MyException)
+ 106 CZJUMP (BOOL)NE ? 5 : 8
-+
- 13:
++
+ 13:
@@ -447,5 +452,2 @@
101 SCOPE_ENTER value x4
- 101 JUMP 4
--
-- 4:
+-
+- 4:
106 LOAD_LOCAL(value x4)
@@ -459,8 +461,5 @@
106 SCOPE_ENTER value x5
@@ -74,43 +74,43 @@
startBlock: 1
- blocks: [1,2,3,4,6,7,9,10]
+ blocks: [1,3,4,6,7,9,10,11,12,13]
-
+
@@ -565,4 +564,9 @@
306 CALL_METHOD MyException.<init> (static-instance)
- 306 THROW(MyException)
+ ? JUMP 11
-
-+ 11:
+
++ 11:
+ ? LOAD_LOCAL(variable monitor4)
+ 305 MONITOR_EXIT
+ ? JUMP 12
-+
- 9:
++
+ 9:
@@ -571,3 +575,3 @@
305 MONITOR_EXIT
- ? THROW(Throwable)
+ ? JUMP 12
-
+
@@ -577,4 +581,11 @@
304 MONITOR_EXIT
- ? THROW(Throwable)
+ ? STORE_LOCAL(value t)
+ ? JUMP 13
-
-+ 12:
+
++ 12:
+ ? LOAD_LOCAL(variable monitor3)
+ 304 MONITOR_EXIT
+ ? STORE_LOCAL(value t)
+ ? JUMP 13
-+
- 3:
++
+ 3:
@@ -591,5 +602,14 @@
310 CALL_METHOD scala.Predef.println (dynamic)
- 310 JUMP 2
+ 300 RETURN(UNIT)
-
-- 2:
-+ 13:
+
+- 2:
++ 13:
+ 310 LOAD_MODULE object Predef
+ 310 CALL_PRIMITIVE(StartConcat)
+ 310 CONSTANT("Caught crash: ")
@@ -134,28 +134,28 @@
startBlock: 1
- blocks: [1,3,4,5,6,8,9]
+ blocks: [1,3,4,5,6,8,9,10,11]
-
+
@@ -660,4 +680,10 @@
78 CALL_METHOD java.lang.IllegalArgumentException.<init> (static-instance)
- 78 THROW(IllegalArgumentException)
+ ? STORE_LOCAL(value e)
+ ? JUMP 10
-
-+ 10:
+
++ 10:
+ 81 LOAD_LOCAL(value e)
+ ? STORE_LOCAL(variable exc1)
+ ? JUMP 11
-+
- 8:
++
+ 8:
@@ -686,3 +712,4 @@
81 LOAD_LOCAL(value e)
- 81 THROW(Exception)
+ ? STORE_LOCAL(variable exc1)
+ ? JUMP 11
-
+
@@ -703,2 +730,15 @@
-
-+ 11:
+
++ 11:
+ 83 LOAD_MODULE object Predef
+ 83 CONSTANT("finally")
+ 83 CALL_METHOD scala.Predef.println (dynamic)
@@ -167,7 +167,7 @@
+ 84 STORE_LOCAL(variable result)
+ 84 LOAD_LOCAL(variable exc1)
+ 84 THROW(Throwable)
-+
++
}
@@ -708,3 +748,3 @@
with finalizer: null
@@ -181,20 +181,20 @@
startBlock: 1
- blocks: [1,3,4,5,6,9,13,14,15,18,20,21,23,24]
+ blocks: [1,3,4,5,6,9,13,14,15,18,20,21,23,24,25,26,27]
-
+
@@ -758,4 +798,11 @@
172 CALL_METHOD MyException.<init> (static-instance)
- 172 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 25
-
-+ 25:
+
++ 25:
+ 170 LOAD_LOCAL(value ex6)
+ 170 STORE_LOCAL(value x4)
+ 170 SCOPE_ENTER value x4
+ 170 JUMP 14
-+
- 23:
++
+ 23:
@@ -798,8 +845,5 @@
175 SCOPE_ENTER value x5
- 175 LOAD_LOCAL(value x5)
@@ -215,22 +215,22 @@
- 177 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 26
-
+
@@ -813,3 +859,4 @@
170 LOAD_LOCAL(value ex6)
- 170 THROW(Throwable)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 26
-
+
@@ -823,2 +870,8 @@
-
-+ 26:
+
++ 26:
+ 169 LOAD_LOCAL(value ex6)
+ 169 STORE_LOCAL(value x4)
+ 169 SCOPE_ENTER value x4
+ 169 JUMP 5
-+
- 5:
++
+ 5:
@@ -833,8 +886,5 @@
180 SCOPE_ENTER value x5
- 180 LOAD_LOCAL(value x5)
@@ -251,16 +251,16 @@
- 182 THROW(MyException)
+ ? STORE_LOCAL(variable exc2)
+ ? JUMP 27
-
+
@@ -848,3 +900,4 @@
169 LOAD_LOCAL(value ex6)
- 169 THROW(Throwable)
+ ? STORE_LOCAL(variable exc2)
+ ? JUMP 27
-
+
@@ -865,2 +918,15 @@
-
-+ 27:
+
++ 27:
+ 184 LOAD_MODULE object Predef
+ 184 CONSTANT("finally")
+ 184 CALL_METHOD scala.Predef.println (dynamic)
@@ -272,7 +272,7 @@
+ 185 STORE_LOCAL(variable result)
+ 185 LOAD_LOCAL(variable exc2)
+ 185 THROW(Throwable)
-+
++
}
@@ -870,6 +936,6 @@
with finalizer: null
@@ -290,20 +290,20 @@
startBlock: 1
- blocks: [1,2,3,6,7,8,11,13,14,16]
+ blocks: [1,2,3,6,7,8,11,13,14,16,17]
-
+
@@ -923,4 +989,11 @@
124 CALL_METHOD MyException.<init> (static-instance)
- 124 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 17
-
-+ 17:
+
++ 17:
+ 122 LOAD_LOCAL(value ex6)
+ 122 STORE_LOCAL(value x4)
+ 122 SCOPE_ENTER value x4
+ 122 JUMP 7
-+
- 16:
++
+ 16:
@@ -948,8 +1021,5 @@
127 SCOPE_ENTER value x5
- 127 LOAD_LOCAL(value x5)
@@ -327,27 +327,27 @@
startBlock: 1
- blocks: [1,2,3,4,5,8,12,13,14,16]
+ blocks: [1,2,3,5,8,12,13,14,16,17]
-
+
@@ -1032,4 +1102,13 @@
148 CALL_METHOD MyException.<init> (static-instance)
- 148 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 17
-
-+ 17:
+
++ 17:
+ 145 LOAD_LOCAL(value ex6)
+ 145 STORE_LOCAL(value x4)
+ 145 SCOPE_ENTER value x4
+ 154 LOAD_LOCAL(value x4)
+ 154 IS_INSTANCE REF(class MyException)
+ 154 CZJUMP (BOOL)NE ? 5 : 8
-+
- 16:
++
+ 16:
@@ -1053,5 +1132,2 @@
145 SCOPE_ENTER value x4
- 145 JUMP 4
--
-- 4:
+-
+- 4:
154 LOAD_LOCAL(value x4)
@@ -1065,8 +1141,5 @@
154 SCOPE_ENTER value x5
@@ -364,20 +364,20 @@
startBlock: 1
- blocks: [1,2,3,4,5,7]
+ blocks: [1,2,3,4,5,7,8]
-
+
@@ -1311,4 +1384,11 @@
38 CALL_METHOD java.lang.IllegalArgumentException.<init> (static-instance)
- 38 THROW(IllegalArgumentException)
+ ? STORE_LOCAL(value e)
+ ? JUMP 8
-
-+ 8:
+
++ 8:
+ 42 LOAD_MODULE object Predef
+ 42 CONSTANT("IllegalArgumentException")
+ 42 CALL_METHOD scala.Predef.println (dynamic)
+ 42 JUMP 2
-+
- 7:
++
+ 7:
@@ -1358,5 +1438,5 @@
def main(args: Array[String] (ARRAY[REF(class String)])): Unit {
- locals: value args, variable result, value ex6, value x4, value x5, value message, value x
@@ -385,33 +385,33 @@
startBlock: 1
- blocks: [1,2,3,4,5,8,10,11,13,14,16]
+ blocks: [1,2,3,5,8,10,11,13,14,16,17]
-
+
@@ -1384,3 +1464,4 @@
203 CALL_METHOD MyException.<init> (static-instance)
- 203 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 17
-
+
@@ -1404,4 +1485,13 @@
209 CALL_METHOD MyException.<init> (static-instance)
- 209 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 17
-
-+ 17:
+
++ 17:
+ 200 LOAD_LOCAL(value ex6)
+ 200 STORE_LOCAL(value x4)
+ 200 SCOPE_ENTER value x4
+ 212 LOAD_LOCAL(value x4)
+ 212 IS_INSTANCE REF(class MyException)
+ 212 CZJUMP (BOOL)NE ? 5 : 8
-+
- 16:
++
+ 16:
@@ -1417,5 +1507,2 @@
200 SCOPE_ENTER value x4
- 200 JUMP 4
--
-- 4:
+-
+- 4:
212 LOAD_LOCAL(value x4)
@@ -1429,8 +1516,5 @@
212 SCOPE_ENTER value x5
@@ -428,41 +428,41 @@
startBlock: 1
- blocks: [1,2,3,4,5,7]
+ blocks: [1,2,3,4,5,7,8]
-
+
@@ -1502,4 +1586,11 @@
58 CALL_METHOD java.lang.IllegalArgumentException.<init> (static-instance)
- 58 THROW(IllegalArgumentException)
+ ? STORE_LOCAL(value e)
+ ? JUMP 8
-
-+ 8:
+
++ 8:
+ 62 LOAD_MODULE object Predef
+ 62 CONSTANT("RuntimeException")
+ 62 CALL_METHOD scala.Predef.println (dynamic)
+ 62 JUMP 2
-+
- 7:
++
+ 7:
@@ -1551,3 +1642,3 @@
startBlock: 1
- blocks: [1,3,4]
+ blocks: [1,3,4,5]
-
+
@@ -1571,4 +1662,9 @@
229 CALL_METHOD MyException.<init> (static-instance)
- 229 THROW(MyException)
+ ? JUMP 5
-
-+ 5:
+
++ 5:
+ ? LOAD_LOCAL(variable monitor1)
+ 228 MONITOR_EXIT
+ 228 THROW(Throwable)
-+
- 3:
++
+ 3:
@@ -1577,3 +1673,3 @@
228 MONITOR_EXIT
- ? THROW(Throwable)
+ 228 THROW(Throwable)
-
+
@@ -1605,5 +1701,5 @@
def main(args: Array[String] (ARRAY[REF(class String)])): Unit {
- locals: value args, variable result, variable monitor2, variable monitorResult1
@@ -470,7 +470,7 @@
startBlock: 1
- blocks: [1,3,4]
+ blocks: [1,3,4,5]
-
+
@@ -1630,4 +1726,12 @@
245 CALL_METHOD MyException.<init> (static-instance)
- 245 THROW(MyException)
@@ -478,15 +478,14 @@
+ ? DROP ConcatClass
+ ? LOAD_LOCAL(value exception$1)
+ ? JUMP 5
-
-+ 5:
+
++ 5:
+ ? LOAD_LOCAL(variable monitor2)
+ 244 MONITOR_EXIT
+ 244 THROW(Throwable)
-+
- 3:
++
+ 3:
@@ -1636,3 +1740,3 @@
244 MONITOR_EXIT
- ? THROW(Throwable)
+ 244 THROW(Throwable)
-
diff --git a/test/files/run/inline-ex-handlers.scala b/test/pending/run/inline-ex-handlers.scala
index 4095d54e36..964594d258 100644
--- a/test/files/run/inline-ex-handlers.scala
+++ b/test/pending/run/inline-ex-handlers.scala
@@ -1,7 +1,7 @@
import scala.tools.partest.IcodeComparison
object Test extends IcodeComparison {
- override def printIcodeAfterPhase = "inlinehandlers"; override def extraSettings: String = super.extraSettings + " -Ybackend:GenASM" // same line to minimize check file changs
+ override def printIcodeAfterPhase = "inlinehandlers"
}
import scala.util.Random._
diff --git a/test/files/run/t5313.check b/test/pending/run/t5313.check
index 7a48b2b711..7a48b2b711 100644
--- a/test/files/run/t5313.check
+++ b/test/pending/run/t5313.check
diff --git a/test/files/run/t5313.scala b/test/pending/run/t5313.scala
index 24ed334816..4a5b076e6e 100644
--- a/test/files/run/t5313.scala
+++ b/test/pending/run/t5313.scala
@@ -3,7 +3,7 @@ import scala.tools.partest.IcodeComparison
object Test extends IcodeComparison {
override def printIcodeAfterPhase = "dce"
- override def extraSettings: String = super.extraSettings + " -optimize -Ybackend:GenASM"
+ override def extraSettings: String = super.extraSettings + " -Yopt:l:classpath"
override def code =
"""class Foo {
diff --git a/test/files/run/t6955.scala b/test/pending/run/t6955.scala
index 9ee3ef6bc5..787617eff1 100644
--- a/test/files/run/t6955.scala
+++ b/test/pending/run/t6955.scala
@@ -21,8 +21,6 @@ class Switches {
}
object Test extends IcodeComparison {
- override def extraSettings: String = super.extraSettings + " -Ybackend:GenASM"
-
// ensure we get two switches out of this -- ignore the rest of the output for robustness
// exclude the constant we emit for the "SWITCH ..." string below (we get the icode for all the code you see in this file)
override def show() = {
@@ -30,7 +28,6 @@ object Test extends IcodeComparison {
val actual = (collectIcode() filter {
x => x.indexOf("SWITCH ...") >= 0 && x.indexOf("CONSTANT(") == -1
}).size
- assert(actual == expected)
+ assert(actual == expected, s"switches expected: $expected, actual: $actual")
}
}
-
diff --git a/test/files/run/t6956.scala b/test/pending/run/t6956.scala
index 594f5c9194..57d721807d 100644
--- a/test/files/run/t6956.scala
+++ b/test/pending/run/t6956.scala
@@ -19,8 +19,6 @@ class Switches {
}
object Test extends IcodeComparison {
- override def extraSettings: String = super.extraSettings + " -Ybackend:GenASM"
-
// ensure we get two switches out of this -- ignore the rest of the output for robustness
// exclude the constant we emit for the "SWITCH ..." string below (we get the icode for all the code you see in this file)
override def show() = {
@@ -28,6 +26,6 @@ object Test extends IcodeComparison {
val actual = (collectIcode() filter {
x => x.indexOf("SWITCH ...") >= 0 && x.indexOf("CONSTANT(") == -1
}).size
- assert(actual == expected)
+ assert(actual == expected, s"switches expected: $expected, actual: $actual")
}
}
diff --git a/test/files/run/test-cpp.check b/test/pending/run/test-cpp.check
index 40c10e3350..ff4c9bf2bf 100644
--- a/test/files/run/test-cpp.check
+++ b/test/pending/run/test-cpp.check
@@ -6,7 +6,7 @@
+ locals: value args
startBlock: 1
@@ -59,10 +59,6 @@
- 1:
+ 1:
- 52 CONSTANT(2)
- 52 STORE_LOCAL(value x)
52 SCOPE_ENTER value x
@@ -37,7 +37,7 @@
+ locals: value args
startBlock: 1
@@ -157,10 +151,6 @@
- 1:
+ 1:
- 66 THIS(TestAliasChainDerefThis)
- 66 STORE_LOCAL(value x)
66 SCOPE_ENTER value x
@@ -54,7 +54,7 @@
+ locals: value x
startBlock: 1
@@ -198,7 +188,5 @@
- 1:
+ 1:
- 29 LOAD_LOCAL(value x)
- 29 STORE_LOCAL(value y)
29 SCOPE_ENTER value y
diff --git a/test/files/run/test-cpp.scala b/test/pending/run/test-cpp.scala
index 80163deb66..4fca67d51e 100644
--- a/test/files/run/test-cpp.scala
+++ b/test/pending/run/test-cpp.scala
@@ -15,7 +15,7 @@
import scala.tools.partest.IcodeComparison
object Test extends IcodeComparison {
- override def printIcodeAfterPhase = "dce"; override def extraSettings: String = super.extraSettings + " -Ybackend:GenASM" // same line to minimize check file changs
+ override def printIcodeAfterPhase = "dce"
}
import scala.util.Random._