diff options
author | Paul Phillips <paulp@improving.org> | 2012-01-05 12:27:47 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-01-05 14:18:39 -0800 |
commit | bf05808e4e9d9aaaa3f08673ce8fc2e521861764 (patch) | |
tree | 5e8834d0a63d0b05637e2999ec83a77939fa35eb /src | |
parent | dce3fa63db2f0b7e0907eadce08381244220c376 (diff) | |
download | scala-bf05808e4e9d9aaaa3f08673ce8fc2e521861764.tar.gz scala-bf05808e4e9d9aaaa3f08673ce8fc2e521861764.tar.bz2 scala-bf05808e4e9d9aaaa3f08673ce8fc2e521861764.zip |
Optimization in refchecks.
Making the inherited java vararg check cheaper.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/reflect/internal/Types.scala | 3 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/RefChecks.scala | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/compiler/scala/reflect/internal/Types.scala b/src/compiler/scala/reflect/internal/Types.scala index 844d6b79e3..998eae0cc1 100644 --- a/src/compiler/scala/reflect/internal/Types.scala +++ b/src/compiler/scala/reflect/internal/Types.scala @@ -499,6 +499,9 @@ trait Types extends api.Types { self: SymbolTable => * Alternatives of overloaded symbol appear in the order they are declared. */ def decl(name: Name): Symbol = findDecl(name, 0) + + /** A list of all non-private members defined or declared in this type. */ + def nonPrivateDecls: List[Symbol] = decls filter (x => !x.isPrivate) toList /** The non-private defined or declared members with name `name` in this type; * an OverloadedSymbol if several exist, NoSymbol if none exist. diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala index ace38bb4cb..f9689e4b14 100644 --- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala +++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala @@ -154,7 +154,7 @@ abstract class RefChecks extends InfoTransform with reflect.internal.transform.R def isJavaVarargsAncestor(clazz: Symbol) = ( clazz.isClass && clazz.isJavaDefined - && (clazz.info.nonPrivateMembers exists isJavaVarArgsMethod) + && (clazz.info.nonPrivateDecls exists isJavaVarArgsMethod) ) /** Add bridges for vararg methods that extend Java vararg methods |