diff options
author | Martin Odersky <odersky@gmail.com> | 2016-07-27 14:44:40 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-07-27 14:44:40 +0200 |
commit | 2af7ea0c44b4d274503921911d80a5c7baab06ab (patch) | |
tree | d4ebc64fe673f427e8784d1c2103f732e32179a9 /tests | |
parent | 2e725908c3bd340daf140906885fdb43fba13a0f (diff) | |
download | dotty-2af7ea0c44b4d274503921911d80a5c7baab06ab.tar.gz dotty-2af7ea0c44b4d274503921911d80a5c7baab06ab.tar.bz2 dotty-2af7ea0c44b4d274503921911d80a5c7baab06ab.zip |
Move test from pos to run
Test generated code before but fails with verify error at runtime.
Here's the message:
Exception in thread "main" java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
D$.<init>()V @2: invokedynamic
Reason:
Type uninitializedThis (current frame, stack[1]) is not assignable to 'D$'
Current Frame:
bci: @2
flags: { flagThisUninit }
locals: { uninitializedThis }
stack: { uninitializedThis, uninitializedThis }
Bytecode:
0x0000000: 2a2a ba00 1f00 00b7 0022 2ab3 0024 b1
at Test$.main(t3048.scala:13)
at Test.main(t3048.scala)
With the fix in last commit, test causes backend to crash with
java.lang.AssertionError: assertion failed: val <none>
at scala.Predef$.assert(Predef.scala:165)
at scala.tools.nsc.backend.jvm.BCodeHelpers$BCInnerClassGen$class.assertClassNotArray(BCodeHelpers.scala:214)
at scala.tools.nsc.backend.jvm.BCodeHelpers$BCInnerClassGen$class.assertClassNotArrayNotPrimitive(BCodeHelpers.scala:219)
at scala.tools.nsc.backend.jvm.BCodeHelpers$BCInnerClassGen$class.getClassBTypeAndRegisterInnerClass(BCodeHelpers.scala:238)
at scala.tools.nsc.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.getClassBTypeAndRegisterInnerClass(BCodeSkelBuilder.scala:51)
at scala.tools.nsc.backend.jvm.BCodeHelpers$BCInnerClassGen$class.internalName(BCodeHelpers.scala:210)
Diffstat (limited to 'tests')
-rw-r--r-- | tests/run/t3048.scala (renamed from tests/pos/t3048.scala) | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/pos/t3048.scala b/tests/run/t3048.scala index dc056ecba..8762047af 100644 --- a/tests/pos/t3048.scala +++ b/tests/run/t3048.scala @@ -1,8 +1,17 @@ class B object C extends B -class F[T <: B](cons: => T) +class F[T <: B](cons: => T) { + def f = cons +} class F2[T <: B](cons: => T) extends F(cons) object D extends F2(C) // works object E extends F2(new B {}) + +object Test { + def main(args: Array[String]): Unit = { + D.f + E.f + } +} |