summaryrefslogtreecommitdiff
path: root/test/files/neg
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-08-21 17:18:33 +0000
committerMartin Odersky <odersky@gmail.com>2006-08-21 17:18:33 +0000
commit1536b1c67ecff52027a0c24d6791fb978fb88db4 (patch)
treeee544f3b5126e4393a2746d0b04281d413b1812e /test/files/neg
parent7f3d535727ff3fd8ba38e6fd55d474f76ed3ed90 (diff)
downloadscala-1536b1c67ecff52027a0c24d6791fb978fb88db4.tar.gz
scala-1536b1c67ecff52027a0c24d6791fb978fb88db4.tar.bz2
scala-1536b1c67ecff52027a0c24d6791fb978fb88db4.zip
Diffstat (limited to 'test/files/neg')
-rw-r--r--test/files/neg/accesses.check17
-rw-r--r--test/files/neg/accesses.scala27
-rw-r--r--test/files/neg/bug677.check6
-rwxr-xr-xtest/files/neg/bug677.scala3
-rw-r--r--test/files/neg/bug681.check4
-rwxr-xr-xtest/files/neg/bug681.scala12
-rw-r--r--test/files/neg/bug692.check19
-rwxr-xr-xtest/files/neg/bug692.scala20
-rw-r--r--test/files/neg/bug693.check4
-rwxr-xr-xtest/files/neg/bug693.scala5
-rw-r--r--test/files/neg/bug696.check9
-rw-r--r--test/files/neg/bug696.scala6
-rw-r--r--test/files/neg/bug711.check4
-rw-r--r--test/files/neg/bug711.scala14
14 files changed, 150 insertions, 0 deletions
diff --git a/test/files/neg/accesses.check b/test/files/neg/accesses.check
new file mode 100644
index 0000000000..64cd0c4e8b
--- /dev/null
+++ b/test/files/neg/accesses.check
@@ -0,0 +1,17 @@
+accesses.scala:23 error: error overriding method f2 in class A of type => scala.Unit;
+ method f2 has weaker access privileges; it should not be private
+ private def f2: unit = ()
+ ^
+accesses.scala:24 error: error overriding method f3 in class A of type => scala.Unit;
+ method f3 has weaker access privileges; it should be at least protected
+ private[p2] def f3: unit = ()
+ ^
+accesses.scala:25 error: error overriding method f4 in class A of type => scala.Unit;
+ method f4 has weaker access privileges; it should be at least private[p1]
+ private[p2] def f4: unit
+ ^
+accesses.scala:26 error: error overriding method f5 in class A of type => scala.Unit;
+ method f5 has weaker access privileges; it should be at least protected[p1]
+ protected[p2] def f5: unit
+ ^
+four errors found
diff --git a/test/files/neg/accesses.scala b/test/files/neg/accesses.scala
new file mode 100644
index 0000000000..731bf664be
--- /dev/null
+++ b/test/files/neg/accesses.scala
@@ -0,0 +1,27 @@
+package test.p1.p2
+
+abstract class A {
+ private[p2] def f2: unit
+ protected def f3: unit
+ private[p1] def f4: unit
+ protected[p1] def f5: unit
+}
+
+abstract class OK1 extends A {
+ private[p1] def f2: unit
+ protected[p2] def f3: unit
+ private[test] def f4: unit
+ protected[test] def f5: unit
+}
+abstract class OK2 extends A {
+ protected[p1] def f2: unit
+ def f3: unit
+ protected[p1] def f4: unit
+ def f5: unit
+}
+abstract class Err1 extends A {
+ private def f2: unit = ()
+ private[p2] def f3: unit = ()
+ private[p2] def f4: unit
+ protected[p2] def f5: unit
+}
diff --git a/test/files/neg/bug677.check b/test/files/neg/bug677.check
new file mode 100644
index 0000000000..fc90bc3a33
--- /dev/null
+++ b/test/files/neg/bug677.check
@@ -0,0 +1,6 @@
+bug677.scala:2 error: type mismatch;
+ found : () => scala.Int
+ required: scala.All
+ val zx: All = {() => 4}
+ ^
+one error found
diff --git a/test/files/neg/bug677.scala b/test/files/neg/bug677.scala
new file mode 100755
index 0000000000..06dcbe5557
--- /dev/null
+++ b/test/files/neg/bug677.scala
@@ -0,0 +1,3 @@
+object ga {
+ val zx: All = {() => 4}
+} \ No newline at end of file
diff --git a/test/files/neg/bug681.check b/test/files/neg/bug681.check
new file mode 100644
index 0000000000..0af3afffd8
--- /dev/null
+++ b/test/files/neg/bug681.check
@@ -0,0 +1,4 @@
+bug681.scala:10 warning: imported `x' is permanently hidden by definition of value x in class foo
+ import foo.{x};
+ ^
+one warning found
diff --git a/test/files/neg/bug681.scala b/test/files/neg/bug681.scala
new file mode 100755
index 0000000000..ed923731cb
--- /dev/null
+++ b/test/files/neg/bug681.scala
@@ -0,0 +1,12 @@
+package test;
+
+class foo {
+ val x : Int = 42;
+}
+object foo {
+ val x : String = "hello";
+}
+object test extends foo with Application {
+ import foo.{x};
+ Console.println(x)
+}
diff --git a/test/files/neg/bug692.check b/test/files/neg/bug692.check
new file mode 100644
index 0000000000..8c9d9d4b52
--- /dev/null
+++ b/test/files/neg/bug692.check
@@ -0,0 +1,19 @@
+bug692.scala:3 error: not found: type T
+ trait Type[T0] extends Type0[T];
+ ^
+bug692.scala:10 error: class Foo takes type parameters
+ case class FooType extends ClassType[Foo,Object](ObjectType);
+ ^
+bug692.scala:13 error: class Foo takes type parameters
+ case class BarType[T3 <: Foo](tpeT : RefType[T3]) extends ClassType[Bar[T3],Foo](FooType);
+ ^
+bug692.scala:13 error: class Foo takes type parameters
+ case class BarType[T3 <: Foo](tpeT : RefType[T3]) extends ClassType[Bar[T3],Foo](FooType);
+ ^
+bug692.scala:14 error: class Foo takes type parameters
+ implicit def typeOfBar[T4 <: Foo](implicit elem : RefType[T4]) : RefType[Bar[T4]] =
+ ^
+bug692.scala:19 error: class Foo takes type parameters
+ class Bar[A <: Foo](implicit tpeA : Type[A]) extends Foo;
+ ^
+6 errors found
diff --git a/test/files/neg/bug692.scala b/test/files/neg/bug692.scala
new file mode 100755
index 0000000000..50976f1121
--- /dev/null
+++ b/test/files/neg/bug692.scala
@@ -0,0 +1,20 @@
+abstract class test3 {
+ trait Type0[+T0];
+ trait Type[T0] extends Type0[T];
+ trait ClassType0[+C <: Object] extends Type0[C];
+ abstract class RefType[C <: Object] extends Type[C];
+ case class ObjectType extends RefType[Object];
+ abstract class ClassType[C <: Z, Z <: Object](zuper : RefType[Z]) extends RefType[C];
+
+
+ case class FooType extends ClassType[Foo,Object](ObjectType);
+ implicit def typeOfFoo = FooType();
+
+ case class BarType[T3 <: Foo](tpeT : RefType[T3]) extends ClassType[Bar[T3],Foo](FooType);
+ implicit def typeOfBar[T4 <: Foo](implicit elem : RefType[T4]) : RefType[Bar[T4]] =
+ BarType(elem);
+
+
+ class Foo[A <: Object];
+ class Bar[A <: Foo](implicit tpeA : Type[A]) extends Foo;
+}
diff --git a/test/files/neg/bug693.check b/test/files/neg/bug693.check
new file mode 100644
index 0000000000..86ccf6b886
--- /dev/null
+++ b/test/files/neg/bug693.check
@@ -0,0 +1,4 @@
+bug693.scala:4 error: x is already defined as value x
+ val x : Int = 10;
+ ^
+one error found
diff --git a/test/files/neg/bug693.scala b/test/files/neg/bug693.scala
new file mode 100755
index 0000000000..bc0844bfce
--- /dev/null
+++ b/test/files/neg/bug693.scala
@@ -0,0 +1,5 @@
+abstract class test4 {
+ trait Type;
+ val x : Type = null;
+ val x : Int = 10;
+} \ No newline at end of file
diff --git a/test/files/neg/bug696.check b/test/files/neg/bug696.check
new file mode 100644
index 0000000000..5a3ef2ff85
--- /dev/null
+++ b/test/files/neg/bug696.check
@@ -0,0 +1,9 @@
+bug696.scala:3 error: implicit method WithType is not contractive,
+ because the implicit parameter type TypeUtil0.this.Type[S]
+ is not strictly contained in the signature TypeUtil0.this.Type[S with T]
+ implicit def WithType[S,T](implicit tpeS : Type[S], tpeT : Type[T]) : Type[S with T] = null
+ ^
+bug696.scala:4 error: no implicit argument matching parameter type TypeUtil0.this.Type[scala.Any] was found.
+ as[Any](null);
+ ^
+two errors found
diff --git a/test/files/neg/bug696.scala b/test/files/neg/bug696.scala
new file mode 100644
index 0000000000..a06a32141a
--- /dev/null
+++ b/test/files/neg/bug696.scala
@@ -0,0 +1,6 @@
+object TypeUtil0 {
+ trait Type[+T];
+ implicit def WithType[S,T](implicit tpeS : Type[S], tpeT : Type[T]) : Type[S with T] = null
+ as[Any](null);
+ def as[T](x : Any)(implicit tpe : Type[T]) = null;
+}
diff --git a/test/files/neg/bug711.check b/test/files/neg/bug711.check
new file mode 100644
index 0000000000..401677af6b
--- /dev/null
+++ b/test/files/neg/bug711.check
@@ -0,0 +1,4 @@
+bug711.scala:11 error: method sayHey overrides nothing
+ def sayHey: Unit
+ ^
+one error found
diff --git a/test/files/neg/bug711.scala b/test/files/neg/bug711.scala
new file mode 100644
index 0000000000..70fcc7f0d0
--- /dev/null
+++ b/test/files/neg/bug711.scala
@@ -0,0 +1,14 @@
+abstract class Component
+
+class Button extends Component {
+ def sayHey: Unit = Console.println("Hey, I'm a button") }
+
+abstract class Origin {
+ val delegate: Component }
+
+object main extends Origin with Application {
+ val delegate: Component {
+ def sayHey: Unit
+ } = new Button
+ delegate.sayHey
+}