aboutsummaryrefslogtreecommitdiff
path: root/tests/pending/run/t4415.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pending/run/t4415.scala')
-rw-r--r--tests/pending/run/t4415.scala86
1 files changed, 0 insertions, 86 deletions
diff --git a/tests/pending/run/t4415.scala b/tests/pending/run/t4415.scala
deleted file mode 100644
index 33d390869..000000000
--- a/tests/pending/run/t4415.scala
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
- * Demonstration of issue with Extractors. If lines 15/16 are not present, get at runtime:
- *
- * Exception in thread "main" java.lang.VerifyError: (class: ExtractorIssue$$, method: convert signature: (LTopProperty;)LMyProp;) Accessing value from uninitialized register 5
- * at ExtractorIssue.main(ExtractorIssue.scala)
- * at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115)]
- *
- * If lines 15/16 are present, the compiler crashes:
- *
- * fatal error (server aborted): not enough arguments for method body%3: (val p: MyProp[java.lang.String])MyProp[_33].
- * Unspecified value parameter p.
- */
-object Test {
-
- def main(args: Array[String]): Unit = {
- convert(new SubclassProperty)
- }
-
- def convert(prop: TopProperty): MyProp[_] = {
- prop match {
-
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //case SubclassSecondMatch(p) => p // if these lines are present, the compiler crashes. If commented, unsafe byte
- //case SecondMatch(p) => p // byte code is generated, which causes a java.lang.VerifyError at runtime
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- case SubclassMatch(p) => p
- case StandardMatch(p) => p
- }
- }
-}
-
-class TopProperty
-
-class StandardProperty extends TopProperty
-class SubclassProperty extends StandardProperty
-
-class SecondProperty extends TopProperty
-class SubclassSecondProperty extends StandardProperty
-
-trait MyProp[T]
-case class MyPropImpl[T]() extends MyProp[T]
-
-object SubclassMatch {
-
- def unapply(prop: SubclassProperty) : Option[MyProp[String]] = {
- Some(new MyPropImpl)
- }
-
- def apply(prop: MyProp[String]) : SubclassProperty = {
- new SubclassProperty()
- }
-}
-
-object StandardMatch {
-
- def unapply(prop: StandardProperty) : Option[MyProp[String]] = {
- Some(new MyPropImpl)
- }
-
- def apply(prop: MyProp[String]) : StandardProperty = {
- new StandardProperty()
- }
-}
-
-object SubclassSecondMatch {
-
- def unapply(prop: SubclassSecondProperty) : Option[MyProp[BigInt]] = {
- Some(new MyPropImpl)
- }
-
- def apply(prop: MyProp[String]) : SubclassSecondProperty = {
- new SubclassSecondProperty()
- }
-}
-
-object SecondMatch {
-
- def unapply(prop: SecondProperty) : Option[MyProp[BigInt]] = {
- Some(new MyPropImpl)
- }
-
- def apply(prop: MyProp[String]) : SecondProperty = {
- new SecondProperty()
- }
-}