aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-08-24 17:34:47 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-08-24 17:39:46 +0200
commit56b1951b5763a3a77230f8b405e17b2e3ed2c988 (patch)
tree93224b1df725d041769aa163cc1874dcf74dcd9f /src
parenta33eece6c72d2c9b36b0d279fe0e3718b7dda817 (diff)
downloaddotty-56b1951b5763a3a77230f8b405e17b2e3ed2c988.tar.gz
dotty-56b1951b5763a3a77230f8b405e17b2e3ed2c988.tar.bz2
dotty-56b1951b5763a3a77230f8b405e17b2e3ed2c988.zip
Add comment to Compiler.scala about behaviour of Constructors
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/Compiler.scala2
-rw-r--r--src/dotty/tools/dotc/transform/Constructors.scala2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/Compiler.scala b/src/dotty/tools/dotc/Compiler.scala
index f753b7614..e4b328a82 100644
--- a/src/dotty/tools/dotc/Compiler.scala
+++ b/src/dotty/tools/dotc/Compiler.scala
@@ -71,7 +71,7 @@ class Compiler {
new LinkScala2ImplClasses,
new NonLocalReturns,
new CapturedVars, // capturedVars has a transformUnit: no phases should introduce local mutable vars here
- new Constructors,
+ new Constructors, // constructors changes decls in transformTemplate, no InfoTransformers should be added after it
new FunctionalInterfaces,
new GetClass), // getClass transformation should be applied to specialized methods
List(new LambdaLift, // in this mini-phase block scopes are incorrect. No phases that rely on scopes should be here
diff --git a/src/dotty/tools/dotc/transform/Constructors.scala b/src/dotty/tools/dotc/transform/Constructors.scala
index 3c7a94a7d..7ba2ccf4d 100644
--- a/src/dotty/tools/dotc/transform/Constructors.scala
+++ b/src/dotty/tools/dotc/transform/Constructors.scala
@@ -253,6 +253,8 @@ class Constructors extends MiniPhaseTransform with SymTransformer { thisTransfor
cls.copy(
info = clsInfo.derivedClassInfo(
decls = clsInfo.decls.filteredScope(!dropped.contains(_))))
+
+ // TODO: this happens to work only because Constructors is the last phase in group
}
val (superCalls, followConstrStats) = constrStats.toList match {