diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/opt/Inliners.scala | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala b/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala index f79cec532d..74eb450960 100644 --- a/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala +++ b/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala @@ -135,8 +135,15 @@ abstract class Inliners extends SubComponent { warn(i.pos, "Could not inline required method %s because %s.".format(msym.originalName.decode, reason)) } - if (shouldLoadImplFor(concreteMethod, receiver)) + if (shouldLoadImplFor(concreteMethod, receiver)) { + // Until r22824 this line was: + // icodes.icode(concreteMethod.enclClass, true) + // + // Changing it to the below was the proximate cause for SI-3882: + // error: Illegal index: 0 overlaps List((variable par1,LONG)) + // error: Illegal index: 0 overlaps List((variable par1,LONG)) icodes.load(concreteMethod.enclClass) + } def isAvailable = icodes available concreteMethod.enclClass def isCandidate = ( |