From 514d01c1ce9219a10f37d50a39cfeb420d76e38c Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Wed, 13 Apr 2011 15:07:21 +0000 Subject: Fixes my part of #4283 by inserting another cas... Fixes my part of #4283 by inserting another cast pre-emptively when an IllegalAccess error is possible in an erasure-inserted cast. Review by extempore. --- src/compiler/scala/tools/nsc/typechecker/Contexts.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/compiler/scala/tools/nsc/typechecker/Contexts.scala') diff --git a/src/compiler/scala/tools/nsc/typechecker/Contexts.scala b/src/compiler/scala/tools/nsc/typechecker/Contexts.scala index eb9eb9dbec..7567cf6483 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Contexts.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Contexts.scala @@ -383,7 +383,7 @@ trait Contexts { self: Analyzer => * @param superAccess ... * @return ... */ - def isAccessible(sym: Symbol, pre: Type, superAccess: Boolean): Boolean = { + def isAccessible(sym: Symbol, pre: Type, superAccess: Boolean = false): Boolean = { lastAccessCheckDetails = "" // Console.println("isAccessible(%s, %s, %s)".format(sym, pre, superAccess)) @@ -507,7 +507,7 @@ trait Contexts { self: Analyzer => */ private def isQualifyingImplicit(sym: Symbol, pre: Type, imported: Boolean) = sym.isImplicit && - isAccessible(sym, pre, false) && + isAccessible(sym, pre) && !(imported && { val e = scope.lookupEntry(sym.name) (e ne null) && (e.owner == scope) -- cgit v1.2.3