summaryrefslogtreecommitdiff
path: root/test/files/resident/bug831/NewScalaParserXXX.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/resident/bug831/NewScalaParserXXX.scala')
-rw-r--r--test/files/resident/bug831/NewScalaParserXXX.scala43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/files/resident/bug831/NewScalaParserXXX.scala b/test/files/resident/bug831/NewScalaParserXXX.scala
new file mode 100644
index 0000000000..88c81637f0
--- /dev/null
+++ b/test/files/resident/bug831/NewScalaParserXXX.scala
@@ -0,0 +1,43 @@
+package bug831;
+
+trait ScalaNodeScannerXXX {
+ type Node <: NodeImpl;
+ trait NodeImpl { def self : Node; }
+ type Unfixed <: Node with UnfixedImpl;
+ trait UnfixedImpl extends NodeImpl { def self : Unfixed; }
+}
+//def f = { Console.println("hello"); 42; }
+//for (val ns <-n; val i <- 0.until(ns)) yield f;
+
+
+trait NewScalaScannerXXX extends ScalaNodeScannerXXX {
+ type Unfixed <: Node with UnfixedImpl;
+ trait UnfixedImpl extends super.UnfixedImpl with NodeImpl;
+ type Statement <: Unfixed with StatementImpl;
+ trait StatementImpl extends UnfixedImpl { def self : Statement; }
+ type NewLine <: Statement with NewLineImpl;
+ trait NewLineImpl extends StatementImpl {
+ def self : NewLine;
+ def isActive : Boolean = true;
+ }
+ object ArrowMode extends Enumeration { val Def, Case, Expr = Value }
+}
+
+trait ScalaPrecedenceXXX extends NewScalaScannerXXX {
+ type NewLine <: Statement with NewLineImpl;
+ trait NewLineImpl extends super.NewLineImpl with StatementImpl {
+ def self : NewLine;
+ override def isActive = super[NewLineImpl].isActive;
+ }
+}
+trait NewScalaParserXXX extends NewScalaScannerXXX with ScalaPrecedenceXXX {
+ type NewLine <: Statement with NewLineImpl;
+ trait MyNewLine extends super[NewScalaScannerXXX].NewLineImpl;
+ trait NewLineImpl extends MyNewLine with
+ super[ScalaPrecedenceXXX].NewLineImpl with
+ StatementImpl {
+ def self : NewLine;
+ override def isActive = super[MyNewLine].isActive;
+ }
+}
+