| Index: pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart | 
| diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart | 
| index 0a055426511823f9fd96543379930aa27c85bb59..002ab8ef25c1dc1a510fddd932d88b92849e3ef6 100644 | 
| --- a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart | 
| +++ b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart | 
| @@ -1061,15 +1061,22 @@ class KernelMethodInvocation extends MethodInvocation | 
| if (receiverType is InterfaceType) { | 
| interfaceMember = inferrer.classHierarchy | 
| .getInterfaceMember(receiverType.classNode, name); | 
| -      if (interfaceMember is Procedure) { | 
| -        // Our non-strong golden files currently don't include interface | 
| -        // targets, so we can't store the interface target without causing tests | 
| -        // to fail.  TODO(paulberry): fix this. | 
| -        if (inferrer.strongMode) { | 
| +      // Our non-strong golden files currently don't include interface | 
| +      // targets, so we can't store the interface target without causing tests | 
| +      // to fail.  TODO(paulberry): fix this. | 
| +      if (inferrer.strongMode) { | 
| +        if (interfaceMember != null) { | 
| inferrer.instrumentation?.record(Uri.parse(inferrer.uri), fileOffset, | 
| 'target', new InstrumentationValueForMember(interfaceMember)); | 
| +        } | 
| +        // interfaceTarget is currently required to be a procedure, so we skip | 
| +        // if it's anything else.  TODO(paulberry): fix this - see | 
| +        // https://codereview.chromium.org/2923653003/. | 
| +        if (interfaceMember is Procedure) { | 
| interfaceTarget = interfaceMember; | 
| } | 
| +      } | 
| +      if (interfaceMember is Procedure) { | 
| isOverloadedArithmeticOperator = inferrer.typeSchemaEnvironment | 
| .isOverloadedArithmeticOperator(interfaceMember); | 
| } | 
|  |