diff --git a/pkg/analysis_server/lib/src/server/driver.dart b/pkg/analysis_server/lib/src/server/driver.dart index dc971b89deb..3095df81c36 100644 --- a/pkg/analysis_server/lib/src/server/driver.dart +++ b/pkg/analysis_server/lib/src/server/driver.dart @@ -422,19 +422,10 @@ class Driver implements ServerStarter { .path; } bool useSummaries = analysisServerOptions.fileReadMode == 'as-is'; - SdkCreator defaultSdkCreator = (AnalysisOptions options) { - PhysicalResourceProvider resourceProvider = - PhysicalResourceProvider.INSTANCE; - FolderBasedDartSdk sdk = new FolderBasedDartSdk( - resourceProvider, resourceProvider.getFolder(defaultSdkPath)); - sdk.analysisOptions = options; - sdk.useSummary = useSummaries; - return sdk; - }; // TODO(brianwilkerson) It would be nice to avoid creating an SDK that // cannot be re-used, but the SDK is needed to create a package map provider // in the case where we need to run `pub` in order to get the package map. - DartSdk defaultSdk = defaultSdkCreator(null); + DartSdk defaultSdk = _createDefaultSdk(defaultSdkPath, useSummaries); // // Initialize the instrumentation service. // @@ -458,7 +449,7 @@ class Driver implements ServerStarter { // socketServer = new SocketServer( analysisServerOptions, - new DartSdkManager(defaultSdkPath, useSummaries, defaultSdkCreator), + new DartSdkManager(defaultSdkPath, useSummaries), defaultSdk, service, serverPlugin, @@ -586,6 +577,15 @@ class Driver implements ServerStarter { return parser; } + DartSdk _createDefaultSdk(String defaultSdkPath, bool useSummaries) { + PhysicalResourceProvider resourceProvider = + PhysicalResourceProvider.INSTANCE; + FolderBasedDartSdk sdk = new FolderBasedDartSdk( + resourceProvider, resourceProvider.getFolder(defaultSdkPath)); + sdk.useSummary = useSummaries; + return sdk; + } + /** * Print information about how to use the server. */ diff --git a/pkg/analysis_server/test/analysis_abstract.dart b/pkg/analysis_server/test/analysis_abstract.dart index 40446a9009c..d9f89842f4d 100644 --- a/pkg/analysis_server/test/analysis_abstract.dart +++ b/pkg/analysis_server/test/analysis_abstract.dart @@ -124,9 +124,12 @@ class AbstractAnalysisTest { ExtensionManager manager = new ExtensionManager(); manager.processPlugins(plugins); // + // Create an SDK in the mock file system. + // + new MockSdk(resourceProvider: resourceProvider); + // // Create server // - MockSdk sdk = new MockSdk(resourceProvider: resourceProvider); return new AnalysisServer( serverChannel, resourceProvider, @@ -134,8 +137,7 @@ class AbstractAnalysisTest { index, serverPlugin, new AnalysisServerOptions(), - new DartSdkManager( - resourceProvider.convertPath('/'), false, (_) => sdk), + new DartSdkManager(resourceProvider.convertPath('/'), false), InstrumentationService.NULL_SERVICE); } diff --git a/pkg/analysis_server/test/analysis_server_test.dart b/pkg/analysis_server/test/analysis_server_test.dart index 9c632f9f8ae..a76d57bc6a1 100644 --- a/pkg/analysis_server/test/analysis_server_test.dart +++ b/pkg/analysis_server/test/analysis_server_test.dart @@ -137,7 +137,8 @@ import "../foo/foo.dart"; manager.processPlugins([plugin]); channel = new MockServerChannel(); resourceProvider = new MemoryResourceProvider(); - MockSdk sdk = new MockSdk(resourceProvider: resourceProvider); + // Create an SDK in the mock file system. + new MockSdk(resourceProvider: resourceProvider); packageMapProvider = new MockPackageMapProvider(); server = new AnalysisServer( channel, @@ -146,7 +147,7 @@ import "../foo/foo.dart"; null, plugin, new AnalysisServerOptions(), - new DartSdkManager('/', false, (_) => sdk), + new DartSdkManager('/', false), InstrumentationService.NULL_SERVICE, rethrowExceptions: true); processRequiredPlugins(); diff --git a/pkg/analysis_server/test/context_manager_test.dart b/pkg/analysis_server/test/context_manager_test.dart index 178db278fc6..46414f6cc3e 100644 --- a/pkg/analysis_server/test/context_manager_test.dart +++ b/pkg/analysis_server/test/context_manager_test.dart @@ -1791,8 +1791,9 @@ abstract class ContextManagerTest { processRequiredPlugins(); resourceProvider = new MemoryResourceProvider(); packageMapProvider = new MockPackageMapProvider(); - DartSdk sdk = new MockSdk(resourceProvider: resourceProvider); - DartSdkManager sdkManager = new DartSdkManager('/', false, (_) => sdk); + // Create an SDK in the mock file system. + new MockSdk(resourceProvider: resourceProvider); + DartSdkManager sdkManager = new DartSdkManager('/', false); manager = new ContextManagerImpl( resourceProvider, sdkManager, @@ -2705,7 +2706,7 @@ class TestContextManagerCallbacks extends ContextManagerCallbacks { @override ContextBuilder createContextBuilder(Folder folder, AnalysisOptions options) { - DartSdkManager sdkManager = new DartSdkManager('/', false, null); + DartSdkManager sdkManager = new DartSdkManager('/', false); ContextBuilder builder = new ContextBuilder(resourceProvider, sdkManager, new ContentCache()); builder.defaultOptions = options; diff --git a/pkg/analysis_server/test/domain_analysis_test.dart b/pkg/analysis_server/test/domain_analysis_test.dart index 1f760df0ca3..76d12c8586b 100644 --- a/pkg/analysis_server/test/domain_analysis_test.dart +++ b/pkg/analysis_server/test/domain_analysis_test.dart @@ -23,7 +23,6 @@ import 'mock_sdk.dart'; import 'mocks.dart'; main() { - defineReflectiveSuite(() { defineReflectiveTests(AnalysisDomainTest); defineReflectiveTests(SetSubscriptionsTest); @@ -40,7 +39,8 @@ main() { ExtensionManager manager = new ExtensionManager(); ServerPlugin serverPlugin = new ServerPlugin(); manager.processPlugins([serverPlugin]); - MockSdk sdk = new MockSdk(resourceProvider: resourceProvider); + // Create an SDK in the mock file system. + new MockSdk(resourceProvider: resourceProvider); server = new AnalysisServer( serverChannel, resourceProvider, @@ -48,7 +48,7 @@ main() { null, serverPlugin, new AnalysisServerOptions(), - new DartSdkManager('/', false, (_) => sdk), + new DartSdkManager('/', false), InstrumentationService.NULL_SERVICE); handler = new AnalysisDomainHandler(server); }); @@ -435,7 +435,8 @@ class AnalysisTestHelper { ExtensionManager manager = new ExtensionManager(); ServerPlugin serverPlugin = new ServerPlugin(); manager.processPlugins([serverPlugin]); - MockSdk sdk = new MockSdk(resourceProvider: resourceProvider); + // Create an SDK in the mock file system. + new MockSdk(resourceProvider: resourceProvider); server = new AnalysisServer( serverChannel, resourceProvider, @@ -443,7 +444,7 @@ class AnalysisTestHelper { null, serverPlugin, new AnalysisServerOptions(), - new DartSdkManager('/', false, (_) => sdk), + new DartSdkManager('/', false), InstrumentationService.NULL_SERVICE); handler = new AnalysisDomainHandler(server); // listen for notifications diff --git a/pkg/analysis_server/test/domain_diagnostic_test.dart b/pkg/analysis_server/test/domain_diagnostic_test.dart index 67f0999ffe6..78080e86369 100644 --- a/pkg/analysis_server/test/domain_diagnostic_test.dart +++ b/pkg/analysis_server/test/domain_diagnostic_test.dart @@ -24,7 +24,6 @@ main() { DiagnosticDomainHandler handler; MemoryResourceProvider resourceProvider; - setUp(() { // // Collect plugins @@ -45,7 +44,8 @@ main() { // var serverChannel = new MockServerChannel(); resourceProvider = new MemoryResourceProvider(); - MockSdk sdk = new MockSdk(resourceProvider: resourceProvider); + // Create an SDK in the mock file system. + new MockSdk(resourceProvider: resourceProvider); server = new AnalysisServer( serverChannel, resourceProvider, @@ -53,7 +53,7 @@ main() { null, serverPlugin, new AnalysisServerOptions(), - new DartSdkManager('/', false, (_) => sdk), + new DartSdkManager('/', false), InstrumentationService.NULL_SERVICE); handler = new DiagnosticDomainHandler(server); }); diff --git a/pkg/analysis_server/test/domain_execution_test.dart b/pkg/analysis_server/test/domain_execution_test.dart index 69cff5d3a38..3ed91bd0d1b 100644 --- a/pkg/analysis_server/test/domain_execution_test.dart +++ b/pkg/analysis_server/test/domain_execution_test.dart @@ -25,7 +25,6 @@ import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'package:typed_mock/typed_mock.dart'; import 'analysis_abstract.dart'; -import 'mock_sdk.dart'; import 'mocks.dart'; import 'operation/operation_queue_test.dart'; @@ -49,7 +48,7 @@ main() { null, serverPlugin, new AnalysisServerOptions(), - new DartSdkManager('', false, (_) => new MockSdk()), + new DartSdkManager('', false), InstrumentationService.NULL_SERVICE); handler = new ExecutionDomainHandler(server); }); diff --git a/pkg/analysis_server/test/domain_server_test.dart b/pkg/analysis_server/test/domain_server_test.dart index b6091e15300..4fbb2b0e978 100644 --- a/pkg/analysis_server/test/domain_server_test.dart +++ b/pkg/analysis_server/test/domain_server_test.dart @@ -15,14 +15,12 @@ import 'package:analyzer/src/generated/sdk.dart'; import 'package:plugin/manager.dart'; import 'package:test/test.dart'; -import 'mock_sdk.dart'; import 'mocks.dart'; main() { AnalysisServer server; ServerDomainHandler handler; - setUp(() { var serverChannel = new MockServerChannel(); var resourceProvider = new MemoryResourceProvider(); @@ -36,7 +34,7 @@ main() { null, serverPlugin, new AnalysisServerOptions(), - new DartSdkManager('', false, (_) => new MockSdk()), + new DartSdkManager('', false), InstrumentationService.NULL_SERVICE); handler = new ServerDomainHandler(server); }); diff --git a/pkg/analysis_server/test/single_context_manager_test.dart b/pkg/analysis_server/test/single_context_manager_test.dart index 7ce1e8cc484..97b4ec6f2b8 100644 --- a/pkg/analysis_server/test/single_context_manager_test.dart +++ b/pkg/analysis_server/test/single_context_manager_test.dart @@ -21,7 +21,6 @@ import 'package:test/test.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; import 'context_manager_test.dart' show TestContextManagerCallbacks; -import 'mock_sdk.dart'; import 'mocks.dart'; main() { @@ -64,8 +63,7 @@ class SingleContextManagerTest { packageResolver = new TestUriResolver(); _processRequiredPlugins(); - DartSdkManager sdkManager = - new DartSdkManager('', false, (_) => new MockSdk()); + DartSdkManager sdkManager = new DartSdkManager('', false); manager = new SingleContextManager(resourceProvider, sdkManager, (_) => packageResolver, analysisFilesGlobs, new AnalysisOptionsImpl()); callbacks = new TestContextManagerCallbacks(resourceProvider); diff --git a/pkg/analysis_server/test/socket_server_test.dart b/pkg/analysis_server/test/socket_server_test.dart index 43938dd7a0e..a6ea8b17624 100644 --- a/pkg/analysis_server/test/socket_server_test.dart +++ b/pkg/analysis_server/test/socket_server_test.dart @@ -113,12 +113,11 @@ class SocketServerTest { ServerPlugin serverPlugin = new ServerPlugin(); ExtensionManager manager = new ExtensionManager(); manager.processPlugins([serverPlugin]); - SdkCreator sdkCreator = (_) => new FolderBasedDartSdk(resourceProvider, - FolderBasedDartSdk.defaultSdkDirectory(resourceProvider)); return new SocketServer( new AnalysisServerOptions(), - new DartSdkManager('', false, sdkCreator), - sdkCreator(null), + new DartSdkManager('', false), + new FolderBasedDartSdk(resourceProvider, + FolderBasedDartSdk.defaultSdkDirectory(resourceProvider)), InstrumentationService.NULL_SERVICE, serverPlugin, null, diff --git a/pkg/analyzer/lib/src/generated/sdk.dart b/pkg/analyzer/lib/src/generated/sdk.dart index a6284e1e03d..c3e8e655eb6 100644 --- a/pkg/analyzer/lib/src/generated/sdk.dart +++ b/pkg/analyzer/lib/src/generated/sdk.dart @@ -15,12 +15,6 @@ import 'package:analyzer/src/generated/source.dart' show Source; import 'package:analyzer/src/generated/utilities_general.dart'; import 'package:analyzer/src/summary/idl.dart' show PackageBundle; -/** - * A function used to create a new DartSdk with the given [options]. If the - * passed [options] are `null`, then default options are used. - */ -typedef DartSdk SdkCreator(AnalysisOptions options); - /** * A Dart SDK installed in a specified location. */ @@ -117,11 +111,6 @@ class DartSdkManager { */ final bool canUseSummaries; - /** - * The function used to create new SDK's. - */ - final SdkCreator sdkCreator; - /** * A table mapping (an encoding of) analysis options and SDK locations to the * DartSdk from that location that has been configured with those options. @@ -131,8 +120,7 @@ class DartSdkManager { /** * Initialize a newly created manager. */ - DartSdkManager( - this.defaultSdkDirectory, this.canUseSummaries, this.sdkCreator); + DartSdkManager(this.defaultSdkDirectory, this.canUseSummaries); /** * Return any SDK that has been created, or `null` if no SDKs have been @@ -152,25 +140,13 @@ class DartSdkManager { List get sdkDescriptors => sdkMap.keys.toList(); /** - * Return the Dart SDK that is appropriate for the given analysis [options]. - * If such an SDK has not yet been created, then the [sdkCreator] will be - * invoked to create it. + * Return the Dart SDK that is appropriate for the given SDK [description]. + * If such an SDK has not yet been created, then the [ifAbsent] function will + * be invoked to create it. */ DartSdk getSdk(SdkDescription description, DartSdk ifAbsent()) { return sdkMap.putIfAbsent(description, ifAbsent); } - - /** - * Return the Dart SDK that is appropriate for the given analysis [options]. - * If such an SDK has not yet been created, then the [sdkCreator] will be - * invoked to create it. - */ - DartSdk getSdkForOptions(AnalysisOptions options) { - // TODO(brianwilkerson) Remove this method and the field sdkCreator. - SdkDescription description = - new SdkDescription([defaultSdkDirectory], options); - return getSdk(description, () => sdkCreator(options)); - } } /** diff --git a/pkg/analyzer/test/generated/sdk_test.dart b/pkg/analyzer/test/generated/sdk_test.dart index 7c75a153164..69c774e27ae 100644 --- a/pkg/analyzer/test/generated/sdk_test.dart +++ b/pkg/analyzer/test/generated/sdk_test.dart @@ -22,8 +22,7 @@ main() { @reflectiveTest class DartSdkManagerTest extends EngineTestCase { void test_anySdk() { - DartSdkManager manager = - new DartSdkManager('/a/b/c', false, _failIfCreated); + DartSdkManager manager = new DartSdkManager('/a/b/c', false); expect(manager.anySdk, isNull); AnalysisOptions options = new AnalysisOptionsImpl(); @@ -34,8 +33,7 @@ class DartSdkManagerTest extends EngineTestCase { } void test_getSdk_differentDescriptors() { - DartSdkManager manager = - new DartSdkManager('/a/b/c', false, _failIfCreated); + DartSdkManager manager = new DartSdkManager('/a/b/c', false); AnalysisOptions options = new AnalysisOptionsImpl(); SdkDescription description1 = new SdkDescription(['/c/d'], options); DartSdk sdk1 = new MockSdk(); @@ -51,8 +49,7 @@ class DartSdkManagerTest extends EngineTestCase { } void test_getSdk_sameDescriptor() { - DartSdkManager manager = - new DartSdkManager('/a/b/c', false, _failIfCreated); + DartSdkManager manager = new DartSdkManager('/a/b/c', false); AnalysisOptions options = new AnalysisOptionsImpl(); SdkDescription description = new SdkDescription(['/c/d'], options); DartSdk sdk = new MockSdk(); @@ -65,11 +62,6 @@ class DartSdkManagerTest extends EngineTestCase { fail('Use of ifAbsent function'); return null; } - - DartSdk _failIfCreated(AnalysisOptions _) { - fail('Use of sdkCreator'); - return null; - } } @reflectiveTest diff --git a/pkg/analyzer/test/src/context/builder_test.dart b/pkg/analyzer/test/src/context/builder_test.dart index 895a7f1619f..fe5031cca9d 100644 --- a/pkg/analyzer/test/src/context/builder_test.dart +++ b/pkg/analyzer/test/src/context/builder_test.dart @@ -82,8 +82,7 @@ const Map libraries = const { "core": const LibraryInfo("core/core.dart"), }; '''); - sdkManager = - new DartSdkManager(defaultSdkPath, false, (_) => new MockSdk()); + sdkManager = new DartSdkManager(defaultSdkPath, false); builder = new ContextBuilder(resourceProvider, sdkManager, contentCache); } @@ -97,9 +96,7 @@ const Map libraries = const { pathContext = resourceProvider.pathContext; new MockSdk(resourceProvider: resourceProvider); sdkManager = - new DartSdkManager(resourceProvider.convertPath('/sdk'), false, (_) { - fail('Should not be used to create an SDK'); - }); + new DartSdkManager(resourceProvider.convertPath('/sdk'), false); contentCache = new ContentCache(); builder = new ContextBuilder(resourceProvider, sdkManager, contentCache); } diff --git a/pkg/analyzer/test/stress/for_git_repository.dart b/pkg/analyzer/test/stress/for_git_repository.dart index 445dd4b9a0c..0fe14f3d9a9 100644 --- a/pkg/analyzer/test/stress/for_git_repository.dart +++ b/pkg/analyzer/test/stress/for_git_repository.dart @@ -244,8 +244,7 @@ class StressTest { pathContext = resourceProvider.pathContext; fs.Folder sdkDirectory = FolderBasedDartSdk.defaultSdkDirectory(resourceProvider); - sdkManager = new DartSdkManager(sdkDirectory.path, false, - (_) => new FolderBasedDartSdk(resourceProvider, sdkDirectory)); + sdkManager = new DartSdkManager(sdkDirectory.path, false); contentCache = new ContentCache(); ContextBuilder builder = new ContextBuilder(resourceProvider, sdkManager, contentCache);