Remove useless parameter from FunctionGenerationStrategy
This commit is contained in:
@@ -174,7 +174,9 @@ public class FunctionCodegen extends GenerationStateAware {
|
||||
|
||||
genNotNullAssertionsForParameters(new InstructionAdapter(mv), state, functionDescriptor, frameMap);
|
||||
|
||||
strategy.generateBody(mv, signature, context, localVariableNames, frameMap);
|
||||
strategy.generateBody(mv, signature, context, frameMap);
|
||||
|
||||
localVariableNames.addAll(strategy.getLocalVariableNames());
|
||||
}
|
||||
|
||||
Label methodEnd = new Label();
|
||||
|
||||
@@ -23,18 +23,28 @@ import org.jetbrains.jet.codegen.signature.JvmMethodSignature;
|
||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||
import org.jetbrains.jet.lang.psi.JetDeclarationWithBody;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
public abstract class FunctionGenerationStrategy {
|
||||
private final Collection<String> localVariableNames = new ArrayList<String>();
|
||||
|
||||
public abstract void generateBody(
|
||||
@NotNull MethodVisitor mv,
|
||||
@NotNull JvmMethodSignature signature,
|
||||
@NotNull MethodContext context,
|
||||
@NotNull Collection<String> localVariableNames,
|
||||
@NotNull FrameMap frameMap
|
||||
);
|
||||
|
||||
protected void addLocalVariableName(@NotNull String name) {
|
||||
localVariableNames.add(name);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Collection<String> getLocalVariableNames() {
|
||||
return localVariableNames;
|
||||
}
|
||||
|
||||
|
||||
public static class Default extends FunctionGenerationStrategy {
|
||||
private final GenerationState state;
|
||||
@@ -50,14 +60,15 @@ public abstract class FunctionGenerationStrategy {
|
||||
@NotNull MethodVisitor mv,
|
||||
@NotNull JvmMethodSignature signature,
|
||||
@NotNull MethodContext context,
|
||||
@NotNull Collection<String> localVariableNames,
|
||||
@NotNull FrameMap frameMap
|
||||
) {
|
||||
ExpressionCodegen codegen = new ExpressionCodegen(mv, frameMap, signature.getAsmMethod().getReturnType(), context, state);
|
||||
|
||||
codegen.returnExpression(declaration.getBodyExpression());
|
||||
|
||||
localVariableNames.addAll(codegen.getLocalVariableNamesForExpression());
|
||||
for (String name : codegen.getLocalVariableNamesForExpression()) {
|
||||
addLocalVariableName(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -685,7 +685,6 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
@NotNull MethodVisitor mv,
|
||||
@NotNull JvmMethodSignature signature,
|
||||
@NotNull MethodContext context,
|
||||
@NotNull Collection<String> localVariableNames,
|
||||
@NotNull FrameMap frameMap
|
||||
) {
|
||||
InstructionAdapter iv = new InstructionAdapter(mv);
|
||||
@@ -711,7 +710,6 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
@NotNull MethodVisitor mv,
|
||||
@NotNull JvmMethodSignature signature,
|
||||
@NotNull MethodContext context,
|
||||
@NotNull Collection<String> localVariableNames,
|
||||
@NotNull FrameMap frameMap
|
||||
) {
|
||||
InstructionAdapter iv = new InstructionAdapter(mv);
|
||||
|
||||
@@ -183,7 +183,6 @@ public class PropertyCodegen extends GenerationStateAware {
|
||||
@NotNull MethodVisitor mv,
|
||||
@NotNull JvmMethodSignature signature,
|
||||
@NotNull MethodContext context,
|
||||
@NotNull Collection<String> localVariableNames,
|
||||
@NotNull FrameMap frameMap
|
||||
) {
|
||||
generateDefaultAccessor(descriptor, new InstructionAdapter(mv), typeMapper, context);
|
||||
|
||||
Reference in New Issue
Block a user