interface I {
@overload("f")
let g(): Void;
}
class C extends I {
public g(): Void {}
public f(): Void {} // Illegal
}
The presence of @overload for a name in a super-type basically reserves that name in sub-types. This is meant to allow backends to do extra things with the overload name without also managing name conflicts.
The presence of
@overloadfor a name in a super-type basically reserves that name in sub-types. This is meant to allow backends to do extra things with the overload name without also managing name conflicts.