[lint] unecessary_ignore: skip generated files
Bug: https://github.com/dart-lang/sdk/issues/35234 Change-Id: I7ba59a32906b25c4343edff212cbac3acaa94e41 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404721 Auto-Submit: Phil Quitslund <pquitslund@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
@@ -9,6 +9,7 @@ import 'package:analyzer/dart/analysis/features.dart';
|
||||
import 'package:analyzer/dart/element/element.dart';
|
||||
import 'package:analyzer/error/error.dart';
|
||||
import 'package:analyzer/error/listener.dart';
|
||||
import 'package:analyzer/source/file_source.dart';
|
||||
import 'package:analyzer/src/context/source.dart';
|
||||
import 'package:analyzer/src/dart/analysis/analysis_options.dart';
|
||||
import 'package:analyzer/src/dart/analysis/file_analysis.dart';
|
||||
@@ -355,7 +356,9 @@ class LibraryAnalyzer {
|
||||
|
||||
// This must happen after all other diagnostics have been computed but
|
||||
// before the list of diagnostics has been filtered.
|
||||
for (var fileAnalysis in _libraryFiles.values) {
|
||||
for (var fileAnalysis in _libraryFiles.values
|
||||
// Only validate non-generated files.
|
||||
.whereNot((f) => f.file.source.isGenerated)) {
|
||||
IgnoreValidator(
|
||||
fileAnalysis.errorReporter,
|
||||
fileAnalysis.errorListener.errors,
|
||||
@@ -717,7 +720,7 @@ class LibraryAnalyzer {
|
||||
} else if (state is LibraryImportWithFile && !state.importedFile.exists) {
|
||||
var errorCode = state.isDocImport
|
||||
? WarningCode.URI_DOES_NOT_EXIST_IN_DOC_IMPORT
|
||||
: isGeneratedSource(state.importedSource)
|
||||
: state.importedSource.isGenerated
|
||||
? CompileTimeErrorCode.URI_HAS_NOT_BEEN_GENERATED
|
||||
: CompileTimeErrorCode.URI_DOES_NOT_EXIST;
|
||||
errorReporter.atNode(
|
||||
@@ -1152,3 +1155,7 @@ extension on file_state.DirectiveUri {
|
||||
return DirectiveUriImpl();
|
||||
}
|
||||
}
|
||||
|
||||
extension on FileSource {
|
||||
bool get isGenerated => isGeneratedSource(this);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ main() {
|
||||
defineReflectiveSuite(() {
|
||||
defineReflectiveTests(UnnecessaryIgnoreTest);
|
||||
defineReflectiveTests(UnnecessaryIgnoreDisabledTest);
|
||||
defineReflectiveTests(UnnecessaryIgnoreGeneratedFileTest);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -35,6 +36,29 @@ void f() {}
|
||||
}
|
||||
}
|
||||
|
||||
@reflectiveTest
|
||||
class UnnecessaryIgnoreGeneratedFileTest extends LintRuleTest {
|
||||
@override
|
||||
String get lintRule => 'unnecessary_ignore';
|
||||
|
||||
@override
|
||||
String get testFileName => 'test.g.dart';
|
||||
|
||||
test_file() async {
|
||||
await assertNoDiagnostics(r'''
|
||||
// ignore_for_file: unused_local_variable
|
||||
void f() {}
|
||||
''');
|
||||
}
|
||||
|
||||
test_line() async {
|
||||
await assertNoDiagnostics(r'''
|
||||
// ignore: unused_local_variable
|
||||
void f() {}
|
||||
''');
|
||||
}
|
||||
}
|
||||
|
||||
@reflectiveTest
|
||||
class UnnecessaryIgnoreTest extends LintRuleTest {
|
||||
@override
|
||||
|
||||
Reference in New Issue
Block a user