summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/files/neg/t5148.check27
-rw-r--r--test/files/run/StubErrorBInheritsFromA.check6
-rw-r--r--test/files/run/StubErrorBInheritsFromA.scala22
-rw-r--r--test/files/run/StubErrorComplexInnerClass.check6
-rw-r--r--test/files/run/StubErrorComplexInnerClass.scala42
-rw-r--r--test/files/run/StubErrorHK.check6
-rw-r--r--test/files/run/StubErrorHK.scala22
-rw-r--r--test/files/run/StubErrorReturnTypeFunction.check6
-rw-r--r--test/files/run/StubErrorReturnTypeFunction.scala37
-rw-r--r--test/files/run/StubErrorReturnTypeFunction2.check6
-rw-r--r--test/files/run/StubErrorReturnTypeFunction2.scala37
-rw-r--r--test/files/run/StubErrorReturnTypePolyFunction.check15
-rw-r--r--test/files/run/StubErrorReturnTypePolyFunction.scala37
-rw-r--r--test/files/run/StubErrorSubclasses.check6
-rw-r--r--test/files/run/StubErrorSubclasses.scala21
-rw-r--r--test/files/run/StubErrorTypeDef.check16
-rw-r--r--test/files/run/StubErrorTypeDef.scala26
-rw-r--r--test/files/run/StubErrorTypeclass.check6
-rw-r--r--test/files/run/StubErrorTypeclass.scala21
-rw-r--r--test/files/run/t6440b.check11
-rw-r--r--test/files/run/t6440b.scala6
-rw-r--r--test/files/run/typetags_without_scala_reflect_typetag_lookup.scala2
-rw-r--r--test/files/run/typetags_without_scala_reflect_typetag_manifest_interop.scala2
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"))
}
}