Refactoring: Extract createUnresolvedCall() functions
This commit is contained in:
@@ -137,7 +137,7 @@ public class JetControlFlowProcessor {
|
|||||||
if (!generateCall(condition.getOperationReference())) {
|
if (!generateCall(condition.getOperationReference())) {
|
||||||
JetExpression rangeExpression = condition.getRangeExpression();
|
JetExpression rangeExpression = condition.getRangeExpression();
|
||||||
generateInstructions(rangeExpression);
|
generateInstructions(rangeExpression);
|
||||||
createNonSyntheticValue(condition, MagicKind.UNRESOLVED_CALL, rangeExpression);
|
createUnresolvedCall(condition, rangeExpression);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -220,6 +220,26 @@ public class JetControlFlowProcessor {
|
|||||||
return createNonSyntheticValue(to, Arrays.asList(from), kind);
|
return createNonSyntheticValue(to, Arrays.asList(from), kind);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private PseudoValue createUnresolvedCallByValues(@NotNull JetElement to, @Nullable JetElement valueElement, List<PseudoValue> arguments) {
|
||||||
|
return builder.magic(to, valueElement, arguments, defaultTypeMap(arguments), MagicKind.UNRESOLVED_CALL).getOutputValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private PseudoValue createUnresolvedCallByValues(@NotNull JetElement to, List<PseudoValue> arguments) {
|
||||||
|
return createUnresolvedCallByValues(to, to, arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private PseudoValue createUnresolvedCall(@NotNull JetElement to, List<? extends JetElement> from) {
|
||||||
|
return createUnresolvedCallByValues(to, elementsToValues(from));
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private PseudoValue createUnresolvedCall(@NotNull JetElement to, JetElement... from) {
|
||||||
|
return createUnresolvedCall(to, Arrays.asList(from));
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private Map<PseudoValue, TypePredicate> defaultTypeMap(List<PseudoValue> values) {
|
private Map<PseudoValue, TypePredicate> defaultTypeMap(List<PseudoValue> values) {
|
||||||
return PseudocodePackage.expectedTypeFor(AllTypes.INSTANCE$, values);
|
return PseudocodePackage.expectedTypeFor(AllTypes.INSTANCE$, values);
|
||||||
@@ -306,7 +326,7 @@ public class JetControlFlowProcessor {
|
|||||||
public void visitThisExpression(@NotNull JetThisExpression expression) {
|
public void visitThisExpression(@NotNull JetThisExpression expression) {
|
||||||
ResolvedCall<?> resolvedCall = getResolvedCall(expression, trace.getBindingContext());
|
ResolvedCall<?> resolvedCall = getResolvedCall(expression, trace.getBindingContext());
|
||||||
if (resolvedCall == null) {
|
if (resolvedCall == null) {
|
||||||
createNonSyntheticValue(expression, MagicKind.UNRESOLVED_CALL);
|
createUnresolvedCall(expression);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -332,7 +352,7 @@ public class JetControlFlowProcessor {
|
|||||||
generateCall(variableAsFunctionResolvedCall.getVariableCall());
|
generateCall(variableAsFunctionResolvedCall.getVariableCall());
|
||||||
}
|
}
|
||||||
else if (!generateCall(expression) && !(expression.getParent() instanceof JetCallExpression)) {
|
else if (!generateCall(expression) && !(expression.getParent() instanceof JetCallExpression)) {
|
||||||
createNonSyntheticValue(expression, MagicKind.UNRESOLVED_CALL, generateAndGetReceiverIfAny(expression));
|
createUnresolvedCall(expression, generateAndGetReceiverIfAny(expression));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -445,7 +465,7 @@ public class JetControlFlowProcessor {
|
|||||||
generateInstructions(right);
|
generateInstructions(right);
|
||||||
}
|
}
|
||||||
mark(expression);
|
mark(expression);
|
||||||
createNonSyntheticValue(expression, MagicKind.UNRESOLVED_CALL, left, right);
|
createUnresolvedCall(expression, left, right);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void visitAssignment(
|
private void visitAssignment(
|
||||||
@@ -493,7 +513,7 @@ public class JetControlFlowProcessor {
|
|||||||
List<PseudoValue> arguments = KotlinPackage.filterNotNull(
|
List<PseudoValue> arguments = KotlinPackage.filterNotNull(
|
||||||
Arrays.asList(getBoundOrUnreachableValue(lhs), rhsDeferredValue.invoke())
|
Arrays.asList(getBoundOrUnreachableValue(lhs), rhsDeferredValue.invoke())
|
||||||
);
|
);
|
||||||
builder.magic(parentExpression, parentExpression, arguments, defaultTypeMap(arguments), MagicKind.UNRESOLVED_CALL);
|
createUnresolvedCallByValues(parentExpression, arguments);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -582,7 +602,7 @@ public class JetControlFlowProcessor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void generateArrayAccessWithoutCall(JetArrayAccessExpression arrayAccessExpression) {
|
private void generateArrayAccessWithoutCall(JetArrayAccessExpression arrayAccessExpression) {
|
||||||
createNonSyntheticValue(arrayAccessExpression, generateArrayAccessArguments(arrayAccessExpression), MagicKind.UNRESOLVED_CALL);
|
createUnresolvedCall(arrayAccessExpression, generateArrayAccessArguments(arrayAccessExpression));
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<JetExpression> generateArrayAccessArguments(JetArrayAccessExpression arrayAccessExpression) {
|
private List<JetExpression> generateArrayAccessArguments(JetArrayAccessExpression arrayAccessExpression) {
|
||||||
@@ -621,7 +641,7 @@ public class JetControlFlowProcessor {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
generateInstructions(baseExpression);
|
generateInstructions(baseExpression);
|
||||||
rhsValue = createNonSyntheticValue(expression, MagicKind.UNRESOLVED_CALL, baseExpression);
|
rhsValue = createUnresolvedCall(expression, baseExpression);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (incrementOrDecrement) {
|
if (incrementOrDecrement) {
|
||||||
@@ -1152,7 +1172,7 @@ public class JetControlFlowProcessor {
|
|||||||
inputExpressions.add(generateAndGetReceiverIfAny(expression));
|
inputExpressions.add(generateAndGetReceiverIfAny(expression));
|
||||||
|
|
||||||
mark(expression);
|
mark(expression);
|
||||||
createNonSyntheticValue(expression, inputExpressions, MagicKind.UNRESOLVED_CALL);
|
createUnresolvedCall(expression, inputExpressions);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1246,7 +1266,8 @@ public class JetControlFlowProcessor {
|
|||||||
).getOutputValue();
|
).getOutputValue();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
writtenValue = createSyntheticValue(entry, MagicKind.UNRESOLVED_CALL, initializer);
|
List<PseudoValue> arguments = ContainerUtil.createMaybeSingletonList(getBoundOrUnreachableValue(initializer));
|
||||||
|
writtenValue = createUnresolvedCallByValues(entry, null, arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (generateWriteForEntries) {
|
if (generateWriteForEntries) {
|
||||||
@@ -1492,7 +1513,7 @@ public class JetControlFlowProcessor {
|
|||||||
for (JetExpression argument : arguments) {
|
for (JetExpression argument : arguments) {
|
||||||
generateInstructions(argument);
|
generateInstructions(argument);
|
||||||
}
|
}
|
||||||
createNonSyntheticValue(call, arguments, MagicKind.UNRESOLVED_CALL);
|
createUnresolvedCall(call, arguments);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user