summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-01-16 12:29:16 +0100
committerJason Zaugg <jzaugg@gmail.com>2013-01-16 12:29:16 +0100
commitdecc9a9f0399d7613017db747732d251fe129236 (patch)
tree7d2b74f280a9f84f9b5605b80ae32f3e9ecba4b2
parentef332d2a265ab86a6ec415be61b7896a83068bca (diff)
downloadscala-decc9a9f0399d7613017db747732d251fe129236.tar.gz
scala-decc9a9f0399d7613017db747732d251fe129236.tar.bz2
scala-decc9a9f0399d7613017db747732d251fe129236.zip
SI-6979 Small optimization in lub
If a member of `lubBase` is final, it cannot be refined in the types we're lubbing.
-rw-r--r--src/reflect/scala/reflect/internal/Types.scala1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/reflect/scala/reflect/internal/Types.scala b/src/reflect/scala/reflect/internal/Types.scala
index 9d0d38913c..1ef983c1c9 100644
--- a/src/reflect/scala/reflect/internal/Types.scala
+++ b/src/reflect/scala/reflect/internal/Types.scala
@@ -6437,6 +6437,7 @@ trait Types extends api.Types { self: SymbolTable =>
|| sym.isConstructor
|| !sym.isPublic
|| isGetClass(sym)
+ || sym.isFinal
|| narrowts.exists(t => !refines(t, sym))
)
def lubsym(proto: Symbol): Symbol = {