parseLanguageVersion static method

  1. @visibleForTesting
LanguageVersion? parseLanguageVersion(
  1. YamlMap doc
)

Implementation

@visibleForTesting
static LanguageVersion? parseLanguageVersion(YamlMap doc) {
  final environmentRoot = doc['environment'];
  if (environmentRoot is! YamlMap) return null;
  final sdk = environmentRoot['sdk'];
  if (sdk is! String) return null;

  final range = VersionConstraint.parse(sdk);
  if (range is Version) {
    return LanguageVersion(range.major, range.minor, range.patch);
  } else if (range is VersionRange) {
    final min = range.min;
    if (min == null) return null;
    return LanguageVersion(min.major, min.minor, min.patch);
  }

  return null;
}