Don't report duplicate errors when CFE already reports them.
R=brianwilkerson@google.com, paulberry@google.com
Bug: https://github.com/dart-lang/sdk/issues/33674
Change-Id: Ia8e0ef74e333fbd99f615aa87629ca20de08af07
Reviewed-on: https://dart-review.googlesource.com/63362
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
index 2c9323b..c486315 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
@@ -549,6 +549,14 @@
}
ErrorReporter libraryErrorReporter = _getErrorReporter(_library);
+
+ void reportErrorReportedByFrontEnd(
+ ErrorCode errorCode, AstNode node, List<Object> arguments) {
+ if (!_enableKernelDriver) {
+ libraryErrorReporter.reportErrorForNode(errorCode, node, arguments);
+ }
+ }
+
LibraryIdentifier libraryNameNode = null;
var seenPartSources = new Set<Source>();
var directivesToResolve = <Directive>[];
@@ -604,7 +612,7 @@
// Validate that the part source is unique in the library.
//
if (!seenPartSources.add(partSource)) {
- libraryErrorReporter.reportErrorForNode(
+ reportErrorReportedByFrontEnd(
CompileTimeErrorCode.DUPLICATE_PART, partUri, [partSource.uri]);
}
@@ -616,18 +624,16 @@
_NameOrSource nameOrSource = _getPartLibraryNameOrUri(
partSource, partUnit, directivesToResolve);
if (nameOrSource == null) {
- libraryErrorReporter.reportErrorForNode(
- CompileTimeErrorCode.PART_OF_NON_PART,
- partUri,
- [partUri.toSource()]);
+ reportErrorReportedByFrontEnd(CompileTimeErrorCode.PART_OF_NON_PART,
+ partUri, [partUri.toSource()]);
} else {
String name = nameOrSource.name;
if (name != null) {
if (libraryNameNode == null) {
- libraryErrorReporter.reportErrorForNode(
+ reportErrorReportedByFrontEnd(
ResolverErrorCode.PART_OF_UNNAMED_LIBRARY, partUri, [name]);
} else if (libraryNameNode.name != name) {
- libraryErrorReporter.reportErrorForNode(
+ reportErrorReportedByFrontEnd(
StaticWarningCode.PART_OF_DIFFERENT_LIBRARY,
partUri,
[libraryNameNode.name, name]);
@@ -635,7 +641,7 @@
} else {
Source source = nameOrSource.source;
if (source != _library.source) {
- libraryErrorReporter.reportErrorForNode(
+ reportErrorReportedByFrontEnd(
StaticWarningCode.PART_OF_DIFFERENT_LIBRARY,
partUri,
[_library.uriStr, source.uri]);
@@ -1112,6 +1118,23 @@
context = contextStack.removeLast();
}
+ @override
+ DartType translateType(kernel.DartType kernelType) {
+ if (kernelType == null) {
+ return null;
+ } else if (kernelType is kernel.TypeArgumentsDartType) {
+ // TODO(paulberry): get rid of this case
+ List<kernel.DartType> kernelTypes = kernelType.types;
+ var types = new List<DartType>(kernelTypes.length);
+ for (var i = 0; i < kernelTypes.length; i++) {
+ types[i] = translateType(kernelTypes[i]);
+ }
+ return new TypeArgumentsDartType(types);
+ } else {
+ return resynthesizer.getType(context, kernelType);
+ }
+ }
+
Element _translateDeclaration(int declarationOffset) {
if (declarationOffset == null) return null;
var declaration = localDeclarations[declarationOffset];
@@ -1167,23 +1190,6 @@
return element;
}
}
-
- @override
- DartType translateType(kernel.DartType kernelType) {
- if (kernelType == null) {
- return null;
- } else if (kernelType is kernel.TypeArgumentsDartType) {
- // TODO(paulberry): get rid of this case
- List<kernel.DartType> kernelTypes = kernelType.types;
- var types = new List<DartType>(kernelTypes.length);
- for (var i = 0; i < kernelTypes.length; i++) {
- types[i] = translateType(kernelTypes[i]);
- }
- return new TypeArgumentsDartType(types);
- } else {
- return resynthesizer.getType(context, kernelType);
- }
- }
}
/// [Iterator] like object that provides [CollectedResolution]s.
diff --git a/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart b/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart
index 6c1ab27..85ff725 100644
--- a/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart
+++ b/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart
@@ -810,20 +810,6 @@
@override
@failingTest
- test_duplicatePart_sameSource() async {
- // Expected 1 errors of type CompileTimeErrorCode.DUPLICATE_PART, found 2
- await super.test_duplicatePart_sameSource();
- }
-
- @override
- @failingTest
- test_duplicatePart_sameUri() async {
- // Expected 1 errors of type CompileTimeErrorCode.DUPLICATE_PART, found 2
- await super.test_duplicatePart_sameUri();
- }
-
- @override
- @failingTest
test_exportInternalLibrary() async {
// Expected 1 errors of type CompileTimeErrorCode.EXPORT_INTERNAL_LIBRARY, found 0
await super.test_exportInternalLibrary();
@@ -831,7 +817,7 @@
@override
@failingTest
- @FastaProblem('https://github.com/dart-lang/sdk/issues/30960')
+ @FastaProblem('https://github.com/dart-lang/sdk/issues/30959')
test_exportOfNonLibrary() async {
return super.test_exportOfNonLibrary();
}
@@ -2319,20 +2305,6 @@
@override
@failingTest
- test_partOfNonPart() async {
- // Expected 1 errors of type CompileTimeErrorCode.PART_OF_NON_PART, found 2
- await super.test_partOfNonPart();
- }
-
- @override
- @failingTest
- test_partOfNonPart_self() async {
- // Expected 1 errors of type CompileTimeErrorCode.PART_OF_NON_PART, found 2
- await super.test_partOfNonPart_self();
- }
-
- @override
- @failingTest
test_prefix_conditionalPropertyAccess_call() async {
// Bad state: Expected element reference for analyzer offset 32; got one for kernel offset 35
await super.test_prefix_conditionalPropertyAccess_call();
diff --git a/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart b/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
index ed469b4..019a9b5 100644
--- a/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
+++ b/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
@@ -1561,13 +1561,6 @@
@override
@failingTest
- @AnalyzerProblem('https://github.com/dart-lang/sdk/issues/33674')
- test_partOfDifferentLibrary() async {
- return super.test_partOfDifferentLibrary();
- }
-
- @override
- @failingTest
@potentialAnalyzerProblem
test_redirectToInvalidFunctionType() async {
return super.test_redirectToInvalidFunctionType();
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
index 5131ce0..a78089a 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
@@ -32,40 +32,6 @@
bool get useCFE => true;
@override
- @failingTest
- @potentialAnalyzerProblem
- @AnalyzerProblem('https://github.com/dart-lang/sdk/issues/33674')
- test_analyze_resolveDirectives_error_missingLibraryDirective() async {
- await super.test_analyze_resolveDirectives_error_missingLibraryDirective();
- }
-
- @override
- @failingTest
- @potentialAnalyzerProblem
- @AnalyzerProblem('https://github.com/dart-lang/sdk/issues/33674')
- test_analyze_resolveDirectives_error_partOfDifferentLibrary_byName() async {
- await super
- .test_analyze_resolveDirectives_error_partOfDifferentLibrary_byName();
- }
-
- @override
- @failingTest
- @potentialAnalyzerProblem
- @AnalyzerProblem('https://github.com/dart-lang/sdk/issues/33674')
- test_analyze_resolveDirectives_error_partOfDifferentLibrary_byUri() async {
- await super
- .test_analyze_resolveDirectives_error_partOfDifferentLibrary_byUri();
- }
-
- @override
- @failingTest
- @potentialAnalyzerProblem
- @AnalyzerProblem('https://github.com/dart-lang/sdk/issues/33674')
- test_analyze_resolveDirectives_error_partOfNonPart() async {
- await super.test_analyze_resolveDirectives_error_partOfNonPart();
- }
-
- @override
test_asyncChangesDuringAnalysis_getErrors() async {
// TODO(brianwilkerson) Re-enable this test. It was disabled because it
// appears to be flaky (possibly OS specific).
diff --git a/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart b/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
index 175791d..12d35f9 100644
--- a/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
+++ b/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
@@ -5221,6 +5221,7 @@
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
const MessageCode messagePartOfSelf = const MessageCode("PartOfSelf",
+ analyzerCode: "PART_OF_NON_PART",
message: r"""A file can't be a part of itself.""");
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
diff --git a/pkg/front_end/messages.status b/pkg/front_end/messages.status
index 772abe1..15ced9e 100644
--- a/pkg/front_end/messages.status
+++ b/pkg/front_end/messages.status
@@ -296,7 +296,7 @@
PackageNotFound/example: Fail
PartOfLibraryNameMismatch/dart2jsCode: Fail
PartOfLibraryNameMismatch/example: Fail
-PartOfSelf/analyzerCode: Fail
+PartOfSelf/dart2jsCode: Fail
PartOfTwoLibraries/analyzerCode: Fail # Issue 33227
PartOfUriMismatch/dart2jsCode: Fail
PartOfUriMismatch/example: Fail
diff --git a/pkg/front_end/messages.yaml b/pkg/front_end/messages.yaml
index 4a022c8..a6b4507 100644
--- a/pkg/front_end/messages.yaml
+++ b/pkg/front_end/messages.yaml
@@ -1637,6 +1637,7 @@
PartOfSelf:
template: "A file can't be a part of itself."
+ analyzerCode: PART_OF_NON_PART
script:
main.dart: "part 'main.dart';"