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) { if (declaringElement instanceof JetNamedFunction) {
JetNamedFunction jetNamedFunction = (JetNamedFunction) declaringElement; JetNamedFunction jetNamedFunction = (JetNamedFunction) declaringElement;
FunctionDescriptor functionDescriptor = (FunctionDescriptor) resolveSession.resolveToDescriptor(jetNamedFunction); FunctionDescriptor functionDescriptor = (FunctionDescriptor) resolveSession.resolveToDescriptor(jetNamedFunction);
for (ValueParameterDescriptor valueParameterDescriptor : functionDescriptor.getValueParameters()) { addCorrespondingParameterDescriptor(functionDescriptor, parameter);
if (valueParameterDescriptor.getName().equals(parameter.getNameAsName())) { }
descriptors.add(valueParameterDescriptor); else if (declaringElement instanceof JetClass) {
} // Primary constructor parameter
} JetClass jetClass = (JetClass) declaringElement;
ClassDescriptor classDescriptor = resolveSession.getClassDescriptor(jetClass);
addCorrespondingParameterDescriptor(classDescriptor.getConstructors().iterator().next(), parameter);
} }
else { else {
super.visitParameter(parameter); 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 @Override
public void visitPropertyAccessor(JetPropertyAccessor accessor) { public void visitPropertyAccessor(JetPropertyAccessor accessor) {
JetProperty parent = (JetProperty) accessor.getParent(); JetProperty parent = (JetProperty) accessor.getParent();