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

Side by Side Diff: pkg/analyzer/lib/src/generated/element.dart

Issue 1462133005: Downwards inference. This adds support to the resolver for downwards (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Address comments 2 Created 5 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) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 library engine.element; 5 library engine.element;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 import 'dart:math' show min; 8 import 'dart:math' show min;
9 9
10 import 'package:analyzer/src/generated/utilities_general.dart'; 10 import 'package:analyzer/src/generated/utilities_general.dart';
(...skipping 7036 matching lines...) Expand 10 before | Expand all | Expand 10 after
7047 result.typeArguments = 7047 result.typeArguments =
7048 typeArguments.map((TypeImpl t) => t.pruned(prune)).toList(); 7048 typeArguments.map((TypeImpl t) => t.pruned(prune)).toList();
7049 return result; 7049 return result;
7050 } 7050 }
7051 } 7051 }
7052 7052
7053 @override 7053 @override
7054 InterfaceTypeImpl substitute2( 7054 InterfaceTypeImpl substitute2(
7055 List<DartType> argumentTypes, List<DartType> parameterTypes, 7055 List<DartType> argumentTypes, List<DartType> parameterTypes,
7056 [List<FunctionTypeAliasElement> prune]) { 7056 [List<FunctionTypeAliasElement> prune]) {
7057 // Pruned types should only ever result from performing type variable
7058 // substitution, and it doesn't make sense to substitute again after
7059 // substituting once.
7060 assert(this.prunedTypedefs == null);
7061 if (argumentTypes.length != parameterTypes.length) { 7057 if (argumentTypes.length != parameterTypes.length) {
7062 throw new IllegalArgumentException( 7058 throw new IllegalArgumentException(
7063 "argumentTypes.length (${argumentTypes.length}) != parameterTypes.leng th (${parameterTypes.length})"); 7059 "argumentTypes.length (${argumentTypes.length}) != parameterTypes.leng th (${parameterTypes.length})");
7064 } 7060 }
7065 if (argumentTypes.length == 0 || typeArguments.length == 0) { 7061 if (argumentTypes.length == 0 || typeArguments.length == 0) {
7066 return this.pruned(prune); 7062 return this.pruned(prune);
7067 } 7063 }
7068 List<DartType> newTypeArguments = TypeImpl.substitute( 7064 List<DartType> newTypeArguments = TypeImpl.substitute(
7069 typeArguments, argumentTypes, parameterTypes, prune); 7065 typeArguments, argumentTypes, parameterTypes, prune);
7070 if (JavaArrays.equals(newTypeArguments, typeArguments)) { 7066 if (JavaArrays.equals(newTypeArguments, typeArguments)) {
(...skipping 4081 matching lines...) Expand 10 before | Expand all | Expand 10 after
11152 11148
11153 @override 11149 @override
11154 void visitElement(Element element) { 11150 void visitElement(Element element) {
11155 int offset = element.nameOffset; 11151 int offset = element.nameOffset;
11156 if (offset != -1) { 11152 if (offset != -1) {
11157 map[offset] = element; 11153 map[offset] = element;
11158 } 11154 }
11159 super.visitElement(element); 11155 super.visitElement(element);
11160 } 11156 }
11161 } 11157 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698