MutableClassDescriptor.getCallableDescriptors() now includes "fake overrides"

Otherwise, it was necessary to call getAllDescriptors() on the member scope, which seems like a bad idea.
Adjustments have been made to the client code, to exclude "fake overrides" from irrelevant checks.
This commit is contained in:
Andrey Breslav
2012-04-26 16:42:11 +04:00
parent 3a56b7905d
commit 07c5f8e12a
4 changed files with 17 additions and 11 deletions
@@ -31,7 +31,9 @@ public class OverrideMethodsHandler extends OverrideImplementMethodsHandler {
protected Set<CallableMemberDescriptor> collectMethodsToGenerate(MutableClassDescriptor descriptor) {
final Set<CallableMemberDescriptor> superMethods = OverrideResolver.collectSuperMethods(descriptor).keySet();
for (CallableMemberDescriptor member : descriptor.getCallableMembers()) {
superMethods.removeAll(member.getOverriddenDescriptors());
if (member.getKind() != CallableMemberDescriptor.Kind.FAKE_OVERRIDE) {
superMethods.removeAll(member.getOverriddenDescriptors());
}
}
Set<CallableMemberDescriptor> result = new HashSet<CallableMemberDescriptor>();
for (CallableMemberDescriptor superMethod : superMethods) {