diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-09-29 17:07:33 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-10-11 06:39:09 +0200 |
commit | 5f87089d1fb98facfdfddd01fb033af5c33ca673 (patch) | |
tree | 5cb0aa0a21d28d9b419c55be9e949cc1da62da43 /src | |
parent | cb18aa3a4ff7eea8626153e27d7266f47851f80c (diff) | |
download | dotty-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.scala | 2 | ||||
-rw-r--r-- | src/dotty/tools/dotc/transform/PatternMatcher.scala | 3 |
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 |