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()) { if (substitutor.isEmpty()) {
return functionDescriptor; return functionDescriptor;
} }
FunctionDescriptorImpl substitutedDescriptor = new FunctionDescriptorImpl( FunctionDescriptorImpl substitutedDescriptor;
functionDescriptor, if (functionDescriptor instanceof ConstructorDescriptor) {
// TODO : safeSubstitute ConstructorDescriptor original = (ConstructorDescriptor) functionDescriptor;
functionDescriptor.getAttributes(),
functionDescriptor.getName()); 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); List<ValueParameterDescriptor> substitutedValueParameters = getSubstitutedValueParameters(substitutedDescriptor, functionDescriptor, substitutor);
if (substitutedValueParameters == null) { if (substitutedValueParameters == null) {