diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2016-09-15 15:37:31 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-15 15:37:31 +1000 |
commit | de7cddd1905c730685f5ef2b74a6c0c1f30f2dd2 (patch) | |
tree | 2e43ad26ccf1de032f8207f14f2a5a911ccfdac1 | |
parent | be43eb5fba5da844f664cca10783bb869c7b76e7 (diff) | |
parent | a919fd7fa1f3c39dc396e7758240354e6fb0e79b (diff) | |
download | scala-de7cddd1905c730685f5ef2b74a6c0c1f30f2dd2.tar.gz scala-de7cddd1905c730685f5ef2b74a6c0c1f30f2dd2.tar.bz2 scala-de7cddd1905c730685f5ef2b74a6c0c1f30f2dd2.zip |
Merge pull request #5395 from retronym/pr/5394
Avoid omitting constant typed vals in constructors
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/Fields.scala | 2 | ||||
-rw-r--r-- | test/files/pos/shapeless-regression.scala | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/Fields.scala b/src/compiler/scala/tools/nsc/transform/Fields.scala index 8ebfdcc647..894d0a1701 100644 --- a/src/compiler/scala/tools/nsc/transform/Fields.scala +++ b/src/compiler/scala/tools/nsc/transform/Fields.scala @@ -696,7 +696,7 @@ abstract class Fields extends InfoTransform with ast.TreeDSL with TypingTransfor // drop the val for (a) constant (pure & not-stored) and (b) not-stored (but still effectful) fields case ValDef(mods, _, _, rhs) if (rhs ne EmptyTree) && !excludedAccessorOrFieldByFlags(statSym) - && fieldMemoizationIn(statSym, currOwner).constantTyped => + && currOwner.isClass && fieldMemoizationIn(statSym, currOwner).constantTyped => EmptyThicket case ModuleDef(_, _, impl) => diff --git a/test/files/pos/shapeless-regression.scala b/test/files/pos/shapeless-regression.scala new file mode 100644 index 0000000000..f3a1ed1ba0 --- /dev/null +++ b/test/files/pos/shapeless-regression.scala @@ -0,0 +1,16 @@ +class W[T <: AnyRef](val t: T) { + val v: T {} = t +} + +object W { + def apply[T <: AnyRef](t: T) = new W[t.type](t) +} + +object RightAssoc { + def ra_:[T](t: T): Unit = () +} + +object Boom { + W("fooo").v ra_: RightAssoc +} + |