Fix processing of primary constructor parameters to match existing test data

This commit is contained in:
Andrey Breslav
2012-06-26 18:07:25 +02:00
parent fe394b9827
commit a4ffb7c9d9
@@ -81,17 +81,27 @@ public class AbstractLazyResolveDescriptorRendererTest extends AbstractLazyResol
if (declaringElement instanceof JetNamedFunction) {
JetNamedFunction jetNamedFunction = (JetNamedFunction) declaringElement;
FunctionDescriptor functionDescriptor = (FunctionDescriptor) resolveSession.resolveToDescriptor(jetNamedFunction);
for (ValueParameterDescriptor valueParameterDescriptor : functionDescriptor.getValueParameters()) {
if (valueParameterDescriptor.getName().equals(parameter.getNameAsName())) {
descriptors.add(valueParameterDescriptor);
}
}
addCorrespondingParameterDescriptor(functionDescriptor, parameter);
}
else if (declaringElement instanceof JetClass) {
// Primary constructor parameter
JetClass jetClass = (JetClass) declaringElement;
ClassDescriptor classDescriptor = resolveSession.getClassDescriptor(jetClass);
addCorrespondingParameterDescriptor(classDescriptor.getConstructors().iterator().next(), parameter);
}
else {
super.visitParameter(parameter);
}
}
private void addCorrespondingParameterDescriptor(FunctionDescriptor functionDescriptor, JetParameter parameter) {
for (ValueParameterDescriptor valueParameterDescriptor : functionDescriptor.getValueParameters()) {
if (valueParameterDescriptor.getName().equals(parameter.getNameAsName())) {
descriptors.add(valueParameterDescriptor);
}
}
}
@Override
public void visitPropertyAccessor(JetPropertyAccessor accessor) {
JetProperty parent = (JetProperty) accessor.getParent();