aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-04-07 22:52:34 +0200
committerMartin Odersky <odersky@gmail.com>2016-04-07 22:52:41 +0200
commit88eb98ffc91f2954eb0ed305d19d46845f35ab33 (patch)
tree07dc45f4327aaf91e72ee50bd6360a86805d8321 /src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala
parent29e5792ad7ea1209f0141000449649e8cb943b65 (diff)
downloaddotty-88eb98ffc91f2954eb0ed305d19d46845f35ab33.tar.gz
dotty-88eb98ffc91f2954eb0ed305d19d46845f35ab33.tar.bz2
dotty-88eb98ffc91f2954eb0ed305d19d46845f35ab33.zip
Fix flags when unpickling setters of parameter accessors
ParamAccessor is not a pickled flag. This is not a problem for normal parameter accessors which are pickled as PARAM fields. But setters of parameter accessors also need to have the flag set (and Deferred reset).
Diffstat (limited to 'src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala')
-rw-r--r--src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala b/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala
index b547862b4..d7f33c75c 100644
--- a/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala
+++ b/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala
@@ -596,6 +596,11 @@ class TreeUnpickler(reader: TastyReader, tastyName: TastyName.Table) {
vparamss.nestedMap(_.symbol), name == nme.CONSTRUCTOR)
val resType = ctx.effectiveResultType(sym, typeParams, tpt.tpe)
sym.info = ctx.methodType(typeParams, valueParamss, resType)
+ if (sym.isSetter && sym.accessedFieldOrGetter.is(ParamAccessor)) {
+ // reconstitute ParamAccessor flag of setters for var parameters, which is not pickled
+ sym.setFlag(ParamAccessor)
+ sym.resetFlag(Deferred)
+ }
DefDef(tparams, vparamss, tpt)
case VALDEF =>
sym.info = readType()