Unverified Commit 32e1e00e authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

[flutter_tools] handle NPE in language analytics (#74075)

parent 17edb9aa
...@@ -283,7 +283,8 @@ class NullSafetyAnalysisEvent implements UsageEvent { ...@@ -283,7 +283,8 @@ class NullSafetyAnalysisEvent implements UsageEvent {
if (package.name == currentPackage) { if (package.name == currentPackage) {
languageVersion = package.languageVersion; languageVersion = package.languageVersion;
} }
if (package.languageVersion.major >= nullSafeVersion.major && if (package.languageVersion != null &&
package.languageVersion.major >= nullSafeVersion.major &&
package.languageVersion.minor >= nullSafeVersion.minor) { package.languageVersion.minor >= nullSafeVersion.minor) {
migrated += 1; migrated += 1;
} }
......
...@@ -96,6 +96,26 @@ void main() { ...@@ -96,6 +96,26 @@ void main() {
})).called(1); })).called(1);
verifyNever(usage.sendEvent(NullSafetyAnalysisEvent.kNullSafetyCategory, 'language-version', label: anyNamed('label'))); verifyNever(usage.sendEvent(NullSafetyAnalysisEvent.kNullSafetyCategory, 'language-version', label: anyNamed('label')));
}); });
testWithoutContext('a null language version is treated as unmigrated', () {
final Usage usage = MockUsage();
final PackageConfig packageConfig = PackageConfig(<Package>[
Package('foo', Uri.parse('file:///foo/lib/'), languageVersion: null),
]);
NullSafetyAnalysisEvent(
packageConfig,
NullSafetyMode.sound,
'something-unrelated',
usage,
).send();
verify(usage.sendEvent(NullSafetyAnalysisEvent.kNullSafetyCategory, 'runtime-mode', label: 'NullSafetyMode.sound')).called(1);
verify(usage.sendEvent(NullSafetyAnalysisEvent.kNullSafetyCategory, 'stats', parameters: <String, String>{
'cd49': '0', 'cd50': '1',
})).called(1);
verifyNever(usage.sendEvent(NullSafetyAnalysisEvent.kNullSafetyCategory, 'language-version', label: anyNamed('label')));
});
} }
class FakeGroupedValidator extends GroupedValidator { class FakeGroupedValidator extends GroupedValidator {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment