aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-07-31 13:41:25 +0200
committerMartin Odersky <odersky@gmail.com>2016-07-31 13:41:25 +0200
commit2eb0fed6e029ce8b93f5538cc3573985eb3a0832 (patch)
treef2a4f14ff6428ce37e92d9e396293a1464f61eae /src
parent54895cdeea0f5bafb404f1cec5a90487d22e1744 (diff)
downloaddotty-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.scala2
-rw-r--r--src/dotty/tools/dotc/typer/Namer.scala4
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 {