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

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

Issue 2667343005: Infer Null for return type of functions with empty returns. (Closed)
Patch Set: Address comments, fix 28630, ddc expectations Created 3 years, 10 months 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 4711 matching lines...) Expand 10 before | Expand all | Expand 10 after
4722 4722
4723 class TypeProviderForLink extends TypeProviderBase { 4723 class TypeProviderForLink extends TypeProviderBase {
4724 final Linker _linker; 4724 final Linker _linker;
4725 4725
4726 InterfaceType _boolType; 4726 InterfaceType _boolType;
4727 InterfaceType _deprecatedType; 4727 InterfaceType _deprecatedType;
4728 InterfaceType _doubleType; 4728 InterfaceType _doubleType;
4729 InterfaceType _functionType; 4729 InterfaceType _functionType;
4730 InterfaceType _futureDynamicType; 4730 InterfaceType _futureDynamicType;
4731 InterfaceType _futureNullType; 4731 InterfaceType _futureNullType;
4732 InterfaceType _futureOrNullType;
4732 InterfaceType _futureOrType; 4733 InterfaceType _futureOrType;
4733 InterfaceType _futureType; 4734 InterfaceType _futureType;
4734 InterfaceType _intType; 4735 InterfaceType _intType;
4735 InterfaceType _iterableDynamicType; 4736 InterfaceType _iterableDynamicType;
4736 InterfaceType _iterableType; 4737 InterfaceType _iterableType;
4737 InterfaceType _listType; 4738 InterfaceType _listType;
4738 InterfaceType _mapType; 4739 InterfaceType _mapType;
4739 InterfaceType _nullType; 4740 InterfaceType _nullType;
4740 InterfaceType _numType; 4741 InterfaceType _numType;
4741 InterfaceType _objectType; 4742 InterfaceType _objectType;
(...skipping 30 matching lines...) Expand all
4772 4773
4773 @override 4774 @override
4774 InterfaceType get futureDynamicType => 4775 InterfaceType get futureDynamicType =>
4775 _futureDynamicType ??= futureType.instantiate(<DartType>[dynamicType]); 4776 _futureDynamicType ??= futureType.instantiate(<DartType>[dynamicType]);
4776 4777
4777 @override 4778 @override
4778 InterfaceType get futureNullType => 4779 InterfaceType get futureNullType =>
4779 _futureNullType ??= futureType.instantiate(<DartType>[nullType]); 4780 _futureNullType ??= futureType.instantiate(<DartType>[nullType]);
4780 4781
4781 @override 4782 @override
4783 InterfaceType get futureOrNullType =>
4784 _futureOrNullType ??= futureOrType.instantiate(<DartType>[nullType]);
4785
4786 @override
4782 InterfaceType get futureOrType => 4787 InterfaceType get futureOrType =>
4783 _futureOrType ??= _buildInterfaceType(_linker.asyncLibrary, 'FutureOr'); 4788 _futureOrType ??= _buildInterfaceType(_linker.asyncLibrary, 'FutureOr');
4784 4789
4785 @override 4790 @override
4786 InterfaceType get futureType => 4791 InterfaceType get futureType =>
4787 _futureType ??= _buildInterfaceType(_linker.asyncLibrary, 'Future'); 4792 _futureType ??= _buildInterfaceType(_linker.asyncLibrary, 'Future');
4788 4793
4789 @override 4794 @override
4790 InterfaceType get intType => 4795 InterfaceType get intType =>
4791 _intType ??= _buildInterfaceType(_linker.coreLibrary, 'int'); 4796 _intType ??= _buildInterfaceType(_linker.coreLibrary, 'int');
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
5032 * there are no type parameters in scope. 5037 * there are no type parameters in scope.
5033 */ 5038 */
5034 TypeParameterizedElementMixin get _typeParameterContext; 5039 TypeParameterizedElementMixin get _typeParameterContext;
5035 5040
5036 @override 5041 @override
5037 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); 5042 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
5038 5043
5039 @override 5044 @override
5040 String toString() => '$enclosingElement.$name'; 5045 String toString() => '$enclosingElement.$name';
5041 } 5046 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698