diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2012-05-09 19:10:37 +0200 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2012-05-11 17:55:21 +0200 |
commit | 82f3e49b37043e9f7661a43fe28c158dec4a3f31 (patch) | |
tree | c0b893ea954cc9ab0e88ff63baf7b9d80d6dab67 /src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
parent | 2422b064e7a52c04dfb2239fc8e7b9ffbab24251 (diff) | |
download | scala-82f3e49b37043e9f7661a43fe28c158dec4a3f31.tar.gz scala-82f3e49b37043e9f7661a43fe28c158dec4a3f31.tar.bz2 scala-82f3e49b37043e9f7661a43fe28c158dec4a3f31.zip |
fixes a problem with an extractor object overloaded by a regular def
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 34e1aaedfd..b5e58efaff 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -958,9 +958,14 @@ trait Typers extends Modes with Adaptations with Taggings { * see test/files/../t5189*.scala */ def adaptConstrPattern(): Tree = { // (5) - val extractor = tree.symbol.filter(sym => reallyExists(unapplyMember(sym.tpe))) + def isExtractor(sym: Symbol) = reallyExists(unapplyMember(sym.tpe)) + val extractor = tree.symbol filter isExtractor if (extractor != NoSymbol) { tree setSymbol extractor + tree.tpe match { + case OverloadedType(pre, alts) => tree.tpe = overloadedType(pre, alts filter isExtractor) + case _ => + } val unapply = unapplyMember(extractor.tpe) val clazz = unapplyParameterType(unapply) |