diff options
-rw-r--r-- | src/dotty/tools/dotc/ast/TreeInfo.scala | 5 | ||||
-rw-r--r-- | src/dotty/tools/dotc/ast/Trees.scala | 2 | ||||
-rw-r--r-- | test/dotc/tests.scala | 8 |
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 |