diff options
Diffstat (limited to 'test')
23 files changed, 363 insertions, 23 deletions
diff --git a/test/files/neg/t5148.check b/test/files/neg/t5148.check index 1f58c235ce..8c895d7b47 100644 --- a/test/files/neg/t5148.check +++ b/test/files/neg/t5148.check @@ -1,16 +1,13 @@ -error: missing or invalid dependency detected while loading class file 'Imports.class'. -Could not access term memberHandlers in class scala.tools.nsc.interpreter.IMain, -because it (or its dependencies) are missing. Check your build definition for -missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.) +t5148.scala:4: error: Symbol 'term scala.tools.nsc.interpreter.IMain.memberHandlers' is missing from the classpath. +This symbol is required by 'method scala.tools.nsc.interpreter.Imports.allReqAndHandlers'. +Make sure that term memberHandlers is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. A full rebuild may help if 'Imports.class' was compiled against an incompatible version of scala.tools.nsc.interpreter.IMain. -error: missing or invalid dependency detected while loading class file 'Imports.class'. -Could not access type Wrapper in class scala.tools.nsc.interpreter.IMain.Request, -because it (or its dependencies) are missing. Check your build definition for -missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.) -A full rebuild may help if 'Imports.class' was compiled against an incompatible version of scala.tools.nsc.interpreter.IMain.Request. -error: missing or invalid dependency detected while loading class file 'Imports.class'. -Could not access type Request in class scala.tools.nsc.interpreter.IMain, -because it (or its dependencies) are missing. Check your build definition for -missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.) -A full rebuild may help if 'Imports.class' was compiled against an incompatible version of scala.tools.nsc.interpreter.IMain. -three errors found +class IMain extends Imports + ^ +t5148.scala:4: error: Symbol 'type <none>.Request.Wrapper' is missing from the classpath. +This symbol is required by 'value scala.tools.nsc.interpreter.Imports.wrapper'. +Make sure that type Wrapper is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. +A full rebuild may help if 'Imports.class' was compiled against an incompatible version of <none>.Request. +class IMain extends Imports + ^ +two errors found diff --git a/test/files/run/StubErrorBInheritsFromA.check b/test/files/run/StubErrorBInheritsFromA.check new file mode 100644 index 0000000000..009f0887d4 --- /dev/null +++ b/test/files/run/StubErrorBInheritsFromA.check @@ -0,0 +1,6 @@ +error: newSource1.scala:4: Symbol 'type stuberrors.A' is missing from the classpath. +This symbol is required by 'class stuberrors.B'. +Make sure that type A is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. +A full rebuild may help if 'B.class' was compiled against an incompatible version of stuberrors. + new B + ^ diff --git a/test/files/run/StubErrorBInheritsFromA.scala b/test/files/run/StubErrorBInheritsFromA.scala new file mode 100644 index 0000000000..3e02692171 --- /dev/null +++ b/test/files/run/StubErrorBInheritsFromA.scala @@ -0,0 +1,22 @@ +object Test extends scala.tools.partest.StubErrorMessageTest { + def codeA = """ + package stuberrors + class A + """ + + def codeB = """ + package stuberrors + class B extends A + """ + + def userCode = """ + package stuberrors + class C { + new B + } + """ + + def removeFromClasspath(): Unit = { + removeClasses("stuberrors", List("A")) + } +} diff --git a/test/files/run/StubErrorComplexInnerClass.check b/test/files/run/StubErrorComplexInnerClass.check new file mode 100644 index 0000000000..fe089de8ad --- /dev/null +++ b/test/files/run/StubErrorComplexInnerClass.check @@ -0,0 +1,6 @@ +error: newSource1.scala:9: Symbol 'type stuberrors.A' is missing from the classpath. +This symbol is required by 'class stuberrors.B.BB'. +Make sure that type A is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. +A full rebuild may help if 'B.class' was compiled against an incompatible version of stuberrors. + new b.BB + ^ diff --git a/test/files/run/StubErrorComplexInnerClass.scala b/test/files/run/StubErrorComplexInnerClass.scala new file mode 100644 index 0000000000..2028644601 --- /dev/null +++ b/test/files/run/StubErrorComplexInnerClass.scala @@ -0,0 +1,42 @@ +object Test extends scala.tools.partest.StubErrorMessageTest { + def codeA = """ + package stuberrors + class A + """ + + def codeB = """ + package stuberrors + class B { + def foo: String = ??? + + // unused and should fail, but not loaded + def unsafeFoo: A = ??? + // used, B.info -> BB.info -> unpickling A -> stub error + class BB extends A + } + """ + + def userCode = """ + package stuberrors + class C { + def aloha = { + val b = new B + val d = new extra.D + d.foo + println(b.foo) + new b.BB + } + } + """ + + override def extraUserCode = """ + package extra + class D { + def foo = "Hello, World" + } + """.stripMargin + + def removeFromClasspath(): Unit = { + removeClasses("stuberrors", List("A")) + } +} diff --git a/test/files/run/StubErrorHK.check b/test/files/run/StubErrorHK.check new file mode 100644 index 0000000000..6f37f8ea41 --- /dev/null +++ b/test/files/run/StubErrorHK.check @@ -0,0 +1,6 @@ +error: newSource1.scala:4: Symbol 'type stuberrors.A' is missing from the classpath. +This symbol is required by 'type stuberrors.B.D'. +Make sure that type A is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. +A full rebuild may help if 'B.class' was compiled against an incompatible version of stuberrors. + println(new B) + ^ diff --git a/test/files/run/StubErrorHK.scala b/test/files/run/StubErrorHK.scala new file mode 100644 index 0000000000..7ee8c6d6a5 --- /dev/null +++ b/test/files/run/StubErrorHK.scala @@ -0,0 +1,22 @@ +object Test extends scala.tools.partest.StubErrorMessageTest { + def codeA = """ + package stuberrors + class A + """ + + def codeB = """ + package stuberrors + class B[D <: A] + """ + + def userCode = """ + package stuberrors + object C extends App { + println(new B) + } + """ + + def removeFromClasspath(): Unit = { + removeClasses("stuberrors", List("A")) + } +} diff --git a/test/files/run/StubErrorReturnTypeFunction.check b/test/files/run/StubErrorReturnTypeFunction.check new file mode 100644 index 0000000000..bd61d5f5fa --- /dev/null +++ b/test/files/run/StubErrorReturnTypeFunction.check @@ -0,0 +1,6 @@ +error: newSource1.scala:13: Symbol 'type stuberrors.A' is missing from the classpath. +This symbol is required by 'method stuberrors.B.foo'. +Make sure that type A is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. +A full rebuild may help if 'B.class' was compiled against an incompatible version of stuberrors. + b.foo + ^ diff --git a/test/files/run/StubErrorReturnTypeFunction.scala b/test/files/run/StubErrorReturnTypeFunction.scala new file mode 100644 index 0000000000..75a02cff63 --- /dev/null +++ b/test/files/run/StubErrorReturnTypeFunction.scala @@ -0,0 +1,37 @@ +object Test extends scala.tools.partest.StubErrorMessageTest { + def codeA = """ + package stuberrors + class A + class AA + """ + + def codeB = """ + package stuberrors + + abstract class B { + def bar: String = ??? + def foo: A = new A + def baz: String = ??? + } + """ + + def userCode = """ + package stuberrors + + abstract class C extends App { + val b = new B {} + + // Use other symbols in the meanwhile + val aa = new AA + val dummy = 1 + println(dummy) + + // Should blow up + b.foo + } + """ + + def removeFromClasspath(): Unit = { + removeClasses("stuberrors", List("A")) + } +} diff --git a/test/files/run/StubErrorReturnTypeFunction2.check b/test/files/run/StubErrorReturnTypeFunction2.check new file mode 100644 index 0000000000..bd61d5f5fa --- /dev/null +++ b/test/files/run/StubErrorReturnTypeFunction2.check @@ -0,0 +1,6 @@ +error: newSource1.scala:13: Symbol 'type stuberrors.A' is missing from the classpath. +This symbol is required by 'method stuberrors.B.foo'. +Make sure that type A is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. +A full rebuild may help if 'B.class' was compiled against an incompatible version of stuberrors. + b.foo + ^ diff --git a/test/files/run/StubErrorReturnTypeFunction2.scala b/test/files/run/StubErrorReturnTypeFunction2.scala new file mode 100644 index 0000000000..efb2f4f190 --- /dev/null +++ b/test/files/run/StubErrorReturnTypeFunction2.scala @@ -0,0 +1,37 @@ +object Test extends scala.tools.partest.StubErrorMessageTest { + def codeA = """ + package stuberrors + class A + class AA + """ + + def codeB = """ + package stuberrors + + class B { + def bar: String = ??? + def foo: A = new A + def baz: String = ??? + } + """ + + def userCode = """ + package stuberrors + + abstract class C extends App { + val b = new B {} + + // Use other symbols in the meanwhile + val aa = new AA + val dummy = 1 + println(dummy) + + // Should blow up + b.foo + } + """ + + def removeFromClasspath(): Unit = { + removeClasses("stuberrors", List("A")) + } +} diff --git a/test/files/run/StubErrorReturnTypePolyFunction.check b/test/files/run/StubErrorReturnTypePolyFunction.check new file mode 100644 index 0000000000..78e309668e --- /dev/null +++ b/test/files/run/StubErrorReturnTypePolyFunction.check @@ -0,0 +1,15 @@ +error: newSource1.scala:13: Symbol 'type stuberrors.A' is missing from the classpath. +This symbol is required by 'class stuberrors.D'. +Make sure that type A is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. +A full rebuild may help if 'D.class' was compiled against an incompatible version of stuberrors. + b.foo[D] + ^ +error: newSource1.scala:13: type arguments [stuberrors.D] do not conform to method foo's type parameter bounds [T <: stuberrors.A] + b.foo[D] + ^ +error: newSource1.scala:13: Symbol 'type stuberrors.A' is missing from the classpath. +This symbol is required by 'type stuberrors.B.T'. +Make sure that type A is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. +A full rebuild may help if 'B.class' was compiled against an incompatible version of stuberrors. + b.foo[D] + ^ diff --git a/test/files/run/StubErrorReturnTypePolyFunction.scala b/test/files/run/StubErrorReturnTypePolyFunction.scala new file mode 100644 index 0000000000..8345aaade0 --- /dev/null +++ b/test/files/run/StubErrorReturnTypePolyFunction.scala @@ -0,0 +1,37 @@ +object Test extends scala.tools.partest.StubErrorMessageTest { + def codeA = """ + package stuberrors + class A + class AA + """ + + def codeB = """ + package stuberrors + + class B { + def foo[T <: A]: T = ??? + } + + class D extends A + """ + + def userCode = """ + package stuberrors + + abstract class C extends App { + val b = new B + + // Use other symbols in the meanwhile + val aa = new AA + val dummy = 1 + println(dummy) + + // Should blow up + b.foo[D] + } + """ + + def removeFromClasspath(): Unit = { + removeClasses("stuberrors", List("A")) + } +} diff --git a/test/files/run/StubErrorSubclasses.check b/test/files/run/StubErrorSubclasses.check new file mode 100644 index 0000000000..8ccd781cad --- /dev/null +++ b/test/files/run/StubErrorSubclasses.check @@ -0,0 +1,6 @@ +error: newSource1.scala:3: Symbol 'type stuberrors.A' is missing from the classpath. +This symbol is required by 'class stuberrors.B'. +Make sure that type A is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. +A full rebuild may help if 'B.class' was compiled against an incompatible version of stuberrors. + class C extends B + ^ diff --git a/test/files/run/StubErrorSubclasses.scala b/test/files/run/StubErrorSubclasses.scala new file mode 100644 index 0000000000..b19155e20e --- /dev/null +++ b/test/files/run/StubErrorSubclasses.scala @@ -0,0 +1,21 @@ +object Test extends scala.tools.partest.StubErrorMessageTest { + def codeA = """ + package stuberrors + class A + """ + + def codeB = """ + package stuberrors + class B extends A + """ + + def userCode = """ + package stuberrors + class C extends B + """ + + def removeFromClasspath(): Unit = { + removeClasses("stuberrors", List("A")) + } +} + diff --git a/test/files/run/StubErrorTypeDef.check b/test/files/run/StubErrorTypeDef.check new file mode 100644 index 0000000000..955d9b0880 --- /dev/null +++ b/test/files/run/StubErrorTypeDef.check @@ -0,0 +1,16 @@ +error: newSource1.scala:4: overriding type D in class B with bounds <: stuberrors.A; + type D has incompatible type + new B { type D = E } + ^ +error: newSource1.scala:4: Symbol 'type stuberrors.A' is missing from the classpath. +This symbol is required by 'type stuberrors.B.D'. +Make sure that type A is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. +A full rebuild may help if 'B.class' was compiled against an incompatible version of stuberrors. + new B { type D = E } + ^ +error: newSource1.scala:4: Symbol 'type stuberrors.A' is missing from the classpath. +This symbol is required by 'class stuberrors.E'. +Make sure that type A is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. +A full rebuild may help if 'E.class' was compiled against an incompatible version of stuberrors. + new B { type D = E } + ^ diff --git a/test/files/run/StubErrorTypeDef.scala b/test/files/run/StubErrorTypeDef.scala new file mode 100644 index 0000000000..967964d815 --- /dev/null +++ b/test/files/run/StubErrorTypeDef.scala @@ -0,0 +1,26 @@ +object Test extends scala.tools.partest.StubErrorMessageTest { + def codeA = """ + package stuberrors + class A + class NestedB[T] + """ + + def codeB = """ + package stuberrors + class E extends A + abstract class B { + type D <: A + } + """ + + def userCode = """ + package stuberrors + class C { + new B { type D = E } + } + """ + + def removeFromClasspath(): Unit = { + removeClasses("stuberrors", List("A")) + } +} diff --git a/test/files/run/StubErrorTypeclass.check b/test/files/run/StubErrorTypeclass.check new file mode 100644 index 0000000000..7ecee64ec9 --- /dev/null +++ b/test/files/run/StubErrorTypeclass.check @@ -0,0 +1,6 @@ +error: newSource1.scala:4: Symbol 'type stuberrors.A' is missing from the classpath. +This symbol is required by 'value stuberrors.B.evidence$1'. +Make sure that type A is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. +A full rebuild may help if 'B.class' was compiled against an incompatible version of stuberrors. + class C { println(new B(1)) } + ^ diff --git a/test/files/run/StubErrorTypeclass.scala b/test/files/run/StubErrorTypeclass.scala new file mode 100644 index 0000000000..e9a48d5430 --- /dev/null +++ b/test/files/run/StubErrorTypeclass.scala @@ -0,0 +1,21 @@ +object Test extends scala.tools.partest.StubErrorMessageTest { + def codeA = """ + package stuberrors + class A[T] + """ + + def codeB = """ + package stuberrors + class B[T: A](val t: T) + """ + + def userCode = """ + package stuberrors + // Here we want a stub error not an implicit not found error + class C { println(new B(1)) } + """ + + def removeFromClasspath(): Unit = { + removeClasses("stuberrors", List("A")) + } +} diff --git a/test/files/run/t6440b.check b/test/files/run/t6440b.check index a6100d6d1e..07ec4f2a19 100644 --- a/test/files/run/t6440b.check +++ b/test/files/run/t6440b.check @@ -1,5 +1,6 @@ -pos: NoPosition missing or invalid dependency detected while loading class file 'U.class'. -Could not access type T in package pack1, -because it (or its dependencies) are missing. Check your build definition for -missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.) -A full rebuild may help if 'U.class' was compiled against an incompatible version of pack1. ERROR +error: newSource1.scala:4: Symbol 'type pack1.T' is missing from the classpath. +This symbol is required by 'method pack1.U.t'. +Make sure that type T is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. +A full rebuild may help if 'U.class' was compiled against an incompatible version of pack1. + pack2.V.u.t // we have to fail if T.class is missing + ^ diff --git a/test/files/run/t6440b.scala b/test/files/run/t6440b.scala index 7ab9529ccb..a1ad717162 100644 --- a/test/files/run/t6440b.scala +++ b/test/files/run/t6440b.scala @@ -56,6 +56,10 @@ object Test extends StoreReporterDirectTest { // bad symbolic reference error expected (but no stack trace!) compileCode(app2) - println(filteredInfos.mkString("\n")) + import scala.reflect.internal.util.Position + filteredInfos.map { report => + print(if (report.severity == storeReporter.ERROR) "error: " else "") + println(Position.formatMessage(report.pos, report.msg, true)) + } } } diff --git a/test/files/run/typetags_without_scala_reflect_typetag_lookup.scala b/test/files/run/typetags_without_scala_reflect_typetag_lookup.scala index 3d2b9f77be..dccb2af8f5 100644 --- a/test/files/run/typetags_without_scala_reflect_typetag_lookup.scala +++ b/test/files/run/typetags_without_scala_reflect_typetag_lookup.scala @@ -38,6 +38,6 @@ object Test extends StoreReporterDirectTest { compileApp(); // we should get "missing or invalid dependency detected" errors, because we're trying to use an implicit that can't be unpickled // but we don't know the number of these errors and their order, so I just ignore them all - println(filteredInfos.filterNot(_.msg.contains("missing or invalid dependency detected")).mkString("\n")) + println(filteredInfos.filterNot(_.msg.contains("is missing from the classpath")).mkString("\n")) } } diff --git a/test/files/run/typetags_without_scala_reflect_typetag_manifest_interop.scala b/test/files/run/typetags_without_scala_reflect_typetag_manifest_interop.scala index a865f4d137..c865759588 100644 --- a/test/files/run/typetags_without_scala_reflect_typetag_manifest_interop.scala +++ b/test/files/run/typetags_without_scala_reflect_typetag_manifest_interop.scala @@ -42,6 +42,6 @@ object Test extends StoreReporterDirectTest { compileApp(); // we should get "missing or invalid dependency detected" errors, because we're trying to use an implicit that can't be unpickled // but we don't know the number of these errors and their order, so I just ignore them all - println(filteredInfos.filterNot (_.msg.contains("missing or invalid dependency detected")).mkString("\n")) + println(filteredInfos.filterNot (_.msg.contains("is missing from the classpath")).mkString("\n")) } } |