diff --git a/lib/src/element_type.dart b/lib/src/element_type.dart index b56dca3336..419d3794c0 100644 --- a/lib/src/element_type.dart +++ b/lib/src/element_type.dart @@ -31,7 +31,7 @@ abstract class ElementType extends Privacy with CommentReferable, Nameable { f.element.kind == ElementKind.DYNAMIC || f.element.kind == ElementKind.NEVER) { if (f is FunctionType) { - if (f.aliasElement != null) { + if (f.alias?.element != null) { return AliasedFunctionTypeElementType( f, library, packageGraph, returnedFrom); } @@ -44,14 +44,14 @@ abstract class ElementType extends Privacy with CommentReferable, Nameable { // In that case it is an actual type alias of some kind (generic // or otherwise. Here however aliasElement signals that this is a // type referring to an alias. - if (f is! TypeAliasElement && f.aliasElement != null) { + if (f is! TypeAliasElement && f.alias?.element != null) { return AliasedElementType( f, library, packageGraph, element, returnedFrom); } assert(f is ParameterizedType || f is TypeParameterType); // TODO(jcollins-g): strip out all the cruft that's accumulated // here for non-generic type aliases. - var isGenericTypeAlias = f.aliasElement != null && f is! InterfaceType; + var isGenericTypeAlias = f.alias?.element != null && f is! InterfaceType; if (f is FunctionType) { assert(f is ParameterizedType); // This is an indication we have an extremely out of date analyzer.... @@ -188,8 +188,8 @@ class AliasedFunctionTypeElementType extends FunctionTypeElementType AliasedFunctionTypeElementType(FunctionType f, Library library, PackageGraph packageGraph, ElementType returnedFrom) : super(f, library, packageGraph, returnedFrom) { - assert(type.aliasElement != null); - assert(type.aliasArguments != null); + assert(type.alias?.element != null); + assert(type.alias?.typeArguments != null); } @override @@ -220,18 +220,18 @@ class ParameterizedElementType extends DefinedElementType with Rendered { /// A [ElementType] whose underlying type was referrred to by a type alias. mixin Aliased implements ElementType { @override - String get name => type.aliasElement.name; + String get name => type.alias.element.name; @override bool get isTypedef => true; ModelElement _aliasElement; ModelElement get aliasElement => _aliasElement ??= - ModelElement.fromElement(type.aliasElement, packageGraph); + ModelElement.fromElement(type.alias.element, packageGraph); Iterable _aliasArguments; Iterable get aliasArguments => - _aliasArguments ??= type.aliasArguments + _aliasArguments ??= type.alias.typeArguments .map((f) => ElementType.from(f, library, packageGraph)) .toList(growable: false); } @@ -240,7 +240,7 @@ class AliasedElementType extends ParameterizedElementType with Aliased { AliasedElementType(ParameterizedType type, Library library, PackageGraph packageGraph, ModelElement element, ElementType returnedFrom) : super(type, library, packageGraph, element, returnedFrom) { - assert(type.aliasElement != null); + assert(type.alias?.element != null); } @override @@ -429,7 +429,7 @@ class CallableElementType extends DefinedElementType with Rendered, Callable { Iterable _typeArguments; @override Iterable get typeArguments => - _typeArguments ??= (type.aliasArguments ?? []) + _typeArguments ??= (type.alias?.typeArguments ?? []) .map((f) => ElementType.from(f, library, packageGraph)) .toList(growable: false); } diff --git a/lib/src/model/package_builder.dart b/lib/src/model/package_builder.dart index d2e90ff489..dd2d7da047 100644 --- a/lib/src/model/package_builder.dart +++ b/lib/src/model/package_builder.dart @@ -155,7 +155,7 @@ class PubPackageBuilder implements PackageBuilder { var analysisContext = contextCollection.contextFor(config.inputDir); var session = analysisContext.currentSession; // Allow dart source files with inappropriate suffixes (#1897). - final library = await session.getResolvedLibrary2(filePath); + final library = await session.getResolvedLibrary(filePath); if (library is ResolvedLibraryResult) { final libraryElement = library.element; var restoredUri = libraryElement.source.uri.toString(); diff --git a/lib/src/package_meta.dart b/lib/src/package_meta.dart index 439e9c6d8c..af7c277e4d 100644 --- a/lib/src/package_meta.dart +++ b/lib/src/package_meta.dart @@ -27,10 +27,11 @@ class PackageMetaFailure extends DartdocFailure { } /// For each list in this list, at least one of the given paths must exist -/// for this to be detected as an SDK. -final List> __sdkDirFilePathsPosix = [ +/// for this to be detected as an SDK. Update [_writeMockSdkBinFiles] in +/// `test/src/utils.dart` if removing any entries here. +const List> _sdkDirFilePathsPosix = [ ['bin/dart.bat', 'bin/dart.exe', 'bin/dart'], - ['bin/pub.bat', 'bin/pub'], + ['include/dart_version.h'], ['lib/core/core.dart'], ]; @@ -161,7 +162,7 @@ abstract class PubPackageMeta extends PackageMeta { if (__sdkDirFilePaths == null) { __sdkDirFilePaths = []; if (Platform.isWindows) { - for (var paths in __sdkDirFilePathsPosix) { + for (var paths in _sdkDirFilePathsPosix) { var windowsPaths = [ for (var path in paths) p.joinAll(p.Context(style: p.Style.posix).split(path)), @@ -169,7 +170,7 @@ abstract class PubPackageMeta extends PackageMeta { __sdkDirFilePaths.add(windowsPaths); } } else { - __sdkDirFilePaths = __sdkDirFilePathsPosix; + __sdkDirFilePaths = _sdkDirFilePathsPosix; } } return __sdkDirFilePaths; @@ -342,12 +343,13 @@ class _FilePackageMeta extends PubPackageMeta { List parameters; if (requiresFlutter) { binPath = p.join(flutterRoot, 'bin', 'flutter'); + if (Platform.isWindows) binPath += '.bat'; parameters = ['pub', 'get']; } else { - binPath = p.join(p.dirname(Platform.resolvedExecutable), 'pub'); - parameters = ['get']; + binPath = p.join(p.dirname(Platform.resolvedExecutable), 'dart'); + if (Platform.isWindows) binPath += '.exe'; + parameters = ['pub', 'get']; } - if (Platform.isWindows) binPath += '.bat'; var result = Process.runSync(binPath, parameters, workingDirectory: dir.path); diff --git a/pubspec.yaml b/pubspec.yaml index 7610241635..93b0d4a543 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -7,7 +7,7 @@ environment: sdk: '>=2.11.99 <3.0.0' dependencies: - analyzer: ^2.0.0 + analyzer: ^2.1.0 args: ^2.0.0 charcode: ^1.2.0 collection: ^1.2.0 diff --git a/test/src/utils.dart b/test/src/utils.dart index 000dfd0e5f..5737a8ec89 100644 --- a/test/src/utils.dart +++ b/test/src/utils.dart @@ -134,7 +134,8 @@ Folder writeMockSdkFiles(MockSdk mockSdk) { void _writeMockSdkBinFiles(Folder root) { var sdkBinFolder = root.getChildAssumingFolder('bin'); sdkBinFolder.getChildAssumingFile('dart').writeAsStringSync(''); - sdkBinFolder.getChildAssumingFile('pub').writeAsStringSync(''); + var sdkIncludeFolder = root.getChildAssumingFolder('include'); + sdkIncludeFolder.getChildAssumingFile('dart_version.h').writeAsStringSync(''); } /// Writes a package named [packageName], with [resourceProvider], to the