diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-04-27 18:57:14 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-04-30 14:26:07 +0200 |
commit | f8f908f6580d123d402f9850fdbace31b361bdb3 (patch) | |
tree | 803ac9e83e54ceabe4726b3161c198619d545b88 /src/dotty/tools/dotc/transform/LazyVals.scala | |
parent | 7517d992f3fe10c3c4fe00ad89abfe4f1576978b (diff) | |
download | dotty-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.scala | 4 |
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) |