Minor, make CapturedParamInfo#skipInConstructor immutable
This commit is contained in:
+3
-5
@@ -451,7 +451,8 @@ public class AnonymousObjectTransformer extends ObjectTransformer<AnonymousObjec
|
||||
|
||||
CapturedParamInfo recapturedParamInfo = capturedParamBuilder.addCapturedParam(
|
||||
desc,
|
||||
alreadyAddedParam != null ? alreadyAddedParam.getNewFieldName() : getNewFieldName(desc.getFieldName(), false)
|
||||
alreadyAddedParam != null ? alreadyAddedParam.getNewFieldName() : getNewFieldName(desc.getFieldName(), false),
|
||||
alreadyAddedParam != null
|
||||
);
|
||||
StackValue composed = StackValue.field(
|
||||
desc.getType(),
|
||||
@@ -465,9 +466,6 @@ public class AnonymousObjectTransformer extends ObjectTransformer<AnonymousObjec
|
||||
|
||||
constructorParamBuilder.addCapturedParam(recapturedParamInfo, recapturedParamInfo.getNewFieldName())
|
||||
.setRemapValue(composed);
|
||||
if (alreadyAddedParam != null) {
|
||||
recapturedParamInfo.setSkipInConstructor(true);
|
||||
}
|
||||
|
||||
if (isThis0(desc.getFieldName())) {
|
||||
alreadyAdded.put(key, recapturedParamInfo);
|
||||
@@ -484,7 +482,7 @@ public class AnonymousObjectTransformer extends ObjectTransformer<AnonymousObjec
|
||||
Type ownerType = Type.getObjectType(parent.getLambdaInternalName());
|
||||
CapturedParamDesc desc = new CapturedParamDesc(ownerType, InlineCodegenUtil.THIS, ownerType);
|
||||
CapturedParamInfo recapturedParamInfo =
|
||||
capturedParamBuilder.addCapturedParam(desc, InlineCodegenUtil.THIS$0/*outer lambda/object*/);
|
||||
capturedParamBuilder.addCapturedParam(desc, InlineCodegenUtil.THIS$0/*outer lambda/object*/, false);
|
||||
StackValue composed = StackValue.LOCAL_0;
|
||||
recapturedParamInfo.setRemapValue(composed);
|
||||
allRecapturedParameters.add(desc);
|
||||
|
||||
@@ -23,21 +23,27 @@ import org.jetbrains.kotlin.codegen.StackValue;
|
||||
public class CapturedParamInfo extends ParameterInfo {
|
||||
public final CapturedParamDesc desc;
|
||||
private final String newFieldName;
|
||||
|
||||
private boolean skipInConstructor;
|
||||
private final boolean skipInConstructor;
|
||||
|
||||
public CapturedParamInfo(@NotNull CapturedParamDesc desc, @NotNull String newFieldName, boolean skipped, int index, int remapIndex) {
|
||||
super(desc.getType(), skipped, index, remapIndex, index);
|
||||
this.desc = desc;
|
||||
this.newFieldName = newFieldName;
|
||||
this.skipInConstructor = false;
|
||||
}
|
||||
|
||||
public CapturedParamInfo(
|
||||
@NotNull CapturedParamDesc desc, @NotNull String newFieldName, boolean skipped, int index, @Nullable StackValue remapIndex
|
||||
@NotNull CapturedParamDesc desc,
|
||||
@NotNull String newFieldName,
|
||||
boolean skipped,
|
||||
int index,
|
||||
@Nullable StackValue remapIndex,
|
||||
boolean skipInConstructor
|
||||
) {
|
||||
super(desc.getType(), skipped, index, remapIndex, index);
|
||||
this.desc = desc;
|
||||
this.newFieldName = newFieldName;
|
||||
this.skipInConstructor = skipInConstructor;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -57,10 +63,9 @@ public class CapturedParamInfo extends ParameterInfo {
|
||||
|
||||
@NotNull
|
||||
private CapturedParamInfo clone(int newIndex, @Nullable StackValue newRemapIndex) {
|
||||
CapturedParamInfo capturedParamInfo = new CapturedParamInfo(desc, newFieldName, isSkipped, newIndex, newRemapIndex);
|
||||
capturedParamInfo.setLambda(getLambda());
|
||||
capturedParamInfo.setSkipInConstructor(skipInConstructor);
|
||||
return capturedParamInfo;
|
||||
CapturedParamInfo result = new CapturedParamInfo(desc, newFieldName, isSkipped, newIndex, newRemapIndex, skipInConstructor);
|
||||
result.setLambda(getLambda());
|
||||
return result;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -71,8 +76,4 @@ public class CapturedParamInfo extends ParameterInfo {
|
||||
public boolean isSkipInConstructor() {
|
||||
return skipInConstructor;
|
||||
}
|
||||
|
||||
public void setSkipInConstructor(boolean skipInConstructor) {
|
||||
this.skipInConstructor = skipInConstructor;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -585,7 +585,7 @@ public class InlineCodegen extends CallGenerator {
|
||||
ParameterInfo info;
|
||||
if (capturedParamIndex >= 0) {
|
||||
CapturedParamDesc capturedParamInfoInLambda = activeLambda.getCapturedVars().get(capturedParamIndex);
|
||||
info = invocationParamBuilder.addCapturedParam(capturedParamInfoInLambda, capturedParamInfoInLambda.getFieldName());
|
||||
info = invocationParamBuilder.addCapturedParam(capturedParamInfoInLambda, capturedParamInfoInLambda.getFieldName(), false);
|
||||
info.setRemapValue(remappedIndex);
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -55,8 +55,8 @@ internal class ParametersBuilder private constructor() {
|
||||
|
||||
private fun nextCapturedIndex(): Int = nextCaptured
|
||||
|
||||
fun addCapturedParam(desc: CapturedParamDesc, newFieldName: String): CapturedParamInfo {
|
||||
return addCapturedParameter(CapturedParamInfo(desc, newFieldName, false, nextCapturedIndex(), null))
|
||||
fun addCapturedParam(desc: CapturedParamDesc, newFieldName: String, skipInConstructor: Boolean): CapturedParamInfo {
|
||||
return addCapturedParameter(CapturedParamInfo(desc, newFieldName, false, nextCapturedIndex(), null, skipInConstructor))
|
||||
}
|
||||
|
||||
fun addCapturedParamCopy(copyFrom: CapturedParamInfo): CapturedParamInfo {
|
||||
|
||||
Reference in New Issue
Block a user