move error token processing to parser
Change-Id: Ic886db54e68206d7ddc9f68bacaaecf9f86aafc0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102461
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
diff --git a/pkg/analyzer/lib/src/dart/analysis/file_state.dart b/pkg/analyzer/lib/src/dart/analysis/file_state.dart
index 9536953..39db159 100644
--- a/pkg/analyzer/lib/src/dart/analysis/file_state.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/file_state.dart
@@ -738,7 +738,7 @@
Scanner scanner = new Scanner(source, reader, errorListener)
..configureFeatures(featureSet);
Token token = PerformanceStatistics.scan.makeCurrentWhile(() {
- return scanner.tokenize();
+ return scanner.tokenize(reportScannerErrors: false);
});
LineInfo lineInfo = new LineInfo(scanner.lineStarts);
diff --git a/pkg/analyzer/lib/src/dart/scanner/scanner.dart b/pkg/analyzer/lib/src/dart/scanner/scanner.dart
index 0d45a9e..12599db 100644
--- a/pkg/analyzer/lib/src/dart/scanner/scanner.dart
+++ b/pkg/analyzer/lib/src/dart/scanner/scanner.dart
@@ -138,6 +138,10 @@
lineStarts.add(offset - column + 1);
}
+ /// The fasta parser handles error tokens produced by the scanner
+ /// but the old parser used by angular does not
+ /// and expects that scanner errors to be reported by this method.
+ /// Set [reportScannerErrors] `true` when using the old parser.
Token tokenize({bool reportScannerErrors = true}) {
fasta.ScannerResult result = fasta.scanString(_contents,
configuration: _featureSet != null