diff --git a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/transform_set_parser.dart b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/transform_set_parser.dart index c96e5359ba9..3acbf46ea0e 100644 --- a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/transform_set_parser.dart +++ b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/transform_set_parser.dart @@ -154,12 +154,12 @@ class TransformSetParser { /// Return the result of parsing the file [content] into a transform set, or /// `null` if the content does not represent a valid transform set. TransformSet? parse(String content) { - var map = _parseYaml(content); - if (map == null) { + var node = _parseYaml(content); + if (node == null) { // The error has already been reported. return null; } - return _translateTransformSet(map); + return _translateTransformSet(node); } /// Convert the given [template] into a list of components. Variable @@ -1039,6 +1039,10 @@ class TransformSetParser { set.addTransform(transform); } return set; + } else if (node is YamlScalar && node.value == null) { + // The file has no contents (or is only comments) and should not produce + // any diagnostics. + return null; } else { // TODO(brianwilkerson) Consider having a different error code for the // top-level node (instead of using 'file' as the "key"). diff --git a/pkg/analysis_server/test/domain_analysis_test.dart b/pkg/analysis_server/test/domain_analysis_test.dart index 865c5391cf6..1256a6f966f 100644 --- a/pkg/analysis_server/test/domain_analysis_test.dart +++ b/pkg/analysis_server/test/domain_analysis_test.dart @@ -1160,6 +1160,24 @@ analyzer: assertHasErrors(path); } + Future test_setRoots_notDartFile_fixDataYaml_empty() async { + var path = '$testPackageLibPath/fix_data.yaml'; + newFile(path, ''); + + await setRoots(included: [workspaceRootPath], excluded: []); + + assertNoErrors(path); + } + + Future test_setRoots_notDartFile_fixDataYaml_onlyComments() async { + var path = '$testPackageLibPath/fix_data.yaml'; + newFile(path, '# one\n#two'); + + await setRoots(included: [workspaceRootPath], excluded: []); + + assertNoErrors(path); + } + Future test_setRoots_notDartFile_pubspec_excluded() async { deleteTestPackageAnalysisOptionsFile(); var a_path = '$testPackageLibPath/a.dart';