Treat extension receiver as noinline parameter

#KT-9574 Fixed
This commit is contained in:
Denis Zharkov
2016-01-28 19:03:11 +03:00
parent 2cd88b8cbc
commit 505dc61611
20 changed files with 66 additions and 53 deletions
@@ -63,14 +63,6 @@ class InlineChecker implements CallChecker {
inlinableParameters.add(param);
}
}
//add extension receiver as inlinable
ReceiverParameterDescriptor receiverParameter = descriptor.getExtensionReceiverParameter();
if (receiverParameter != null) {
if (isInlinableParameter(receiverParameter)) {
inlinableParameters.add(receiverParameter);
}
}
}
@Override
@@ -117,12 +117,6 @@ public class InlineAnalyzerExtension implements FunctionAnalyzerExtension.Analyz
for (ValueParameterDescriptor parameter : parameters) {
hasInlinable |= checkInlinableParameter(parameter, function.getValueParameters().get(index++), functionDescriptor, trace);
}
ReceiverParameterDescriptor receiverParameter = functionDescriptor.getExtensionReceiverParameter();
if (receiverParameter != null) {
KtTypeReference receiver = function.getReceiverTypeReference();
assert receiver != null : "Descriptor has a receiver but psi doesn't " + function.getText();
hasInlinable |= checkInlinableParameter(receiverParameter, receiver, functionDescriptor, trace);
}
hasInlinable |= InlineUtil.containsReifiedTypeParameters(functionDescriptor);