aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/LazyVals.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-04-27 18:57:14 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-04-30 14:26:07 +0200
commitf8f908f6580d123d402f9850fdbace31b361bdb3 (patch)
tree803ac9e83e54ceabe4726b3161c198619d545b88 /src/dotty/tools/dotc/transform/LazyVals.scala
parent7517d992f3fe10c3c4fe00ad89abfe4f1576978b (diff)
downloaddotty-f8f908f6580d123d402f9850fdbace31b361bdb3.tar.gz
dotty-f8f908f6580d123d402f9850fdbace31b361bdb3.tar.bz2
dotty-f8f908f6580d123d402f9850fdbace31b361bdb3.zip
LazyVals: Emitting switch instruction requires default case.
Diffstat (limited to 'src/dotty/tools/dotc/transform/LazyVals.scala')
-rw-r--r--src/dotty/tools/dotc/transform/LazyVals.scala4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/transform/LazyVals.scala b/src/dotty/tools/dotc/transform/LazyVals.scala
index b6a12940a..5b85c3d50 100644
--- a/src/dotty/tools/dotc/transform/LazyVals.scala
+++ b/src/dotty/tools/dotc/transform/LazyVals.scala
@@ -274,8 +274,10 @@ class LazyVals extends MiniPhaseTransform with IdentityDenotTransformer {
CaseDef(computedState, EmptyTree, body)
}
+ val default = CaseDef(untpd.Ident(nme.WILDCARD).withType(defn.LongType), EmptyTree, Literal(Constant(())))
+
val cases = Match(stateMask.appliedTo(ref(flagSymbol), Literal(Constant(ord))),
- List(compute, waitFirst, waitSecond, computed)) //todo: annotate with @switch
+ List(compute, waitFirst, waitSecond, computed, default)) //todo: annotate with @switch
val whileBody = Block(List(ref(flagSymbol).becomes(getFlag.appliedTo(thiz, offset))), cases)
val cycle = untpd.WhileDo(whileCond, whileBody).withTypeUnchecked(defn.UnitType)