aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/transform/Constructors.scala11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/transform/Constructors.scala b/src/dotty/tools/dotc/transform/Constructors.scala
index 8aae3af5b..fa60ad277 100644
--- a/src/dotty/tools/dotc/transform/Constructors.scala
+++ b/src/dotty/tools/dotc/transform/Constructors.scala
@@ -32,6 +32,17 @@ class Constructors extends MiniPhaseTransform with SymTransformer { thisTransfor
override def phaseName: String = "constructors"
override def runsAfter: Set[Class[_ <: Phase]] = Set(classOf[Erasure])
+
+ /** All initializers should be moved into constructor
+ */
+ override def checkPostCondition(tree: tpd.Tree)(implicit ctx: Context): Unit = {
+ tree match {
+ case t: ValDef if ((t.rhs ne EmptyTree) && !(t.symbol is Flags.Lazy) && t.symbol.owner.isClass) =>
+ assert(false, i"$t initializers should be moved to constructors")
+ case _ =>
+ }
+ }
+
/** Symbols that are owned by either <local dummy> or a class field move into the
* primary constructor.
*/