in lib/src/tag/_violations.dart [116:155]
Set<Platform>? _declaredPlatforms(String packageName) {
return _declaredPlatformCache.putIfAbsent(packageName, () {
final fields = _pubspecCache.pubspecOfPackage(packageName).toJson();
if (fields['platforms'] is Map) {
final result = <Platform>{};
final declaredPlatforms = fields['platforms'] as Map;
for (final platform in Platform.recognizedPlatforms) {
if (declaredPlatforms.containsKey(platform.name.toLowerCase())) {
result.add(platform);
}
}
return result;
} else if (fields['flutter'] is Map &&
fields['flutter']['plugin'] is Map) {
final result = <Platform>{};
final pluginMap = fields['flutter']['plugin'] as Map;
final declaredPlatforms = pluginMap['platforms'];
if (declaredPlatforms is Map) {
for (final platform in Platform.recognizedPlatforms) {
if (declaredPlatforms.containsKey(platform.name.toLowerCase())) {
result.add(platform);
}
}
} else {
// Legacy style plugin:
if (pluginMap['pluginClass'] is String ||
pluginMap['androidPackage'] is String ||
pluginMap['iosPrefix'] is String) {
result.add(Platform.android);
result.add(Platform.ios);
}
}
return result;
} else {
return null;
}
});
}