private static boolean isSubtype(
      ObjectType typeA,
      RecordType typeB,
      ImplCache implicitImplCache,
      SubtypingMode subtypingMode) {

    MatchStatus cached = implicitImplCache.checkCache(typeA, typeB);
    if (cached != null) {
      return cached.subtypeValue();
    }

    boolean result =
        isStructuralSubtypeHelper(
            typeA, typeB, implicitImplCache, subtypingMode, ALL_PROPS_ARE_REQUIRED);
    return implicitImplCache.updateCache(typeA, typeB, MatchStatus.valueOf(result));
  }
private static boolean isSubtype ( ObjectType typeA , RecordType typeB , ImplCache implicitImplCache , SubtypingMode subtypingMode ) { MatchStatus cached = implicitImplCache . checkCache ( typeA , typeB ) ; if ( cached != null ) { return cached . subtypeValue ( ) ; } boolean result = isStructuralSubtypeHelper ( typeA , typeB , implicitImplCache , subtypingMode , ALL_PROPS_ARE_REQUIRED ) ; return implicitImplCache . updateCache ( typeA , typeB , MatchStatus . valueOf ( result ) ) ; }
Determines if typeA is a subtype of typeB