summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Namers.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan@lightbend.com>2017-04-06 16:08:28 -0700
committerAdriaan Moors <adriaan@lightbend.com>2017-04-06 18:13:19 -0700
commitafad090d66ff565c856a231f6ae42dd70f75b2fc (patch)
treeb50173267766d4e21d8ea5a99ddbb567189fbd7a /src/compiler/scala/tools/nsc/typechecker/Namers.scala
parent79a7015ae1753328203cef5105f44423505446f1 (diff)
downloadscala-afad090d66ff565c856a231f6ae42dd70f75b2fc.tar.gz
scala-afad090d66ff565c856a231f6ae42dd70f75b2fc.tar.bz2
scala-afad090d66ff565c856a231f6ae42dd70f75b2fc.zip
Use CompleterWrapper for implicitFactoryMethodCompleter
mkTypeCompleter is not suitable for wrapping potentially polymorphic completers
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Namers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Namers.scala13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
index 355d7cba30..bce55a3e31 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
@@ -869,13 +869,14 @@ trait Namers extends MethodSynthesis {
import AnnotationInfo.{mkFilter => annotationFilter}
- def implicitFactoryMethodCompleter(tree: DefDef, classSym: Symbol, sigCompleter: LockingTypeCompleter) = mkTypeCompleter(tree) { methSym =>
- sigCompleter.completeImpl(methSym)
+ def implicitFactoryMethodCompleter(tree: DefDef, classSym: Symbol) = new CompleterWrapper(completerOf(tree)) {
+ override def complete(methSym: Symbol): Unit = {
+ super.complete(methSym)
+ val annotations = classSym.initialize.annotations
- val annotations = classSym.initialize.annotations
-
- methSym setAnnotations (annotations filter annotationFilter(MethodTargetClass, defaultRetention = false))
- classSym setAnnotations (annotations filter annotationFilter(ClassTargetClass, defaultRetention = true))
+ methSym setAnnotations (annotations filter annotationFilter(MethodTargetClass, defaultRetention = false))
+ classSym setAnnotations (annotations filter annotationFilter(ClassTargetClass, defaultRetention = true))
+ }
}
// complete the type of a value definition (may have a method symbol, for those valdefs that never receive a field,