diff options
author | Adriaan Moors <adriaan@lightbend.com> | 2016-06-03 10:45:27 -0700 |
---|---|---|
committer | Adriaan Moors <adriaan@lightbend.com> | 2016-08-11 10:59:15 -0700 |
commit | 6858134fb01315c13df05fbef1b310443f3dac95 (patch) | |
tree | 597592a433070f2c69fd1c1b2c2ae71566e4344e /src/compiler/scala/tools/nsc/typechecker/MethodSynthesis.scala | |
parent | e26b4f49d80caa8f71a1986f604cca7f4714e3c3 (diff) | |
download | scala-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.scala | 13 |
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))) } |