mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 00:39:49 +00:00
Inline FileState.parse2()
Change-Id: I77a8c317bdf4780a3becb4c47d84fcdadfecbea0 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/250486 Reviewed-by: Samuel Rawlins <srawlins@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
parent
b2f41b63dd
commit
bc31ab9e4b
|
@ -29,7 +29,6 @@ import 'package:analyzer/src/exception/exception.dart';
|
|||
import 'package:analyzer/src/generated/parser.dart';
|
||||
import 'package:analyzer/src/generated/source.dart';
|
||||
import 'package:analyzer/src/generated/utilities_dart.dart';
|
||||
import 'package:analyzer/src/ignore_comments/ignore_info.dart';
|
||||
import 'package:analyzer/src/source/source_resource.dart';
|
||||
import 'package:analyzer/src/summary/api_signature.dart';
|
||||
import 'package:analyzer/src/summary/package_bundle_reader.dart';
|
||||
|
@ -557,43 +556,6 @@ class FileState {
|
|||
}
|
||||
}
|
||||
|
||||
/// TODO(scheglov) Remove it when [IgnoreInfo] is stored here.
|
||||
CompilationUnitImpl parse2(
|
||||
AnalysisErrorListener errorListener,
|
||||
String content,
|
||||
) {
|
||||
CharSequenceReader reader = CharSequenceReader(content);
|
||||
Scanner scanner = Scanner(source, reader, errorListener)
|
||||
..configureFeatures(
|
||||
featureSetForOverriding: _contextFeatureSet,
|
||||
featureSet: _contextFeatureSet.restrictToVersion(
|
||||
packageLanguageVersion,
|
||||
),
|
||||
);
|
||||
Token token = scanner.tokenize(reportScannerErrors: false);
|
||||
LineInfo lineInfo = LineInfo(scanner.lineStarts);
|
||||
|
||||
Parser parser = Parser(
|
||||
source,
|
||||
errorListener,
|
||||
featureSet: scanner.featureSet,
|
||||
lineInfo: lineInfo,
|
||||
);
|
||||
parser.enableOptionalNewAndConst = true;
|
||||
|
||||
var unit = parser.parseCompilationUnit(token);
|
||||
unit.languageVersion = LibraryLanguageVersion(
|
||||
package: packageLanguageVersion,
|
||||
override: scanner.overrideVersion,
|
||||
);
|
||||
|
||||
// StringToken uses a static instance of StringCanonicalizer, so we need
|
||||
// to clear it explicitly once we are done using it for this file.
|
||||
StringTokenImpl.canonicalizer.clear();
|
||||
|
||||
return unit;
|
||||
}
|
||||
|
||||
/// Read the file content and ensure that all of the file properties are
|
||||
/// consistent with the read content, including API signature.
|
||||
///
|
||||
|
@ -790,7 +752,36 @@ class FileState {
|
|||
}
|
||||
|
||||
CompilationUnitImpl _parse(AnalysisErrorListener errorListener) {
|
||||
return parse2(errorListener, content);
|
||||
CharSequenceReader reader = CharSequenceReader(content);
|
||||
Scanner scanner = Scanner(source, reader, errorListener)
|
||||
..configureFeatures(
|
||||
featureSetForOverriding: _contextFeatureSet,
|
||||
featureSet: _contextFeatureSet.restrictToVersion(
|
||||
packageLanguageVersion,
|
||||
),
|
||||
);
|
||||
Token token = scanner.tokenize(reportScannerErrors: false);
|
||||
LineInfo lineInfo = LineInfo(scanner.lineStarts);
|
||||
|
||||
Parser parser = Parser(
|
||||
source,
|
||||
errorListener,
|
||||
featureSet: scanner.featureSet,
|
||||
lineInfo: lineInfo,
|
||||
);
|
||||
parser.enableOptionalNewAndConst = true;
|
||||
|
||||
var unit = parser.parseCompilationUnit(token);
|
||||
unit.languageVersion = LibraryLanguageVersion(
|
||||
package: packageLanguageVersion,
|
||||
override: scanner.overrideVersion,
|
||||
);
|
||||
|
||||
// StringToken uses a static instance of StringCanonicalizer, so we need
|
||||
// to clear it explicitly once we are done using it for this file.
|
||||
StringTokenImpl.canonicalizer.clear();
|
||||
|
||||
return unit;
|
||||
}
|
||||
|
||||
/// TODO(scheglov) write tests
|
||||
|
|
|
@ -520,6 +520,7 @@ class LibraryAnalyzer {
|
|||
String content = file.content;
|
||||
var unit = file.parse(errorListener);
|
||||
|
||||
// TODO(scheglov) Store [IgnoreInfo] as unlinked data.
|
||||
_fileToLineInfo[file] = unit.lineInfo;
|
||||
_fileToIgnoreInfo[file] = IgnoreInfo.forDart(unit, content);
|
||||
|
||||
|
|
Loading…
Reference in a new issue