Fix value parameter indeices for function literals with receivers
This commit is contained in:
+3
-2
@@ -76,8 +76,9 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorImpl i
|
|||||||
for (int i = 0; i < unsubstitutedValueParameters.size(); ++i) {
|
for (int i = 0; i < unsubstitutedValueParameters.size(); ++i) {
|
||||||
// TODO fill me
|
// TODO fill me
|
||||||
int firstValueParameterOffset = 0; // receiver.exists() ? 1 : 0;
|
int firstValueParameterOffset = 0; // receiver.exists() ? 1 : 0;
|
||||||
if (unsubstitutedValueParameters.get(i).getIndex() != i + firstValueParameterOffset) {
|
ValueParameterDescriptor valueParameterDescriptor = unsubstitutedValueParameters.get(i);
|
||||||
//throw new IllegalStateException();
|
if (valueParameterDescriptor.getIndex() != i + firstValueParameterOffset) {
|
||||||
|
throw new IllegalStateException(valueParameterDescriptor + "index is " + valueParameterDescriptor.getIndex() + " but position is " + i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -395,7 +395,7 @@ public class JetStandardClasses {
|
|||||||
List<ValueParameterDescriptor> valueParameters = Lists.newArrayList();
|
List<ValueParameterDescriptor> valueParameters = Lists.newArrayList();
|
||||||
for (int i = first; i <= last; i++) {
|
for (int i = first; i <= last; i++) {
|
||||||
JetType parameterType = arguments.get(i).getType();
|
JetType parameterType = arguments.get(i).getType();
|
||||||
ValueParameterDescriptorImpl valueParameterDescriptor = new ValueParameterDescriptorImpl(functionDescriptor, i, Collections.<AnnotationDescriptor>emptyList(), "p" + i, false, parameterType, false, null);
|
ValueParameterDescriptorImpl valueParameterDescriptor = new ValueParameterDescriptorImpl(functionDescriptor, i - first, Collections.<AnnotationDescriptor>emptyList(), "p" + i, false, parameterType, false, null);
|
||||||
valueParameters.add(valueParameterDescriptor);
|
valueParameters.add(valueParameterDescriptor);
|
||||||
}
|
}
|
||||||
return valueParameters;
|
return valueParameters;
|
||||||
|
|||||||
Reference in New Issue
Block a user