From 1536b1c67ecff52027a0c24d6791fb978fb88db4 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Mon, 21 Aug 2006 17:18:33 +0000 Subject: --- test/files/neg/accesses.check | 17 +++++++++++++++++ test/files/neg/accesses.scala | 27 +++++++++++++++++++++++++++ test/files/neg/bug677.check | 6 ++++++ test/files/neg/bug677.scala | 3 +++ test/files/neg/bug681.check | 4 ++++ test/files/neg/bug681.scala | 12 ++++++++++++ test/files/neg/bug692.check | 19 +++++++++++++++++++ test/files/neg/bug692.scala | 20 ++++++++++++++++++++ test/files/neg/bug693.check | 4 ++++ test/files/neg/bug693.scala | 5 +++++ test/files/neg/bug696.check | 9 +++++++++ test/files/neg/bug696.scala | 6 ++++++ test/files/neg/bug711.check | 4 ++++ test/files/neg/bug711.scala | 14 ++++++++++++++ 14 files changed, 150 insertions(+) create mode 100644 test/files/neg/accesses.check create mode 100644 test/files/neg/accesses.scala create mode 100644 test/files/neg/bug677.check create mode 100755 test/files/neg/bug677.scala create mode 100644 test/files/neg/bug681.check create mode 100755 test/files/neg/bug681.scala create mode 100644 test/files/neg/bug692.check create mode 100755 test/files/neg/bug692.scala create mode 100644 test/files/neg/bug693.check create mode 100755 test/files/neg/bug693.scala create mode 100644 test/files/neg/bug696.check create mode 100644 test/files/neg/bug696.scala create mode 100644 test/files/neg/bug711.check create mode 100644 test/files/neg/bug711.scala (limited to 'test/files/neg') 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 +} -- cgit v1.2.3