diff options
Diffstat (limited to 'test/files')
26 files changed, 361 insertions, 23 deletions
diff --git a/test/files/neg/t5148.check b/test/files/neg/t5148.check index 286ed9e04a..da0ef0fc2e 100644 --- a/test/files/neg/t5148.check +++ b/test/files/neg/t5148.check @@ -1,11 +1,7 @@ -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. -two errors found +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 + ^ +one error 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/t7439.check b/test/files/run/t7439.check index 9ea09f9c40..b95884311a 100644 --- a/test/files/run/t7439.check +++ b/test/files/run/t7439.check @@ -1,2 +1,2 @@ Recompiling after deleting t7439-run.obj/A_1.class -pos: NoPosition Class A_1 not found - continuing with a stub. WARNING + diff --git a/test/files/run/t8442.check b/test/files/run/t8442.check index ce9e8b52ff..8b13789179 100644 --- a/test/files/run/t8442.check +++ b/test/files/run/t8442.check @@ -1 +1 @@ -pos: NoPosition Class A_1 not found - continuing with a stub. WARNING + diff --git a/test/files/run/t9268.check b/test/files/run/t9268.check index 90ef940eb3..60afcbb648 100644 --- a/test/files/run/t9268.check +++ b/test/files/run/t9268.check @@ -1,5 +1,4 @@ Compiling Client1 -pos: NoPosition Class Waiter not found - continuing with a stub. WARNING + Compiling Client2 -pos: NoPosition Class Waiter not found - continuing with a stub. WARNING pos: NoPosition Unable to locate class corresponding to inner class entry for Predicate in owner Waiter ERROR 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")) } } |