From 5131de0a0b08f893f6558ceb7dd348cb87ba0ff4 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Fri, 17 Nov 2006 18:01:11 +0000 Subject: fixed syntax error in Infer --- test/files/pos/bug807.scala | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 test/files/pos/bug807.scala (limited to 'test/files/pos/bug807.scala') 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; + } + } +} + -- cgit v1.2.3