checkSafeKeyType function

void checkSafeKeyType(
  1. String expression,
  2. DartType keyArg
)

Implementation

void checkSafeKeyType(String expression, DartType keyArg) {
  // We're not going to handle converting key types at the moment
  // So the only safe types for key are dynamic/Object/String/enum
  final safeKey = keyArg.isLikeDynamic ||
      coreStringTypeChecker.isExactlyType(keyArg) ||
      isKeyStringable(keyArg);

  if (!safeKey) {
    throw UnsupportedTypeError(keyArg, expression,
        'Map keys must be one of: ${allowedTypeNames.join(', ')}.');
  }
}