aboutsummaryrefslogtreecommitdiff
path: root/tests/untried/pos/t807.scala
diff options
context:
space:
mode:
authorSamuel Gruetter <samuel.gruetter@epfl.ch>2014-03-12 22:44:33 +0100
committerSamuel Gruetter <samuel.gruetter@epfl.ch>2014-03-12 22:44:33 +0100
commit9ef5f6817688f814a3450126aa7383b0928e80a0 (patch)
tree5727a2f7f7fd665cefdb312af2785c692f04377c /tests/untried/pos/t807.scala
parent194be919664447631ba55446eb4874979c908d27 (diff)
downloaddotty-9ef5f6817688f814a3450126aa7383b0928e80a0.tar.gz
dotty-9ef5f6817688f814a3450126aa7383b0928e80a0.tar.bz2
dotty-9ef5f6817688f814a3450126aa7383b0928e80a0.zip
add tests from scala/test/files/{pos,neg}
with explicit Unit return type
Diffstat (limited to 'tests/untried/pos/t807.scala')
-rw-r--r--tests/untried/pos/t807.scala45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/untried/pos/t807.scala b/tests/untried/pos/t807.scala
new file mode 100644
index 000000000..0eeb92ea2
--- /dev/null
+++ b/tests/untried/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;
+ }
+ }
+}
+