From decc9a9f0399d7613017db747732d251fe129236 Mon Sep 17 00:00:00 2001 From: Jason Zaugg Date: Wed, 16 Jan 2013 12:29:16 +0100 Subject: SI-6979 Small optimization in lub If a member of `lubBase` is final, it cannot be refined in the types we're lubbing. --- src/reflect/scala/reflect/internal/Types.scala | 1 + 1 file changed, 1 insertion(+) 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 = { -- cgit v1.2.3