aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/t807.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-08-22 16:18:49 +0200
committerMartin Odersky <odersky@gmail.com>2016-08-26 11:13:16 +0200
commitd84805299a42cb8d2c756aff5a117af24dbeaaf4 (patch)
tree924136f2161289e25bd1ecad388e88b13be248fc /tests/pos/t807.scala
parent8f5bd779903d5c9f29bc3750391ffacbf3cf869e (diff)
downloaddotty-d84805299a42cb8d2c756aff5a117af24dbeaaf4.tar.gz
dotty-d84805299a42cb8d2c756aff5a117af24dbeaaf4.tar.bz2
dotty-d84805299a42cb8d2c756aff5a117af24dbeaaf4.zip
Recategorize tests
Passing tests from pending/pos go in pos. Some others go in diabled/not-testable. These are tests that require a compilation order which we cannot yet do with our unit testing framework. Compiling them alltogether (as is now doen in junit) does not work either for them because they contain a duplicate class.
Diffstat (limited to 'tests/pos/t807.scala')
-rw-r--r--tests/pos/t807.scala45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/pos/t807.scala b/tests/pos/t807.scala
new file mode 100644
index 000000000..0eeb92ea2
--- /dev/null
+++ b/tests/pos/t807.scala
@@ -0,0 +1,45 @@
+trait Matcher {
+ trait Link {
+ type Self <: Link;
+ type Match <: Link { type Match = Link.this.Self; }
+ }
+ trait HasLinks {
+ def link(b : Boolean) : Link = null;
+ }
+
+}
+trait BraceMatcher extends Matcher {
+ trait BracePair {
+ trait BraceLink extends Link;
+ trait OpenLink extends BraceLink {
+ type Self = OpenLink;
+ type Match = CloseLink;
+ }
+ trait CloseLink extends BraceLink {
+ type Self = CloseLink;
+ type Match = OpenLink;
+ }
+ }
+}
+trait IfElseMatcher extends BraceMatcher {
+ trait IfElseLink extends Link;
+ trait IfLink extends IfElseLink {
+ type Self = IfLink;
+ type Match = ElseImpl;
+ }
+ trait ElseImpl extends IfElseLink with HasLinks {
+ type Self = ElseImpl;
+ type Match = IfLink;
+ override def link(b : Boolean) = this;
+ }
+ val parenPair : BracePair;
+ trait IfWithParenImpl extends HasLinks {
+ object ifLink extends IfLink;
+ object openParen extends parenPair.OpenLink;
+ override def link(b : Boolean): Link = b match {
+ case true => ifLink;
+ case false => openParen;
+ }
+ }
+}
+