aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-08-11 10:30:06 +0200
committerMartin Odersky <odersky@gmail.com>2014-08-11 10:30:29 +0200
commitb89c4afca19cb77e17c059e75982c537094f1ec8 (patch)
treec8dfa89c57ff8c32937659559d35fe08e1ee3234 /src
parentd388e948c0e747362256bf8ab034385a0b3f0f91 (diff)
downloaddotty-b89c4afca19cb77e17c059e75982c537094f1ec8.tar.gz
dotty-b89c4afca19cb77e17c059e75982c537094f1ec8.tar.bz2
dotty-b89c4afca19cb77e17c059e75982c537094f1ec8.zip
Add CaseAccessor flag for case accessors
Was missing before.
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/ast/Desugar.scala3
-rw-r--r--src/dotty/tools/dotc/core/Flags.scala2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/ast/Desugar.scala b/src/dotty/tools/dotc/ast/Desugar.scala
index 671fbef51..8ead43d78 100644
--- a/src/dotty/tools/dotc/ast/Desugar.scala
+++ b/src/dotty/tools/dotc/ast/Desugar.scala
@@ -388,8 +388,9 @@ object desugar {
val tparamAccessors = derivedTparams map { tdef =>
cpy.TypeDef(tdef, originalTparams.next.mods, tdef.name, tdef.rhs, tdef.tparams)
}
+ val caseAccessor = if (mods is Case) CaseAccessor else EmptyFlags
val vparamAccessors = derivedVparamss.flatten map { vdef =>
- cpy.ValDef(vdef, originalVparams.next.mods, vdef.name, vdef.tpt, vdef.rhs)
+ cpy.ValDef(vdef, originalVparams.next.mods | caseAccessor, vdef.name, vdef.tpt, vdef.rhs)
}
cpy.TypeDef(cdef, mods, name,
cpy.Template(impl, constr, parents1, self1,
diff --git a/src/dotty/tools/dotc/core/Flags.scala b/src/dotty/tools/dotc/core/Flags.scala
index 5931347b3..20427516d 100644
--- a/src/dotty/tools/dotc/core/Flags.scala
+++ b/src/dotty/tools/dotc/core/Flags.scala
@@ -304,7 +304,7 @@ object Flags {
/** Info can be refined during GADT pattern match */
final val GADTFlexType = typeFlag(25, "<gadt-flex-type>")
- /** A case parameter (or its accessor, or a GADT skolem) */
+ /** A case parameter accessor */
final val CaseAccessor = termFlag(26, "<caseaccessor>")
/** An type parameter which is an alias for some other (non-visible) type parameter */