summaryrefslogtreecommitdiff
path: root/test/files/pos/bug807.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-11-17 18:01:11 +0000
committerMartin Odersky <odersky@gmail.com>2006-11-17 18:01:11 +0000
commit5131de0a0b08f893f6558ceb7dd348cb87ba0ff4 (patch)
treec796ac53bbf323913d15d1ff93d3176bf0a75fa8 /test/files/pos/bug807.scala
parentf6183ef4b030030606f46fe2463d325e39ae6174 (diff)
downloadscala-5131de0a0b08f893f6558ceb7dd348cb87ba0ff4.tar.gz
scala-5131de0a0b08f893f6558ceb7dd348cb87ba0ff4.tar.bz2
scala-5131de0a0b08f893f6558ceb7dd348cb87ba0ff4.zip
fixed syntax error in Infer
Diffstat (limited to 'test/files/pos/bug807.scala')
-rw-r--r--test/files/pos/bug807.scala45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/files/pos/bug807.scala b/test/files/pos/bug807.scala
new file mode 100644
index 0000000000..0eeb92ea24
--- /dev/null
+++ b/test/files/pos/bug807.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;
+ }
+ }
+}
+