Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(247)

Side by Side Diff: pkg/analyzer/lib/src/summary/link.dart

Issue 2581803002: Add access to FutureOr in TypeProviders (and add implementation in mock sdks) (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * This library is capable of producing linked summaries from unlinked 6 * This library is capable of producing linked summaries from unlinked
7 * ones (or prelinked ones). It functions by building a miniature 7 * ones (or prelinked ones). It functions by building a miniature
8 * element model to represent the contents of the summaries, and then 8 * element model to represent the contents of the summaries, and then
9 * scanning the element model to gather linked information and adding 9 * scanning the element model to gather linked information and adding
10 * it to the summary data structures. 10 * it to the summary data structures.
(...skipping 4638 matching lines...) Expand 10 before | Expand all | Expand 10 after
4649 4649
4650 class TypeProviderForLink extends TypeProviderBase { 4650 class TypeProviderForLink extends TypeProviderBase {
4651 final Linker _linker; 4651 final Linker _linker;
4652 4652
4653 InterfaceType _boolType; 4653 InterfaceType _boolType;
4654 InterfaceType _deprecatedType; 4654 InterfaceType _deprecatedType;
4655 InterfaceType _doubleType; 4655 InterfaceType _doubleType;
4656 InterfaceType _functionType; 4656 InterfaceType _functionType;
4657 InterfaceType _futureDynamicType; 4657 InterfaceType _futureDynamicType;
4658 InterfaceType _futureNullType; 4658 InterfaceType _futureNullType;
4659 InterfaceType _futureOrType;
4659 InterfaceType _futureType; 4660 InterfaceType _futureType;
4660 InterfaceType _intType; 4661 InterfaceType _intType;
4661 InterfaceType _iterableDynamicType; 4662 InterfaceType _iterableDynamicType;
4662 InterfaceType _iterableType; 4663 InterfaceType _iterableType;
4663 InterfaceType _listType; 4664 InterfaceType _listType;
4664 InterfaceType _mapType; 4665 InterfaceType _mapType;
4665 InterfaceType _nullType; 4666 InterfaceType _nullType;
4666 InterfaceType _numType; 4667 InterfaceType _numType;
4667 InterfaceType _objectType; 4668 InterfaceType _objectType;
4668 InterfaceType _stackTraceType; 4669 InterfaceType _stackTraceType;
(...skipping 29 matching lines...) Expand all
4698 4699
4699 @override 4700 @override
4700 InterfaceType get futureDynamicType => 4701 InterfaceType get futureDynamicType =>
4701 _futureDynamicType ??= futureType.instantiate(<DartType>[dynamicType]); 4702 _futureDynamicType ??= futureType.instantiate(<DartType>[dynamicType]);
4702 4703
4703 @override 4704 @override
4704 InterfaceType get futureNullType => 4705 InterfaceType get futureNullType =>
4705 _futureNullType ??= futureType.instantiate(<DartType>[nullType]); 4706 _futureNullType ??= futureType.instantiate(<DartType>[nullType]);
4706 4707
4707 @override 4708 @override
4709 InterfaceType get futureOrType =>
4710 _futureOrType ??= _buildInterfaceType(_linker.asyncLibrary, 'Future');
scheglov 2016/12/15 20:47:58 'FutureOr'?
Brian Wilkerson 2016/12/15 20:54:39 Good catch. Done.
4711
4712 @override
4708 InterfaceType get futureType => 4713 InterfaceType get futureType =>
4709 _futureType ??= _buildInterfaceType(_linker.asyncLibrary, 'Future'); 4714 _futureType ??= _buildInterfaceType(_linker.asyncLibrary, 'Future');
4710 4715
4711 @override 4716 @override
4712 InterfaceType get intType => 4717 InterfaceType get intType =>
4713 _intType ??= _buildInterfaceType(_linker.coreLibrary, 'int'); 4718 _intType ??= _buildInterfaceType(_linker.coreLibrary, 'int');
4714 4719
4715 @override 4720 @override
4716 InterfaceType get iterableDynamicType => _iterableDynamicType ??= 4721 InterfaceType get iterableDynamicType => _iterableDynamicType ??=
4717 iterableType.instantiate(<DartType>[dynamicType]); 4722 iterableType.instantiate(<DartType>[dynamicType]);
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
4948 * there are no type parameters in scope. 4953 * there are no type parameters in scope.
4949 */ 4954 */
4950 TypeParameterizedElementMixin get _typeParameterContext; 4955 TypeParameterizedElementMixin get _typeParameterContext;
4951 4956
4952 @override 4957 @override
4953 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); 4958 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
4954 4959
4955 @override 4960 @override
4956 String toString() => '$enclosingElement.$name'; 4961 String toString() => '$enclosingElement.$name';
4957 } 4962 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/testing/test_type_provider.dart ('k') | pkg/analyzer/lib/src/summary/summary_sdk.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698