Remove DartSdk.analysisOptions getter/setter.

Change-Id: I6bdcd1d8c2e998bf4adbf26ddf533f5d649c73c3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/162620
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
Konstantin Shcheglov 2020-09-12 21:33:26 +00:00 committed by commit-bot@chromium.org
parent 0567babb06
commit c71ce5234d
8 changed files with 21 additions and 67 deletions

View file

@ -1035,7 +1035,7 @@ class ContextManagerImpl implements ContextManager {
/// given [folder].
SourceFactory _createSourceFactory(AnalysisOptions options, Folder folder) {
var builder = callbacks.createContextBuilder(folder, options);
return builder.createSourceFactory(folder.path, options);
return builder.createSourceFactory(folder.path);
}
/// Clean up and destroy the context associated with the given folder.
@ -1398,7 +1398,7 @@ class ContextManagerImpl implements ContextManager {
callbacks.createContextBuilder(info.folder, defaultContextOptions);
var options = builder.getAnalysisOptions(contextRoot,
contextRoot: driver.contextRoot);
var factory = builder.createSourceFactory(contextRoot, options);
var factory = builder.createSourceFactory(contextRoot);
driver.configure(analysisOptions: options, sourceFactory: factory);
callbacks.analysisOptionsUpdated(driver);
}

View file

@ -38,7 +38,6 @@ Uint8List buildSdkSummary({
resourceProvider,
resourceProvider.getFolder(sdkPath),
);
sdk.analysisOptions = AnalysisOptionsImpl();
// Append libraries from the embedder.
if (embedderYamlPath != null) {

View file

@ -114,7 +114,7 @@ class ContextBuilder {
if (builderOptions.librarySummaryPaths != null) {
summaryData = SummaryDataStore(builderOptions.librarySummaryPaths);
}
final sf = createSourceFactory(path, options, summaryData: summaryData);
final sf = createSourceFactory(path, summaryData: summaryData);
AnalysisDriver driver = AnalysisDriver(
analysisDriverScheduler,
@ -198,11 +198,11 @@ class ContextBuilder {
}
}
SourceFactory createSourceFactory(String rootPath, AnalysisOptions options,
SourceFactory createSourceFactory(String rootPath,
{SummaryDataStore summaryData}) {
Workspace workspace =
ContextBuilder.createWorkspace(resourceProvider, rootPath, this);
DartSdk sdk = findSdk(workspace, options);
DartSdk sdk = findSdk(workspace);
if (summaryData != null && sdk is SummaryBasedDartSdk) {
summaryData.addBundle(null, sdk.bundle);
}
@ -220,10 +220,8 @@ class ContextBuilder {
}
/// Return the SDK that should be used to analyze code. Use the given
/// [workspace] and [analysisOptions] to locate the SDK.
///
/// TODO(scheglov) Remove [analysisOptions]?
DartSdk findSdk(Workspace workspace, AnalysisOptions analysisOptions) {
/// [workspace] to locate the SDK.
DartSdk findSdk(Workspace workspace) {
String summaryPath = builderOptions.dartSdkSummaryPath;
if (summaryPath != null) {
return SummaryBasedDartSdk(summaryPath, true,
@ -235,12 +233,10 @@ class ContextBuilder {
String sdkPath = sdkManager.defaultSdkDirectory;
SdkDescription description = SdkDescription(sdkPath);
folderSdk = sdkManager.getSdk(description, () {
var sdk = FolderBasedDartSdk(
return FolderBasedDartSdk(
resourceProvider,
resourceProvider.getFolder(sdkPath),
);
sdk.analysisOptions = analysisOptions;
return sdk;
});
}

View file

@ -35,33 +35,18 @@ abstract class AbstractDartSdk implements DartSdk {
/// A mapping from Dart library URI's to the library represented by that URI.
LibraryMap libraryMap = LibraryMap();
/// The [AnalysisOptions] to use to create the [context].
AnalysisOptions _analysisOptions;
/// The [AnalysisContext] which is used for all of the sources in this SDK.
SdkAnalysisContext _analysisContext;
/// The mapping from Dart URI's to the corresponding sources.
final Map<String, Source> _uriToSourceMap = HashMap<String, Source>();
/// Return the analysis options for this SDK analysis context.
AnalysisOptions get analysisOptions => _analysisOptions;
/// Set the [options] for this SDK analysis context. Throw [StateError] if
/// the context has been already created.
set analysisOptions(AnalysisOptions options) {
if (_analysisContext != null) {
throw StateError(
'Analysis options cannot be changed after context creation.');
}
_analysisOptions = options;
}
@override
AnalysisContext get context {
if (_analysisContext == null) {
var factory = SourceFactory([DartUriResolver(this)]);
_analysisContext = SdkAnalysisContext(_analysisOptions, factory);
var analysisOptions = AnalysisOptionsImpl();
_analysisContext = SdkAnalysisContext(analysisOptions, factory);
}
return _analysisContext;
}

View file

@ -309,9 +309,7 @@ bar:${toUriStr('/pkg/bar')}
newFolder('/workspace/bazel-genfiles');
newFolder(projectPath);
AnalysisOptionsImpl options = AnalysisOptionsImpl();
SourceFactoryImpl factory =
builder.createSourceFactory(projectPath, options);
SourceFactoryImpl factory = builder.createSourceFactory(projectPath);
expect(factory.resolvers,
contains(predicate((r) => r is BazelFileUriResolver)));
expect(factory.resolvers,
@ -326,9 +324,7 @@ bar:${toUriStr('/pkg/bar')}
newFolder(projectPath);
newFile(join(projectPath, '.packages'));
AnalysisOptionsImpl options = AnalysisOptionsImpl();
SourceFactoryImpl factory =
builder.createSourceFactory(projectPath, options);
SourceFactoryImpl factory = builder.createSourceFactory(projectPath);
expect(factory.resolvers,
contains(predicate((r) => r is ResourceUriResolver)));
expect(factory.resolvers,
@ -356,9 +352,8 @@ embedded_libs:
sky_engine:${resourceProvider.pathContext.toUri(skyEnginePath)}
b:${resourceProvider.pathContext.toUri(packageB)}
''');
AnalysisOptionsImpl options = AnalysisOptionsImpl();
SourceFactory factory = builder.createSourceFactory(projectPath, options);
SourceFactory factory = builder.createSourceFactory(projectPath);
Source dartSource = factory.forUri('dart:async');
expect(dartSource, isNotNull);
@ -385,9 +380,8 @@ b:${resourceProvider.pathContext.toUri(packageB)}
a:${resourceProvider.pathContext.toUri(packageA)}
b:${resourceProvider.pathContext.toUri(packageB)}
''');
AnalysisOptionsImpl options = AnalysisOptionsImpl();
SourceFactory factory = builder.createSourceFactory(projectPath, options);
SourceFactory factory = builder.createSourceFactory(projectPath);
Source dartSource = factory.forUri('dart:core');
expect(dartSource, isNotNull);
@ -486,12 +480,12 @@ b:${resourceProvider.pathContext.toUri(packageB)}
}
void test_findSdk_noPackageMap() {
DartSdk sdk = builder.findSdk(null, AnalysisOptionsImpl());
DartSdk sdk = builder.findSdk(null);
expect(sdk, isNotNull);
}
void test_findSdk_noPackageMap_html_strong() {
DartSdk sdk = builder.findSdk(null, AnalysisOptionsImpl());
DartSdk sdk = builder.findSdk(null);
expect(sdk, isNotNull);
Source htmlSource = sdk.mapDartUri('dart:html');
expect(htmlSource.fullName,

View file

@ -127,7 +127,7 @@ abstract class ContextResolutionTest
with ResourceProviderMixin, ResolutionTest {
static bool _lintRulesAreRegistered = false;
final ByteStore _byteStore = MemoryByteStore();
static final ByteStore _byteStore = MemoryByteStore();
Map<String, String> _declaredVariables = {};
AnalysisContextCollection _analysisContextCollection;

View file

@ -5,7 +5,6 @@
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/context/builder.dart' show EmbedderYamlLocator;
import 'package:analyzer/src/dart/sdk/sdk.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/java_engine_io.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
@ -135,24 +134,6 @@ class FolderBasedDartSdkTest with ResourceProviderMixin {
})));
}
void test_analysisOptions_afterContextCreation() {
FolderBasedDartSdk sdk = _createDartSdk();
sdk.context;
expect(() {
sdk.analysisOptions = AnalysisOptionsImpl();
}, throwsStateError);
}
void test_analysisOptions_beforeContextCreation() {
FolderBasedDartSdk sdk = _createDartSdk();
sdk.analysisOptions = AnalysisOptionsImpl();
sdk.context;
// cannot change "analysisOptions" in the context
expect(() {
sdk.context.analysisOptions = AnalysisOptionsImpl();
}, throwsStateError);
}
void test_creation() {
FolderBasedDartSdk sdk = _createDartSdk();
expect(sdk, isNotNull);

View file

@ -439,7 +439,6 @@ class Driver with HasContextMixin implements CommandLineStarter {
} else {
// The embedder uri resolver has mappings, use it instead of the default
// Dart SDK uri resolver.
embedderSdk.analysisOptions = analysisOptions;
resolvers.add(DartUriResolver(embedderSdk));
}
}
@ -648,10 +647,10 @@ class Driver with HasContextMixin implements CommandLineStarter {
sdk = SummaryBasedDartSdk(options.dartSdkSummaryPath, true);
} else {
var dartSdkPath = options.dartSdkPath;
var dartSdk = FolderBasedDartSdk(
resourceProvider, resourceProvider.getFolder(dartSdkPath));
dartSdk.analysisOptions = analysisOptions;
sdk = dartSdk;
sdk = FolderBasedDartSdk(
resourceProvider,
resourceProvider.getFolder(dartSdkPath),
);
}
}
}