| Index: pkg/compiler/lib/src/kernel/element_map_mixins.dart
|
| diff --git a/pkg/compiler/lib/src/kernel/element_map_mixins.dart b/pkg/compiler/lib/src/kernel/element_map_mixins.dart
|
| index 8b30d0b68711fabe254fd7cb694aadfa10427d87..e8b50b37d016b9776f00a1eec59f9d61a356f92d 100644
|
| --- a/pkg/compiler/lib/src/kernel/element_map_mixins.dart
|
| +++ b/pkg/compiler/lib/src/kernel/element_map_mixins.dart
|
| @@ -402,12 +402,19 @@ abstract class KernelToElementMapForImpactMixin
|
| return nativeBehaviorBuilder.buildFieldStoreBehavior(type);
|
| }
|
|
|
| - /// Computes the native behavior for calling [procedure].
|
| + /// Computes the native behavior for calling [member].
|
| // TODO(johnniwinther): Cache this for later use.
|
| - native.NativeBehavior getNativeBehaviorForMethod(ir.Procedure procedure,
|
| + native.NativeBehavior getNativeBehaviorForMethod(ir.Member member,
|
| {bool isJsInterop}) {
|
| - DartType type = getFunctionType(procedure.function);
|
| - List<ConstantValue> metadata = getMetadata(procedure.annotations);
|
| + DartType type;
|
| + if (member is ir.Procedure) {
|
| + type = getFunctionType(member.function);
|
| + } else if (member is ir.Constructor) {
|
| + type = getFunctionType(member.function);
|
| + } else {
|
| + failedAt(CURRENT_ELEMENT_SPANNABLE, "Unexpected method node $member.");
|
| + }
|
| + List<ConstantValue> metadata = getMetadata(member.annotations);
|
| return nativeBehaviorBuilder.buildMethodBehavior(
|
| type, metadata, typeLookup(resolveAsRaw: false),
|
| isJsInterop: isJsInterop);
|
|
|