diff options
author | Dmitry Petrashko <dark@d-d.me> | 2015-04-20 11:45:44 +0200 |
---|---|---|
committer | Dmitry Petrashko <dark@d-d.me> | 2015-04-20 11:45:44 +0200 |
commit | e3449e9fdbb3801eb07680e4938bc4c3c77ec3a8 (patch) | |
tree | f9bde90b44ea3e1e96ed2009ad248284f92a6951 /tests/neg | |
parent | 187480b55bcf3b37936802daa3a31ffb89bfdcc6 (diff) | |
parent | 35717b7d3029a87a4ec7c9b45d18644b33b560e8 (diff) | |
download | dotty-e3449e9fdbb3801eb07680e4938bc4c3c77ec3a8.tar.gz dotty-e3449e9fdbb3801eb07680e4938bc4c3c77ec3a8.tar.bz2 dotty-e3449e9fdbb3801eb07680e4938bc4c3c77ec3a8.zip |
Merge pull request #474 from dotty-staging/alt/instantiation-checks
Alt/instantiation checks (2)
Diffstat (limited to 'tests/neg')
-rw-r--r-- | tests/neg/instantiateAbstract.scala | 38 | ||||
-rw-r--r-- | tests/neg/selfInheritance.scala | 28 |
2 files changed, 66 insertions, 0 deletions
diff --git a/tests/neg/instantiateAbstract.scala b/tests/neg/instantiateAbstract.scala new file mode 100644 index 000000000..1e119a8b5 --- /dev/null +++ b/tests/neg/instantiateAbstract.scala @@ -0,0 +1,38 @@ +abstract class AA + +trait TT + +class A { self: B => + +} + +@scala.annotation.Annotation class C // error + +class B extends A() { +} + +object Test { + + @scala.annotation.Annotation type T = String // error + @scala.annotation.Annotation val x = 1 // error + @scala.annotation.Annotation def f = 1 //error + + (1: @scala.annotation.Annotation) // error + + + new AA // error + + new TT // error + + new A // error + +// the following are OK in Typer but would be caught later in RefChecks + + new A() {} + + new AA() {} + + object O extends A + + object OO extends AA +} diff --git a/tests/neg/selfInheritance.scala b/tests/neg/selfInheritance.scala new file mode 100644 index 000000000..5f61c5bbb --- /dev/null +++ b/tests/neg/selfInheritance.scala @@ -0,0 +1,28 @@ +trait T { self: B => } + +abstract class A { self: B => + +} + +class B extends A with T { +} + +class C { self: B => + +} + +class D extends A // error + +class E extends T // error + +object Test { + + new B() {} + + new A() {} // error + + object O extends A // error + + object M extends C // error + +} |