[dart2js] Ignore abstract isMemberSignature procedures.

Change-Id: Idaa47742d44fbf10e8053f9049650e9a9d3aca0d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139141
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
This commit is contained in:
Joshua Litt 2020-03-12 14:45:12 +00:00 committed by commit-bot@chromium.org
parent 98d09f8f78
commit 2972e22f01

View file

@ -388,7 +388,8 @@ class KClassEnvImpl implements KClassEnv {
void addProcedure(ir.Procedure member,
{bool includeStatic, bool includeNoSuchMethodForwarders}) {
if (member.isForwardingStub && member.isAbstract) {
if ((member.isMemberSignature || member.isForwardingStub) &&
member.isAbstract) {
// Skip abstract forwarding stubs. These are never emitted but they
// might shadow the inclusion of a mixed in method in code like:
//
@ -403,7 +404,8 @@ class KClassEnvImpl implements KClassEnv {
// `Mixin.method` is inherited by `Class`.
return;
}
if (member.isForwardingStub && cls.isAnonymousMixin) {
if ((member.isMemberSignature || member.isForwardingStub) &&
cls.isAnonymousMixin) {
return;
}
if (!includeStatic && member.isStatic) return;