Cloning a constructor descriptor shall result in constructor descriptor, not FunctionDescriptor

This commit is contained in:
Maxim Shafirov
2011-04-28 20:46:25 +04:00
parent a61e045e85
commit 7a5d69b0f2
@@ -96,11 +96,21 @@ public class FunctionDescriptorUtil {
if (substitutor.isEmpty()) {
return functionDescriptor;
}
FunctionDescriptorImpl substitutedDescriptor = new FunctionDescriptorImpl(
functionDescriptor,
// TODO : safeSubstitute
functionDescriptor.getAttributes(),
functionDescriptor.getName());
FunctionDescriptorImpl substitutedDescriptor;
if (functionDescriptor instanceof ConstructorDescriptor) {
ConstructorDescriptor original = (ConstructorDescriptor) functionDescriptor;
substitutedDescriptor = new ConstructorDescriptorImpl(
original, functionDescriptor.getAttributes(), original.isPrimary()
);
}
else {
substitutedDescriptor = new FunctionDescriptorImpl(
functionDescriptor,
// TODO : safeSubstitute
functionDescriptor.getAttributes(),
functionDescriptor.getName());
}
List<ValueParameterDescriptor> substitutedValueParameters = getSubstitutedValueParameters(substitutedDescriptor, functionDescriptor, substitutor);
if (substitutedValueParameters == null) {