aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotty/tools/dotc/ast/TreeInfo.scala5
-rw-r--r--src/dotty/tools/dotc/ast/Trees.scala2
-rw-r--r--test/dotc/tests.scala8
3 files changed, 6 insertions, 9 deletions
diff --git a/src/dotty/tools/dotc/ast/TreeInfo.scala b/src/dotty/tools/dotc/ast/TreeInfo.scala
index e1715ae26..8957d8813 100644
--- a/src/dotty/tools/dotc/ast/TreeInfo.scala
+++ b/src/dotty/tools/dotc/ast/TreeInfo.scala
@@ -7,7 +7,10 @@ import Flags._, Trees._, Types._, Contexts._
import Names._, StdNames._, NameOps._, Decorators._, Symbols._
import util.HashSet
-trait TreeInfo[T >: Untyped] { self: Trees.Instance[T] =>
+trait TreeInfo[T >: Untyped <: Type] { self: Trees.Instance[T] =>
+
+ // Note: the <: Type constraint looks necessary (and is needed to make the file compile in dotc).
+ // But Scalac accepts the program happily without it. Need to find out why.
def unsplice[T >: Untyped](tree: Trees.Tree[T]): Trees.Tree[T] = tree.asInstanceOf[untpd.Tree] match {
case untpd.TypedSplice(tree1) => tree1.asInstanceOf[Trees.Tree[T]]
diff --git a/src/dotty/tools/dotc/ast/Trees.scala b/src/dotty/tools/dotc/ast/Trees.scala
index 12d71e32f..13f7d6f18 100644
--- a/src/dotty/tools/dotc/ast/Trees.scala
+++ b/src/dotty/tools/dotc/ast/Trees.scala
@@ -801,7 +801,7 @@ object Trees {
// ----- Generic Tree Instances, inherited from `tpt` and `untpd`.
- abstract class Instance[T >: Untyped] extends DotClass { inst =>
+ abstract class Instance[T >: Untyped <: Type] extends DotClass { inst =>
type Modifiers = Trees.Modifiers[T]
type Tree = Trees.Tree[T]
diff --git a/test/dotc/tests.scala b/test/dotc/tests.scala
index 6242adc65..61e9a170c 100644
--- a/test/dotc/tests.scala
+++ b/test/dotc/tests.scala
@@ -39,11 +39,5 @@ class tests extends CompilerTest {
@Test def neg_typers() = compileFile(negDir, "typers", xerrors = 10)
@Test def dotc = compileDir(dotcDir + "tools/dotc")
- //@Test def dotc_ast = compileDir(dotcDir + "tools/dotc/ast")
- @Test def dotc_checktrees = compileFile(dotcDir + "tools/dotc/ast/", "CheckTrees")
- @Test def dotc_trees = compileFile(dotcDir + "tools/dotc/ast/", "Trees")
- @Test def dotc_untpd = compileFile(dotcDir + "tools/dotc/ast/", "untpd")
- @Test def dotc_tpd = compileFile(dotcDir + "tools/dotc/ast/", "tpd")
- @Test def dotc_desugar = compileFile(dotcDir + "tools/dotc/ast/", "Desugar")
-
+ @Test def dotc_ast = compileDir(dotcDir + "tools/dotc/ast")
} \ No newline at end of file