summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-01-05 12:27:47 -0800
committerPaul Phillips <paulp@improving.org>2012-01-05 14:18:39 -0800
commitbf05808e4e9d9aaaa3f08673ce8fc2e521861764 (patch)
tree5e8834d0a63d0b05637e2999ec83a77939fa35eb /src
parentdce3fa63db2f0b7e0907eadce08381244220c376 (diff)
downloadscala-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.scala3
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/RefChecks.scala2
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