summaryrefslogtreecommitdiff
path: root/src/reflect
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@typesafe.com>2015-12-18 08:51:30 +0100
committerLukas Rytz <lukas.rytz@typesafe.com>2015-12-18 08:51:30 +0100
commit2d3625d9803912edc1d4a69fa4da0961719d5001 (patch)
treef4e4c98ce8e588a541e0bc30b260717061f8abee /src/reflect
parentd92b6592c7610bf56adfbc5315f82ba1e806e91a (diff)
parenteeeb92c3d59de611dec1782a969b86171454de40 (diff)
downloadscala-2d3625d9803912edc1d4a69fa4da0961719d5001.tar.gz
scala-2d3625d9803912edc1d4a69fa4da0961719d5001.tar.bz2
scala-2d3625d9803912edc1d4a69fa4da0961719d5001.zip
Merge pull request #4265 from retronym/ticket/9110
SI-9110 Pattern `O.C` must check `$outer eq O` for a top level O
Diffstat (limited to 'src/reflect')
-rw-r--r--src/reflect/scala/reflect/internal/Types.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/Types.scala b/src/reflect/scala/reflect/internal/Types.scala
index b282026c36..5b23bbf144 100644
--- a/src/reflect/scala/reflect/internal/Types.scala
+++ b/src/reflect/scala/reflect/internal/Types.scala
@@ -3940,7 +3940,8 @@ trait Types
def maybeCreateDummyClone(pre: Type, sym: Symbol): Type = pre match {
case SingleType(pre1, sym1) =>
if (sym1.isModule && sym1.isStatic) {
- NoType
+ if (sym.owner == sym1 || sym.isJavaDefined || sym.owner.sourceModule.isStaticModule) NoType
+ else pre
} else if (sym1.isModule && sym.owner == sym1.moduleClass) {
val pre2 = maybeCreateDummyClone(pre1, sym1)
if (pre2 eq NoType) pre2