diff options
author | Martin Odersky <odersky@gmail.com> | 2016-07-31 13:41:25 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-07-31 13:41:25 +0200 |
commit | 2eb0fed6e029ce8b93f5538cc3573985eb3a0832 (patch) | |
tree | f2a4f14ff6428ce37e92d9e396293a1464f61eae /src | |
parent | 54895cdeea0f5bafb404f1cec5a90487d22e1744 (diff) | |
download | dotty-2eb0fed6e029ce8b93f5538cc3573985eb3a0832.tar.gz dotty-2eb0fed6e029ce8b93f5538cc3573985eb3a0832.tar.bz2 dotty-2eb0fed6e029ce8b93f5538cc3573985eb3a0832.zip |
Fix #1285: Mutable vars are not to be considered constant
Diffstat (limited to 'src')
-rw-r--r-- | src/dotty/tools/dotc/core/Flags.scala | 2 | ||||
-rw-r--r-- | src/dotty/tools/dotc/typer/Namer.scala | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/Flags.scala b/src/dotty/tools/dotc/core/Flags.scala index bdd6bbdcf..0cdae6b98 100644 --- a/src/dotty/tools/dotc/core/Flags.scala +++ b/src/dotty/tools/dotc/core/Flags.scala @@ -448,7 +448,7 @@ object Flags { /** Flags guaranteed to be set upon symbol creation */ final val FromStartFlags = AccessFlags | Module | Package | Deferred | Final | MethodOrHKCommon | Param | ParamAccessor | Scala2ExistentialCommon | - InSuperCall | Touched | JavaStatic | CovariantOrOuter | ContravariantOrLabel | ExpandedName | AccessorOrSealed | + Mutable.toCommonFlags | InSuperCall | Touched | JavaStatic | CovariantOrOuter | ContravariantOrLabel | ExpandedName | AccessorOrSealed | CaseAccessorOrBaseTypeArg | Fresh | Frozen | Erroneous | ImplicitCommon | Permanent | Synthetic | LazyOrTrait | SuperAccessorOrScala2x | SelfNameOrImplClass diff --git a/src/dotty/tools/dotc/typer/Namer.scala b/src/dotty/tools/dotc/typer/Namer.scala index d1074364c..11f167746 100644 --- a/src/dotty/tools/dotc/typer/Namer.scala +++ b/src/dotty/tools/dotc/typer/Namer.scala @@ -830,8 +830,8 @@ class Namer { typer: Typer => // println(s"final inherited for $sym: ${inherited.toString}") !!! // println(s"owner = ${sym.owner}, decls = ${sym.owner.info.decls.show}") - def isInline = sym.is(Final, butNot = Method) - + def isInline = sym.is(Final, butNot = Method | Mutable) + // Widen rhs type and approximate `|' but keep ConstantTypes if // definition is inline (i.e. final in Scala2). def widenRhs(tp: Type): Type = tp.widenTermRefExpr match { |