summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2010-08-23 08:52:22 +0000
committerIulian Dragos <jaguarul@gmail.com>2010-08-23 08:52:22 +0000
commit95e096797a4112e720d31cfbb7d59684c4f04c14 (patch)
treec8091c8387fefddd94723b109631fbf962076cf4 /src
parent32de7fe412dddd7be5f0580af0f23e8996b56db7 (diff)
downloadscala-95e096797a4112e720d31cfbb7d59684c4f04c14.tar.gz
scala-95e096797a4112e720d31cfbb7d59684c4f04c14.tar.bz2
scala-95e096797a4112e720d31cfbb7d59684c4f04c14.zip
Finally look at the right place for inherited m...
Finally look at the right place for inherited methods that are effectively final.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/backend/opt/Inliners.scala7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala b/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala
index 4fb8067840..9650dff7c3 100644
--- a/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala
+++ b/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala
@@ -139,9 +139,9 @@ abstract class Inliners extends SubComponent {
}
if (shouldLoadImplFor(concreteMethod, receiver))
- icodes.icode(receiver, true)
+ icodes.icode(concreteMethod.enclClass, true)
- def isAvailable = icodes available receiver
+ def isAvailable = icodes available concreteMethod.enclClass
def isCandidate = isClosureClass(receiver) || concreteMethod.isEffectivelyFinal || receiver.isFinal
def isApply = concreteMethod.name == nme.apply
def isCountable = !(isClosureClass(receiver)
@@ -595,7 +595,8 @@ abstract class Inliners extends SubComponent {
false
}
-
+ if (!canAccess(accessNeeded))
+ println("access needed and failed: " + accessNeeded)
canAccess(accessNeeded) && !isIllegalStack
}