Lookup fixed to search for SyntheticFieldDescriptor inside MethodContext
This commit is contained in:
committed by
Mikhail Glukhikh
parent
98e0771ffa
commit
994feafd6e
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.codegen.binding.MutableClosure;
|
|||||||
import org.jetbrains.kotlin.codegen.state.GenerationState;
|
import org.jetbrains.kotlin.codegen.state.GenerationState;
|
||||||
import org.jetbrains.kotlin.codegen.state.JetTypeMapper;
|
import org.jetbrains.kotlin.codegen.state.JetTypeMapper;
|
||||||
import org.jetbrains.kotlin.descriptors.*;
|
import org.jetbrains.kotlin.descriptors.*;
|
||||||
|
import org.jetbrains.kotlin.descriptors.impl.SyntheticFieldDescriptor;
|
||||||
import org.jetbrains.kotlin.resolve.inline.InlineUtil;
|
import org.jetbrains.kotlin.resolve.inline.InlineUtil;
|
||||||
import org.jetbrains.org.objectweb.asm.Label;
|
import org.jetbrains.org.objectweb.asm.Label;
|
||||||
import org.jetbrains.org.objectweb.asm.Type;
|
import org.jetbrains.org.objectweb.asm.Type;
|
||||||
@@ -68,6 +69,10 @@ public class MethodContext extends CodegenContext<CallableMemberDescriptor> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public StackValue lookupInContext(DeclarationDescriptor d, @Nullable StackValue result, GenerationState state, boolean ignoreNoOuter) {
|
public StackValue lookupInContext(DeclarationDescriptor d, @Nullable StackValue result, GenerationState state, boolean ignoreNoOuter) {
|
||||||
|
if (d instanceof SyntheticFieldDescriptor) {
|
||||||
|
SyntheticFieldDescriptor fieldDescriptor = (SyntheticFieldDescriptor) d;
|
||||||
|
d = fieldDescriptor.getPropertyDescriptor();
|
||||||
|
}
|
||||||
if (getContextDescriptor() == d) {
|
if (getContextDescriptor() == d) {
|
||||||
return result != null ? result : StackValue.LOCAL_0;
|
return result != null ? result : StackValue.LOCAL_0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user