@@ -7,19 +7,19 @@ import dotty.tools.dotc.config.CompilerCommand
7
7
import dotty .tools .dotc .core .Contexts .FreshContext
8
8
import scala .tools .asm .tree .MethodNode
9
9
10
- class SimplifyPosTests extends DottyBytecodeOptimisedTest with SimplifyEquivalences
11
- class SimplifyNegTests extends DottyBytecodeTest with SimplifyEquivalences
10
+ class SimplifyPosTests extends SimplifyTests (optimise = true )
11
+ class SimplifyNegTests extends SimplifyTests (optimise = false )
12
12
13
- class DottyBytecodeOptimisedTest extends DottyBytecodeTest {
13
+ abstract class SimplifyTests ( val optimise : Boolean ) extends DottyBytecodeTest {
14
14
override protected def initializeCtx (c : FreshContext ): Unit = {
15
15
super .initializeCtx(c)
16
- val flags = Array (" -optimise" ) // :+ "-Xprint:simplify"
17
- val summary = CompilerCommand .distill(flags)(c)
18
- c.setSettings(summary.sstate)
16
+ if (optimise) {
17
+ val flags = Array (" -optimise" ) // :+ "-Xprint:simplify"
18
+ val summary = CompilerCommand .distill(flags)(c)
19
+ c.setSettings(summary.sstate)
20
+ }
19
21
}
20
- }
21
22
22
- trait SimplifyEquivalences { self : DottyBytecodeTest =>
23
23
def check (expr1 : String , expr2 : String , shared : String = " " ): Unit = {
24
24
import ASMConverters ._
25
25
val source =
@@ -45,7 +45,7 @@ trait SimplifyEquivalences { self: DottyBytecodeTest =>
45
45
val A = instructions(" A" )
46
46
val B = instructions(" B" )
47
47
val diff = diffInstructions(A , B )
48
- if (this . isInstanceOf [ DottyBytecodeOptimisedTest ] )
48
+ if (optimise )
49
49
assert(A == B , s " Bytecode wasn't same: \n $diff" )
50
50
else
51
51
assert(A != B , s " Bytecode was the same: \n $diff" )
0 commit comments