LocalVariableDescriptor.withAccessors renamed to isDelegated, added getter
This commit is contained in:
@@ -1628,7 +1628,7 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
|
||||
}
|
||||
|
||||
private static boolean isDelegatedLocalVariable(@NotNull DeclarationDescriptor descriptor) {
|
||||
return descriptor instanceof LocalVariableDescriptor && ((VariableDescriptorWithAccessors) descriptor).getGetter() != null;
|
||||
return descriptor instanceof LocalVariableDescriptor && ((LocalVariableDescriptor) descriptor).isDelegated();
|
||||
}
|
||||
|
||||
private static boolean isSharedVarType(@NotNull Type type) {
|
||||
|
||||
@@ -35,6 +35,7 @@ import org.jetbrains.kotlin.codegen.signature.BothSignatureWriter;
|
||||
import org.jetbrains.kotlin.codegen.signature.JvmSignatureWriter;
|
||||
import org.jetbrains.kotlin.descriptors.*;
|
||||
import org.jetbrains.kotlin.descriptors.impl.LocalVariableAccessorDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.impl.LocalVariableDescriptor;
|
||||
import org.jetbrains.kotlin.fileClasses.FileClasses;
|
||||
import org.jetbrains.kotlin.fileClasses.JvmFileClassInfo;
|
||||
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil;
|
||||
@@ -1369,9 +1370,8 @@ public class KotlinTypeMapper {
|
||||
return StackValue.sharedTypeForType(mapType(receiverParameter.getType()));
|
||||
}
|
||||
|
||||
if (descriptor instanceof VariableDescriptorWithAccessors) {
|
||||
VariableDescriptorWithAccessors withAccessors = (VariableDescriptorWithAccessors) descriptor;
|
||||
if (withAccessors.getGetter() != null || withAccessors.getSetter() != null) return null;
|
||||
if (descriptor instanceof LocalVariableDescriptor && ((LocalVariableDescriptor) descriptor).isDelegated()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (descriptor instanceof VariableDescriptor && isVarCapturedInClosure(bindingContext, descriptor)) {
|
||||
|
||||
+8
-4
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.types.KotlinType;
|
||||
import org.jetbrains.kotlin.types.TypeSubstitutor;
|
||||
|
||||
public class LocalVariableDescriptor extends VariableDescriptorWithInitializerImpl implements VariableDescriptorWithAccessors {
|
||||
private final boolean withAccessors;
|
||||
private final boolean isDelegated;
|
||||
private VariableAccessorDescriptor getter;
|
||||
private VariableAccessorDescriptor setter;
|
||||
|
||||
@@ -35,17 +35,17 @@ public class LocalVariableDescriptor extends VariableDescriptorWithInitializerIm
|
||||
@NotNull Name name,
|
||||
@Nullable KotlinType type,
|
||||
boolean mutable,
|
||||
boolean withAccessors,
|
||||
boolean isDelegated,
|
||||
@NotNull SourceElement source
|
||||
) {
|
||||
super(containingDeclaration, annotations, name, type, mutable, source);
|
||||
this.withAccessors = withAccessors;
|
||||
this.isDelegated = isDelegated;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOutType(KotlinType outType) {
|
||||
super.setOutType(outType);
|
||||
if (withAccessors) {
|
||||
if (isDelegated) {
|
||||
this.getter = new LocalVariableAccessorDescriptor.Getter(this);
|
||||
if (isVar()) {
|
||||
this.setter = new LocalVariableAccessorDescriptor.Setter(this);
|
||||
@@ -82,4 +82,8 @@ public class LocalVariableDescriptor extends VariableDescriptorWithInitializerIm
|
||||
public VariableAccessorDescriptor getSetter() {
|
||||
return setter;
|
||||
}
|
||||
|
||||
public boolean isDelegated() {
|
||||
return isDelegated;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user