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

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

Issue 2770143002: More generic function type cases working (Closed)
Patch Set: Created 3 years, 9 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) 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 analyzer.src.dart.element.element; 5 library analyzer.src.dart.element.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/dart/ast/ast.dart'; 10 import 'package:analyzer/dart/ast/ast.dart';
(...skipping 5154 matching lines...) Expand 10 before | Expand all | Expand 10 after
5165 @override 5165 @override
5166 int get nameOffset { 5166 int get nameOffset {
5167 int offset = super.nameOffset; 5167 int offset = super.nameOffset;
5168 if (offset == 0 && _unlinkedTypedef != null) { 5168 if (offset == 0 && _unlinkedTypedef != null) {
5169 return _unlinkedTypedef.nameOffset; 5169 return _unlinkedTypedef.nameOffset;
5170 } 5170 }
5171 return offset; 5171 return offset;
5172 } 5172 }
5173 5173
5174 @override 5174 @override
5175 List<ParameterElement> get parameters => function.parameters; 5175 List<ParameterElement> get parameters =>
5176 function?.parameters ?? const <ParameterElement>[];
5176 5177
5177 @override 5178 @override
5178 DartType get returnType => function.returnType; 5179 DartType get returnType => function?.returnType;
5179 5180
5180 @override 5181 @override
5181 FunctionType get type { 5182 FunctionType get type {
5182 if (_unlinkedTypedef != null && _type == null) { 5183 if (_unlinkedTypedef != null && _type == null) {
5183 _type = new FunctionTypeImpl.forTypedef(this); 5184 _type = new FunctionTypeImpl.forTypedef(this);
5184 } 5185 }
5185 return _type; 5186 return _type;
5186 } 5187 }
5187 5188
5188 void set type(FunctionType type) { 5189 void set type(FunctionType type) {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
5220 buffer.write("<"); 5221 buffer.write("<");
5221 for (int i = 0; i < typeParameterCount; i++) { 5222 for (int i = 0; i < typeParameterCount; i++) {
5222 if (i > 0) { 5223 if (i > 0) {
5223 buffer.write(", "); 5224 buffer.write(", ");
5224 } 5225 }
5225 (typeParameters[i] as TypeParameterElementImpl).appendTo(buffer); 5226 (typeParameters[i] as TypeParameterElementImpl).appendTo(buffer);
5226 } 5227 }
5227 buffer.write(">"); 5228 buffer.write(">");
5228 } 5229 }
5229 buffer.write(" = "); 5230 buffer.write(" = ");
5230 (function as FunctionElementImpl).appendTo(buffer); 5231 if (function != null) {
5232 (function as ElementImpl).appendTo(buffer);
5233 }
5231 } 5234 }
5232 5235
5233 @override 5236 @override
5234 FunctionTypeAlias computeNode() => 5237 FunctionTypeAlias computeNode() =>
5235 getNodeMatching((node) => node is GenericTypeAlias); 5238 getNodeMatching((node) => node is GenericTypeAlias);
5236 5239
5237 @override 5240 @override
5238 ElementImpl getChild(String identifier) { 5241 ElementImpl getChild(String identifier) {
5239 for (TypeParameterElement typeParameter in typeParameters) { 5242 for (TypeParameterElement typeParameter in typeParameters) {
5240 TypeParameterElementImpl typeParameterImpl = typeParameter; 5243 TypeParameterElementImpl typeParameterImpl = typeParameter;
(...skipping 3863 matching lines...) Expand 10 before | Expand all | Expand 10 after
9104 9107
9105 @override 9108 @override
9106 void visitElement(Element element) { 9109 void visitElement(Element element) {
9107 int offset = element.nameOffset; 9110 int offset = element.nameOffset;
9108 if (offset != -1) { 9111 if (offset != -1) {
9109 map[offset] = element; 9112 map[offset] = element;
9110 } 9113 }
9111 super.visitElement(element); 9114 super.visitElement(element);
9112 } 9115 }
9113 } 9116 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/dart/element/builder.dart ('k') | pkg/analyzer/lib/src/generated/declaration_resolver.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698