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

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

Issue 2734943002: More support for generic function types (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 /** 5 /**
6 * Defines the element model. The element model describes the semantic (as 6 * Defines the element model. The element model describes the semantic (as
7 * opposed to syntactic) structure of Dart code. The syntactic structure of the 7 * opposed to syntactic) structure of Dart code. The syntactic structure of the
8 * code is modeled by the [AST structure](../ast/ast.dart). 8 * code is modeled by the [AST structure](../ast/ast.dart).
9 * 9 *
10 * The element model consists of two closely related kinds of objects: elements 10 * The element model consists of two closely related kinds of objects: elements
(...skipping 1265 matching lines...) Expand 10 before | Expand all | Expand 10 after
1276 * Clients may not extend, implement or mix-in this class. 1276 * Clients may not extend, implement or mix-in this class.
1277 */ 1277 */
1278 abstract class FunctionTypeAliasElement 1278 abstract class FunctionTypeAliasElement
1279 implements FunctionTypedElement, TypeDefiningElement { 1279 implements FunctionTypedElement, TypeDefiningElement {
1280 /** 1280 /**
1281 * An empty array of type alias elements. 1281 * An empty array of type alias elements.
1282 */ 1282 */
1283 static List<FunctionTypeAliasElement> EMPTY_LIST = 1283 static List<FunctionTypeAliasElement> EMPTY_LIST =
1284 new List<FunctionTypeAliasElement>(0); 1284 new List<FunctionTypeAliasElement>(0);
1285 1285
1286 /**
1287 * Return the compilation unit in which this type alias is defined.
1288 */
1289 @override 1286 @override
1290 CompilationUnitElement get enclosingElement; 1287 CompilationUnitElement get enclosingElement;
1291 1288
1292 @override 1289 @override
1293 FunctionTypeAlias computeNode(); 1290 TypeAlias computeNode();
1294 } 1291 }
1295 1292
1296 /** 1293 /**
1297 * An element that has a [FunctionType] as its [type]. 1294 * An element that has a [FunctionType] as its [type].
1298 * 1295 *
1299 * This also provides convenient access to the parameters and return type. 1296 * This also provides convenient access to the parameters and return type.
1300 * 1297 *
1301 * Clients may not extend, implement or mix-in this class. 1298 * Clients may not extend, implement or mix-in this class.
1302 */ 1299 */
1303 abstract class FunctionTypedElement implements TypeParameterizedElement { 1300 abstract class FunctionTypedElement implements TypeParameterizedElement {
1304 /** 1301 /**
1305 * Return a list containing all of the parameters defined by this executable 1302 * Return a list containing all of the parameters defined by this executable
1306 * element. 1303 * element.
1307 */ 1304 */
1308 List<ParameterElement> get parameters; 1305 List<ParameterElement> get parameters;
1309 1306
1310 /** 1307 /**
1311 * Return the return type defined by this element. If the element model is 1308 * Return the return type defined by this element. If the element model is
1312 * fully populated, then the [returnType] will not be `null`, even if no 1309 * fully populated, then the [returnType] will not be `null`, even if no
1313 * return type was explicitly specified. 1310 * return type was explicitly specified.
1314 */ 1311 */
1315 DartType get returnType; 1312 DartType get returnType;
1316 1313
1317 /** 1314 @override
1318 * The type of this element, which will be a function type.
1319 */
1320 FunctionType get type; 1315 FunctionType get type;
1321 } 1316 }
1322 1317
1323 /** 1318 /**
1324 * A combinator that causes some of the names in a namespace to be hidden when 1319 * A combinator that causes some of the names in a namespace to be hidden when
1325 * being imported. 1320 * being imported.
1326 * 1321 *
1327 * Clients may not extend, implement or mix-in this class. 1322 * Clients may not extend, implement or mix-in this class.
1328 */ 1323 */
1329 abstract class HideElementCombinator implements NamespaceCombinator { 1324 abstract class HideElementCombinator implements NamespaceCombinator {
(...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after
2057 DartType get type; 2052 DartType get type;
2058 2053
2059 /** 2054 /**
2060 * Return a representation of the value of this variable, forcing the value 2055 * Return a representation of the value of this variable, forcing the value
2061 * to be computed if it had not previously been computed, or `null` if either 2056 * to be computed if it had not previously been computed, or `null` if either
2062 * this variable was not declared with the 'const' modifier or if the value of 2057 * this variable was not declared with the 'const' modifier or if the value of
2063 * this variable could not be computed because of errors. 2058 * this variable could not be computed because of errors.
2064 */ 2059 */
2065 DartObject computeConstantValue(); 2060 DartObject computeConstantValue();
2066 } 2061 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/dart/element/builder.dart » ('j') | pkg/analyzer/lib/src/dart/element/element.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698