aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2014-09-29 17:07:33 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2014-10-11 06:39:09 +0200
commit5f87089d1fb98facfdfddd01fb033af5c33ca673 (patch)
tree5cb0aa0a21d28d9b419c55be9e949cc1da62da43 /src
parentcb18aa3a4ff7eea8626153e27d7266f47851f80c (diff)
downloaddotty-5f87089d1fb98facfdfddd01fb033af5c33ca673.tar.gz
dotty-5f87089d1fb98facfdfddd01fb033af5c33ca673.tar.bz2
dotty-5f87089d1fb98facfdfddd01fb033af5c33ca673.zip
Document why patternMatcher needs to be after tailrec.
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/Compiler.scala2
-rw-r--r--src/dotty/tools/dotc/transform/PatternMatcher.scala3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/Compiler.scala b/src/dotty/tools/dotc/Compiler.scala
index baa810280..64040dbf4 100644
--- a/src/dotty/tools/dotc/Compiler.scala
+++ b/src/dotty/tools/dotc/Compiler.scala
@@ -57,7 +57,7 @@ class Compiler {
new TailRec),
List(new PatternMatcher,
new ExplicitOuter,
- new LazyValTranformContext().transformer, // disabled, awaiting fixes
+ new LazyValTranformContext().transformer,
new Splitter),
List(new ElimByName,
new InterceptedMethods,
diff --git a/src/dotty/tools/dotc/transform/PatternMatcher.scala b/src/dotty/tools/dotc/transform/PatternMatcher.scala
index b6e4d8f56..f56c83f72 100644
--- a/src/dotty/tools/dotc/transform/PatternMatcher.scala
+++ b/src/dotty/tools/dotc/transform/PatternMatcher.scala
@@ -12,6 +12,7 @@ import core.StdNames._
import dotty.tools.dotc.ast.{TreeTypeMap, tpd}
import dotty.tools.dotc.core
import dotty.tools.dotc.core.DenotTransformers.DenotTransformer
+import dotty.tools.dotc.core.Phases.Phase
import dotty.tools.dotc.core.{TypeApplications, Flags}
import dotty.tools.dotc.typer.Applications
import dotty.tools.dotc.util.Positions
@@ -41,6 +42,8 @@ class PatternMatcher extends MiniPhaseTransform with DenotTransformer {thisTrans
override def runsAfter = Set(classOf[ElimRepeated])
+ override def runsAfterGroupsOf = Set(classOf[TailRec]) // tailrec is not capable of reversing the patmat tranformation made for tree
+
override def phaseName = "patternMatcher"
var _id = 0