fix stdlib compilation after javabean refactoring
This commit is contained in:
@@ -646,12 +646,18 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
|
||||
for (Pair<CallableMemberDescriptor, CallableMemberDescriptor> needDelegates : getTraitImplementations(descriptor)) {
|
||||
CallableMemberDescriptor callableDescriptor = needDelegates.first;
|
||||
FunctionDescriptor fun = (FunctionDescriptor) needDelegates.second;
|
||||
generateDelegationToTraitImpl(codegen, fun);
|
||||
if (needDelegates.second instanceof NamedFunctionDescriptor) {
|
||||
generateDelegationToTraitImpl(codegen, (FunctionDescriptor) needDelegates.second);
|
||||
} else if (needDelegates.second instanceof PropertyDescriptor) {
|
||||
PropertyDescriptor property = (PropertyDescriptor) needDelegates.second;
|
||||
for (PropertyAccessorDescriptor accessor : property.getAccessors()) {
|
||||
generateDelegationToTraitImpl(codegen, accessor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void generateDelegationToTraitImpl(ExpressionCodegen codegen, FunctionDescriptor fun) {
|
||||
private void generateDelegationToTraitImpl(ExpressionCodegen codegen, @NotNull FunctionDescriptor fun) {
|
||||
DeclarationDescriptor containingDeclaration = fun.getContainingDeclaration();
|
||||
if(containingDeclaration instanceof ClassDescriptor) {
|
||||
ClassDescriptor declaration = (ClassDescriptor) containingDeclaration;
|
||||
|
||||
@@ -27,6 +27,7 @@ import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.receivers.TransientReceiver;
|
||||
import org.jetbrains.jet.lang.types.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
@@ -184,6 +185,18 @@ public class PropertyDescriptor extends VariableDescriptorImpl implements Callab
|
||||
return setter;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public List<PropertyAccessorDescriptor> getAccessors() {
|
||||
List<PropertyAccessorDescriptor> r = Lists.newArrayListWithCapacity(2);
|
||||
if (getter != null) {
|
||||
r.add(getter);
|
||||
}
|
||||
if (setter != null) {
|
||||
r.add(setter);
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PropertyDescriptor substitute(TypeSubstitutor originalSubstitutor) {
|
||||
if (originalSubstitutor.isEmpty()) {
|
||||
|
||||
Reference in New Issue
Block a user