anchor.diff:        if (storeFunctionTypeInMetadata && functionTypeIndex != null) {
           result.functionTypeIndex = functionTypeIndex;
         } else {
  -        jsAst.Expression encoding =
  +        jsAst.Expression? encoding =
               generatedCode[classFunctionType.signatureFunction];
  -        if (classFunctionType.signatureFunction == null) {
  -          // The signature function isn't live.
  -          return;
  -        }
  +        // TODO(48820): remove
  +        assert((classFunctionType.signatureFunction as dynamic) != null);
           if (functionTypeIndex != null) {
             if (isDeferred) {
               // The function type index must be offset by the number of types
  
positive.code: }
  
  class TypeTests {
    TypeTest isTest;
    TypeTest substitution;
    TypeTest signature;
  }
  
  class TypeTestProperties {
  
negative.code:     // Precomputed is checks.
      ClassChecks classChecks = _rtiChecks.requiredChecks[cls];
      Iterable<TypeCheck> typeChecks = classChecks.checks;
      for (TypeCheck typeCheck in typeChecks) {
        if (!generated.contains(typeCheck.cls)) {
          emitTypeCheck(typeCheck);
          generated.add(typeCheck.cls);
        }
      }
  
      if (classChecks.functionType != null) {
        generateFunctionTypeSignature(classChecks.functionType!);
      }
    }
  }
  