summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan@lightbend.com>2016-06-03 10:45:27 -0700
committerAdriaan Moors <adriaan@lightbend.com>2016-08-11 10:59:15 -0700
commit6858134fb01315c13df05fbef1b310443f3dac95 (patch)
tree597592a433070f2c69fd1c1b2c2ae71566e4344e /src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala
parente26b4f49d80caa8f71a1986f604cca7f4714e3c3 (diff)
downloadscala-6858134fb01315c13df05fbef1b310443f3dac95.tar.gz
scala-6858134fb01315c13df05fbef1b310443f3dac95.tar.bz2
scala-6858134fb01315c13df05fbef1b310443f3dac95.zip
Address lrytz's review feedback
Remove obsolete hack for BeanSetter's RHS Use currentOwner.isClass instead of exprOwner.isLocalDummy Refactor: shortest branches first in if/else Fix comments from when the prototype ran before refchecks Also, store `isScala212` as a `val` in `Namer` since the `def` on `settings` parses the version each time...
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala b/src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala
index 408b457d5b..0f79bb60ed 100644
--- a/src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala
@@ -536,6 +536,8 @@ trait MethodSynthesis {
super.validate()
}
}
+
+ // This trait is mixed into BooleanBeanGetter and BeanGetter by beanAccessorsFromNames, but not by beanAccessors
trait NoSymbolBeanGetter extends AnyBeanGetter {
// Derives a tree without attempting to use the original tree's symbol.
override def derivedTree = {
@@ -547,10 +549,15 @@ trait MethodSynthesis {
}
override def createAndEnterSymbol(): MethodSymbol = enterSyntheticSym(derivedTree).asInstanceOf[MethodSymbol]
}
- case class BooleanBeanGetter(tree: ValDef) extends BeanAccessor("is") with AnyBeanGetter { }
- case class BeanGetter(tree: ValDef) extends BeanAccessor("get") with AnyBeanGetter { }
+
+ // NoSymbolBeanGetter synthesizes the getter's RHS (which defers to the regular setter)
+ // (not sure why, but there is one use site of the BeanGetters where NoSymbolBeanGetter is not mixed in)
+ // TODO: clean this up...
+ case class BooleanBeanGetter(tree: ValDef) extends BeanAccessor("is") with AnyBeanGetter
+ case class BeanGetter(tree: ValDef) extends BeanAccessor("get") with AnyBeanGetter
+
+ // the bean setter's RHS delegates to the setter
case class BeanSetter(tree: ValDef) extends BeanAccessor("set") with DerivedSetter {
- // TODO: document, motivate
override protected def setterRhs = Apply(Ident(tree.name.setterName), List(Ident(setterParam)))
}