anchor.diff:      ]);
     }
   
  -  jsAst.ArrayInitializer generateTypeToInterceptorMap() {
  +  jsAst.ArrayInitializer? generateTypeToInterceptorMap() {
       // TODO(sra): Perhaps inject a constant instead?
       CustomElementsCodegenAnalysis analysis = _customElementsCodegenAnalysis;
       if (!analysis.needsTable) return null;
   
  -    List<jsAst.Expression /*!*/ > elements = [];
  +    List<jsAst.Expression> elements = [];
       Iterable<ConstantValue> constants =
           _codegenWorld.getConstantsForEmission(_emitter.compareConstants);
       for (ConstantValue constant in constants) {
         if (constant is TypeConstantValue &&
             constant.representedType is InterfaceType) {
  -        InterfaceType type = constant.representedType;
  +        InterfaceType type = constant.representedType as InterfaceType;
           ClassEntity classElement = type.element;
           if (!analysis.needsClass(classElement)) continue;
   
  
positive.code:                 return receiver[a0];
            ''', typeCheck);
        } else {
          jsAst.Expression typeCheck;
          if (containsArray) {
            typeCheck = arrayCheck;
          }
  
negative.code:       jsAst.Expression genericIndexableCheck() =>
            _generateIsJsIndexableCall(js('receiver'), js('receiver'));
  
        jsAst.Expression orExp(jsAst.Expression? left, jsAst.Expression right) {
          return left == null ? right : js('# || #', [left, right]);
        }
  
        if (selector.isIndex) {
          jsAst.Expression? typeCheck;
          if (containsArray) {
            typeCheck = arrayCheck;
          }
  