| Index: pkg/analyzer/lib/dart/ast/ast.dart
|
| diff --git a/pkg/analyzer/lib/dart/ast/ast.dart b/pkg/analyzer/lib/dart/ast/ast.dart
|
| index 78b3c0668b5217a2130b381489b26bad25f2810d..c36925f0d17607544d5d16390d7632e0c63a3666 100644
|
| --- a/pkg/analyzer/lib/dart/ast/ast.dart
|
| +++ b/pkg/analyzer/lib/dart/ast/ast.dart
|
| @@ -40,6 +40,7 @@ import 'package:analyzer/dart/ast/syntactic_entity.dart';
|
| import 'package:analyzer/dart/ast/token.dart';
|
| import 'package:analyzer/dart/element/element.dart';
|
| import 'package:analyzer/dart/element/type.dart';
|
| +import 'package:analyzer/src/dart/ast/ast.dart';
|
| import 'package:analyzer/src/dart/element/element.dart' show AuxiliaryElements;
|
| import 'package:analyzer/src/generated/java_engine.dart';
|
| import 'package:analyzer/src/generated/source.dart' show LineInfo, Source;
|
| @@ -60,6 +61,12 @@ import 'package:analyzer/src/generated/utilities_dart.dart';
|
| */
|
| abstract class AdjacentStrings extends StringLiteral {
|
| /**
|
| + * Initialize a newly created list of adjacent strings. To be syntactically
|
| + * valid, the list of [strings] must contain at least two elements.
|
| + */
|
| + factory AdjacentStrings(List<StringLiteral> strings) = AdjacentStringsImpl;
|
| +
|
| + /**
|
| * Return the strings that are implicitly concatenated.
|
| */
|
| NodeList<StringLiteral> get strings;
|
| @@ -114,6 +121,16 @@ abstract class AnnotatedNode extends AstNode {
|
| */
|
| abstract class Annotation extends AstNode {
|
| /**
|
| + * Initialize a newly created annotation. Both the [period] and the
|
| + * [constructorName] can be `null` if the annotation is not referencing a
|
| + * named constructor. The [arguments] can be `null` if the annotation is not
|
| + * referencing a constructor.
|
| + */
|
| + factory Annotation(Token atSign, Identifier name, Token period,
|
| + SimpleIdentifier constructorName, ArgumentList arguments) =>
|
| + new AnnotationImpl(atSign, name, period, constructorName, arguments);
|
| +
|
| + /**
|
| * Return the arguments to the constructor being invoked, or `null` if this
|
| * annotation is not the invocation of a constructor.
|
| */
|
| @@ -207,6 +224,13 @@ abstract class Annotation extends AstNode {
|
| */
|
| abstract class ArgumentList extends AstNode {
|
| /**
|
| + * Initialize a newly created list of arguments. The list of [arguments] can
|
| + * be `null` if there are no arguments.
|
| + */
|
| + factory ArgumentList(Token leftParenthesis, List<Expression> arguments,
|
| + Token rightParenthesis) = ArgumentListImpl;
|
| +
|
| + /**
|
| * Return the expressions producing the values of the arguments. Although the
|
| * language requires that positional arguments appear before named arguments,
|
| * this class allows them to be intermixed.
|
| @@ -260,6 +284,13 @@ abstract class ArgumentList extends AstNode {
|
| */
|
| abstract class AsExpression extends Expression {
|
| /**
|
| + * Initialize a newly created as expression.
|
| + */
|
| + factory AsExpression(
|
| + Expression expression, Token asOperator, TypeName type) =>
|
| + new AsExpressionImpl(expression, asOperator, type);
|
| +
|
| + /**
|
| * Return the 'as' operator.
|
| */
|
| Token get asOperator;
|
| @@ -299,7 +330,21 @@ abstract class AsExpression extends Expression {
|
| *
|
| * Clients may not extend, implement or mix-in this class.
|
| */
|
| -abstract class AssertInitializer implements Assertion, ConstructorInitializer {}
|
| +abstract class AssertInitializer implements Assertion, ConstructorInitializer {
|
| + /**
|
| + * Initialize a newly created assert initializer. The [comma] and [message]
|
| + * can be `null` if there is no message.
|
| + */
|
| + factory AssertInitializer(
|
| + Token assertKeyword,
|
| + Token leftParenthesis,
|
| + Expression condition,
|
| + Token comma,
|
| + Expression message,
|
| + Token rightParenthesis) =>
|
| + new AssertInitializerImpl(assertKeyword, leftParenthesis, condition,
|
| + comma, message, rightParenthesis);
|
| +}
|
|
|
| /**
|
| * An assertion, either in a block or in the initializer list of a constructor.
|
| @@ -383,6 +428,21 @@ abstract class Assertion implements AstNode {
|
| */
|
| abstract class AssertStatement implements Assertion, Statement {
|
| /**
|
| + * Initialize a newly created assert statement. The [comma] and [message] can
|
| + * be `null` if there is no message.
|
| + */
|
| + factory AssertStatement(
|
| + Token assertKeyword,
|
| + Token leftParenthesis,
|
| + Expression condition,
|
| + Token comma,
|
| + Expression message,
|
| + Token rightParenthesis,
|
| + Token semicolon) =>
|
| + new AssertStatementImpl(assertKeyword, leftParenthesis, condition, comma,
|
| + message, rightParenthesis, semicolon);
|
| +
|
| + /**
|
| * Return the semicolon terminating the statement.
|
| */
|
| Token get semicolon;
|
| @@ -404,6 +464,13 @@ abstract class AssertStatement implements Assertion, Statement {
|
| abstract class AssignmentExpression extends Expression
|
| implements MethodReferenceExpression {
|
| /**
|
| + * Initialize a newly created assignment expression.
|
| + */
|
| + factory AssignmentExpression(
|
| + Expression leftHandSide, Token operator, Expression rightHandSide) =>
|
| + new AssignmentExpressionImpl(leftHandSide, operator, rightHandSide);
|
| +
|
| + /**
|
| * Return the expression used to compute the left hand side.
|
| */
|
| Expression get leftHandSide;
|
| @@ -789,6 +856,12 @@ abstract class AstVisitor<R> {
|
| */
|
| abstract class AwaitExpression extends Expression {
|
| /**
|
| + * Initialize a newly created await expression.
|
| + */
|
| + factory AwaitExpression(Token awaitKeyword, Expression expression) =>
|
| + new AwaitExpressionImpl(awaitKeyword, expression);
|
| +
|
| + /**
|
| * Return the 'await' keyword.
|
| */
|
| Token get awaitKeyword;
|
| @@ -820,6 +893,13 @@ abstract class AwaitExpression extends Expression {
|
| abstract class BinaryExpression extends Expression
|
| implements MethodReferenceExpression {
|
| /**
|
| + * Initialize a newly created binary expression.
|
| + */
|
| + factory BinaryExpression(
|
| + Expression leftOperand, Token operator, Expression rightOperand) =>
|
| + new BinaryExpressionImpl(leftOperand, operator, rightOperand);
|
| +
|
| + /**
|
| * Return the expression used to compute the left operand.
|
| */
|
| Expression get leftOperand;
|
| @@ -862,6 +942,13 @@ abstract class BinaryExpression extends Expression
|
| */
|
| abstract class Block extends Statement {
|
| /**
|
| + * Initialize a newly created block of code.
|
| + */
|
| + factory Block(
|
| + Token leftBracket, List<Statement> statements, Token rightBracket) =>
|
| + new BlockImpl(leftBracket, statements, rightBracket);
|
| +
|
| + /**
|
| * Return the left curly bracket.
|
| */
|
| Token get leftBracket;
|
| @@ -897,6 +984,15 @@ abstract class Block extends Statement {
|
| */
|
| abstract class BlockFunctionBody extends FunctionBody {
|
| /**
|
| + * Initialize a newly created function body consisting of a block of
|
| + * statements. The [keyword] can be `null` if there is no keyword specified
|
| + * for the block. The [star] can be `null` if there is no star following the
|
| + * keyword (and must be `null` if there is no keyword).
|
| + */
|
| + factory BlockFunctionBody(Token keyword, Token star, Block block) =>
|
| + new BlockFunctionBodyImpl(keyword, star, block);
|
| +
|
| + /**
|
| * Return the block representing the body of the function.
|
| */
|
| Block get block;
|
| @@ -927,6 +1023,11 @@ abstract class BlockFunctionBody extends FunctionBody {
|
| */
|
| abstract class BooleanLiteral extends Literal {
|
| /**
|
| + * Initialize a newly created boolean literal.
|
| + */
|
| + factory BooleanLiteral(Token literal, bool value) = BooleanLiteralImpl;
|
| +
|
| + /**
|
| * Return the token representing the literal.
|
| */
|
| Token get literal;
|
| @@ -952,6 +1053,14 @@ abstract class BooleanLiteral extends Literal {
|
| */
|
| abstract class BreakStatement extends Statement {
|
| /**
|
| + * Initialize a newly created break statement. The [label] can be `null` if
|
| + * there is no label associated with the statement.
|
| + */
|
| + factory BreakStatement(
|
| + Token breakKeyword, SimpleIdentifier label, Token semicolon) =>
|
| + new BreakStatementImpl(breakKeyword, label, semicolon);
|
| +
|
| + /**
|
| * Return the token representing the 'break' keyword.
|
| */
|
| Token get breakKeyword;
|
| @@ -1020,6 +1129,14 @@ abstract class BreakStatement extends Statement {
|
| */
|
| abstract class CascadeExpression extends Expression {
|
| /**
|
| + * Initialize a newly created cascade expression. The list of
|
| + * [cascadeSections] must contain at least one element.
|
| + */
|
| + factory CascadeExpression(
|
| + Expression target, List<Expression> cascadeSections) =>
|
| + new CascadeExpressionImpl(target, cascadeSections);
|
| +
|
| + /**
|
| * Return the cascade sections sharing the common target.
|
| */
|
| NodeList<Expression> get cascadeSections;
|
| @@ -1049,6 +1166,33 @@ abstract class CascadeExpression extends Expression {
|
| */
|
| abstract class CatchClause extends AstNode {
|
| /**
|
| + * Initialize a newly created catch clause. The [onKeyword] and
|
| + * [exceptionType] can be `null` if the clause will catch all exceptions. The
|
| + * [comma] and [stackTraceParameter] can be `null` if the stack trace
|
| + * parameter is not defined.
|
| + */
|
| + factory CatchClause(
|
| + Token onKeyword,
|
| + TypeName exceptionType,
|
| + Token catchKeyword,
|
| + Token leftParenthesis,
|
| + SimpleIdentifier exceptionParameter,
|
| + Token comma,
|
| + SimpleIdentifier stackTraceParameter,
|
| + Token rightParenthesis,
|
| + Block body) =>
|
| + new CatchClauseImpl(
|
| + onKeyword,
|
| + exceptionType,
|
| + catchKeyword,
|
| + leftParenthesis,
|
| + exceptionParameter,
|
| + comma,
|
| + stackTraceParameter,
|
| + rightParenthesis,
|
| + body);
|
| +
|
| + /**
|
| * Return the body of the catch block.
|
| */
|
| Block get body;
|
| @@ -1162,6 +1306,43 @@ abstract class CatchClause extends AstNode {
|
| */
|
| abstract class ClassDeclaration extends NamedCompilationUnitMember {
|
| /**
|
| + * Initialize a newly created class declaration. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the class does not have the
|
| + * corresponding attribute. The [abstractKeyword] can be `null` if the class
|
| + * is not abstract. The [typeParameters] can be `null` if the class does not
|
| + * have any type parameters. Any or all of the [extendsClause], [withClause],
|
| + * and [implementsClause] can be `null` if the class does not have the
|
| + * corresponding clause. The list of [members] can be `null` if the class does
|
| + * not have any members.
|
| + */
|
| + factory ClassDeclaration(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + Token abstractKeyword,
|
| + Token classKeyword,
|
| + SimpleIdentifier name,
|
| + TypeParameterList typeParameters,
|
| + ExtendsClause extendsClause,
|
| + WithClause withClause,
|
| + ImplementsClause implementsClause,
|
| + Token leftBracket,
|
| + List<ClassMember> members,
|
| + Token rightBracket) =>
|
| + new ClassDeclarationImpl(
|
| + comment,
|
| + metadata,
|
| + abstractKeyword,
|
| + classKeyword,
|
| + name,
|
| + typeParameters,
|
| + extendsClause,
|
| + withClause,
|
| + implementsClause,
|
| + leftBracket,
|
| + members,
|
| + rightBracket);
|
| +
|
| + /**
|
| * Return the 'abstract' keyword, or `null` if the keyword was absent.
|
| */
|
| Token get abstractKeyword;
|
| @@ -1309,6 +1490,39 @@ abstract class ClassMember extends Declaration {}
|
| */
|
| abstract class ClassTypeAlias extends TypeAlias {
|
| /**
|
| + * Initialize a newly created class type alias. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the class type alias does not
|
| + * have the corresponding attribute. The [typeParameters] can be `null` if the
|
| + * class does not have any type parameters. The [abstractKeyword] can be
|
| + * `null` if the class is not abstract. The [implementsClause] can be `null`
|
| + * if the class does not implement any interfaces.
|
| + */
|
| + factory ClassTypeAlias(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + Token keyword,
|
| + SimpleIdentifier name,
|
| + TypeParameterList typeParameters,
|
| + Token equals,
|
| + Token abstractKeyword,
|
| + TypeName superclass,
|
| + WithClause withClause,
|
| + ImplementsClause implementsClause,
|
| + Token semicolon) =>
|
| + new ClassTypeAliasImpl(
|
| + comment,
|
| + metadata,
|
| + keyword,
|
| + name,
|
| + typeParameters,
|
| + equals,
|
| + abstractKeyword,
|
| + superclass,
|
| + withClause,
|
| + implementsClause,
|
| + semicolon);
|
| +
|
| + /**
|
| * Return the token for the 'abstract' keyword, or `null` if this is not
|
| * defining an abstract class.
|
| */
|
| @@ -1424,6 +1638,15 @@ abstract class Combinator extends AstNode {
|
| */
|
| abstract class Comment extends AstNode {
|
| /**
|
| + * Initialize a newly created comment. The list of [tokens] must contain at
|
| + * least one token. The [type] is the type of the comment. The list of
|
| + * [references] can be empty if the comment does not contain any embedded
|
| + * references.
|
| + */
|
| + factory Comment(List<Token> tokens, CommentType type,
|
| + List<CommentReference> references) = CommentImpl;
|
| +
|
| + /**
|
| * Return `true` if this is a block comment.
|
| */
|
| bool get isBlock;
|
| @@ -1447,6 +1670,32 @@ abstract class Comment extends AstNode {
|
| * Return the tokens representing the comment.
|
| */
|
| List<Token> get tokens;
|
| +
|
| + /**
|
| + * Create a block comment consisting of the given [tokens].
|
| + */
|
| + static Comment createBlockComment(List<Token> tokens) =>
|
| + CommentImpl.createBlockComment(tokens);
|
| +
|
| + /**
|
| + * Create a documentation comment consisting of the given [tokens].
|
| + */
|
| + static Comment createDocumentationComment(List<Token> tokens) =>
|
| + CommentImpl.createDocumentationComment(tokens);
|
| +
|
| + /**
|
| + * Create a documentation comment consisting of the given [tokens] and having
|
| + * the given [references] embedded within it.
|
| + */
|
| + static Comment createDocumentationCommentWithReferences(
|
| + List<Token> tokens, List<CommentReference> references) =>
|
| + CommentImpl.createDocumentationCommentWithReferences(tokens, references);
|
| +
|
| + /**
|
| + * Create an end-of-line comment consisting of the given [tokens].
|
| + */
|
| + static Comment createEndOfLineComment(List<Token> tokens) =>
|
| + CommentImpl.createEndOfLineComment(tokens);
|
| }
|
|
|
| /**
|
| @@ -1459,6 +1708,13 @@ abstract class Comment extends AstNode {
|
| */
|
| abstract class CommentReference extends AstNode {
|
| /**
|
| + * Initialize a newly created reference to a Dart element. The [newKeyword]
|
| + * can be `null` if the reference is not to a constructor.
|
| + */
|
| + factory CommentReference(Token newKeyword, Identifier identifier) =>
|
| + new CommentReferenceImpl(newKeyword, identifier);
|
| +
|
| + /**
|
| * Return the identifier being referenced.
|
| */
|
| Identifier get identifier;
|
| @@ -1507,6 +1763,22 @@ abstract class CommentReference extends AstNode {
|
| */
|
| abstract class CompilationUnit extends AstNode {
|
| /**
|
| + * Initialize a newly created compilation unit to have the given directives
|
| + * and declarations. The [scriptTag] can be `null` if there is no script tag
|
| + * in the compilation unit. The list of [directives] can be `null` if there
|
| + * are no directives in the compilation unit. The list of [declarations] can
|
| + * be `null` if there are no declarations in the compilation unit.
|
| + */
|
| + factory CompilationUnit(
|
| + Token beginToken,
|
| + ScriptTag scriptTag,
|
| + List<Directive> directives,
|
| + List<CompilationUnitMember> declarations,
|
| + Token endToken) =>
|
| + new CompilationUnitImpl(
|
| + beginToken, scriptTag, directives, declarations, endToken);
|
| +
|
| + /**
|
| * Set the first token included in this node's source range to the given
|
| * [token].
|
| */
|
| @@ -1595,6 +1867,14 @@ abstract class CompilationUnitMember extends Declaration {}
|
| */
|
| abstract class ConditionalExpression extends Expression {
|
| /**
|
| + * Initialize a newly created conditional expression.
|
| + */
|
| + factory ConditionalExpression(Expression condition, Token question,
|
| + Expression thenExpression, Token colon, Expression elseExpression) =>
|
| + new ConditionalExpressionImpl(
|
| + condition, question, thenExpression, colon, elseExpression);
|
| +
|
| + /**
|
| * Return the token used to separate the then expression from the else
|
| * expression.
|
| */
|
| @@ -1670,6 +1950,20 @@ abstract class ConditionalExpression extends Expression {
|
| */
|
| abstract class Configuration extends AstNode {
|
| /**
|
| + * Initialize a newly created configuration.
|
| + */
|
| + factory Configuration(
|
| + Token ifKeyword,
|
| + Token leftParenthesis,
|
| + DottedName name,
|
| + Token equalToken,
|
| + StringLiteral value,
|
| + Token rightParenthesis,
|
| + StringLiteral libraryUri) =>
|
| + new ConfigurationImpl(ifKeyword, leftParenthesis, name, equalToken, value,
|
| + rightParenthesis, libraryUri);
|
| +
|
| + /**
|
| * Return the token for the equal operator, or `null` if the condition does
|
| * not include an equality test.
|
| */
|
| @@ -1796,6 +2090,50 @@ abstract class Configuration extends AstNode {
|
| */
|
| abstract class ConstructorDeclaration extends ClassMember {
|
| /**
|
| + * Initialize a newly created constructor declaration. The [externalKeyword]
|
| + * can be `null` if the constructor is not external. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the constructor does not have the
|
| + * corresponding attribute. The [constKeyword] can be `null` if the
|
| + * constructor cannot be used to create a constant. The [factoryKeyword] can
|
| + * be `null` if the constructor is not a factory. The [period] and [name] can
|
| + * both be `null` if the constructor is not a named constructor. The
|
| + * [separator] can be `null` if the constructor does not have any initializers
|
| + * and does not redirect to a different constructor. The list of
|
| + * [initializers] can be `null` if the constructor does not have any
|
| + * initializers. The [redirectedConstructor] can be `null` if the constructor
|
| + * does not redirect to a different constructor. The [body] can be `null` if
|
| + * the constructor does not have a body.
|
| + */
|
| + factory ConstructorDeclaration(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + Token externalKeyword,
|
| + Token constKeyword,
|
| + Token factoryKeyword,
|
| + Identifier returnType,
|
| + Token period,
|
| + SimpleIdentifier name,
|
| + FormalParameterList parameters,
|
| + Token separator,
|
| + List<ConstructorInitializer> initializers,
|
| + ConstructorName redirectedConstructor,
|
| + FunctionBody body) =>
|
| + new ConstructorDeclarationImpl(
|
| + comment,
|
| + metadata,
|
| + externalKeyword,
|
| + constKeyword,
|
| + factoryKeyword,
|
| + returnType,
|
| + period,
|
| + name,
|
| + parameters,
|
| + separator,
|
| + initializers,
|
| + redirectedConstructor,
|
| + body);
|
| +
|
| + /**
|
| * Return the body of the constructor, or `null` if the constructor does not
|
| * have a body.
|
| */
|
| @@ -1933,6 +2271,16 @@ abstract class ConstructorDeclaration extends ClassMember {
|
| */
|
| abstract class ConstructorFieldInitializer extends ConstructorInitializer {
|
| /**
|
| + * Initialize a newly created field initializer to initialize the field with
|
| + * the given name to the value of the given expression. The [thisKeyword] and
|
| + * [period] can be `null` if the 'this' keyword was not specified.
|
| + */
|
| + factory ConstructorFieldInitializer(Token thisKeyword, Token period,
|
| + SimpleIdentifier fieldName, Token equals, Expression expression) =>
|
| + new ConstructorFieldInitializerImpl(
|
| + thisKeyword, period, fieldName, equals, expression);
|
| +
|
| + /**
|
| * Return the token for the equal sign between the field name and the
|
| * expression.
|
| */
|
| @@ -2012,6 +2360,13 @@ abstract class ConstructorInitializer extends AstNode {}
|
| abstract class ConstructorName extends AstNode
|
| implements ConstructorReferenceNode {
|
| /**
|
| + * Initialize a newly created constructor name. The [period] and [name] can be
|
| + * `null` if the constructor being named is the unnamed constructor.
|
| + */
|
| + factory ConstructorName(TypeName type, Token period, SimpleIdentifier name) =>
|
| + new ConstructorNameImpl(type, period, name);
|
| +
|
| + /**
|
| * Return the name of the constructor, or `null` if the specified constructor
|
| * is the unnamed constructor.
|
| */
|
| @@ -2075,6 +2430,14 @@ abstract class ConstructorReferenceNode {
|
| */
|
| abstract class ContinueStatement extends Statement {
|
| /**
|
| + * Initialize a newly created continue statement. The [label] can be `null` if
|
| + * there is no label associated with the statement.
|
| + */
|
| + factory ContinueStatement(
|
| + Token continueKeyword, SimpleIdentifier label, Token semicolon) =>
|
| + new ContinueStatementImpl(continueKeyword, label, semicolon);
|
| +
|
| + /**
|
| * Return the token representing the 'continue' keyword.
|
| */
|
| Token get continueKeyword;
|
| @@ -2146,6 +2509,16 @@ abstract class Declaration extends AnnotatedNode {
|
| * Clients may not extend, implement or mix-in this class.
|
| */
|
| abstract class DeclaredIdentifier extends Declaration {
|
| + /**
|
| + * Initialize a newly created formal parameter. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the declaration does not have the
|
| + * corresponding attribute. The [keyword] can be `null` if a type name is
|
| + * given. The [type] must be `null` if the keyword is 'var'.
|
| + */
|
| + factory DeclaredIdentifier(Comment comment, List<Annotation> metadata,
|
| + Token keyword, TypeName type, SimpleIdentifier identifier) =>
|
| + new DeclaredIdentifierImpl(comment, metadata, keyword, type, identifier);
|
| +
|
| @override
|
| LocalVariableElement get element;
|
|
|
| @@ -2210,6 +2583,14 @@ abstract class DeclaredIdentifier extends Declaration {
|
| */
|
| abstract class DefaultFormalParameter extends FormalParameter {
|
| /**
|
| + * Initialize a newly created default formal parameter. The [separator] and
|
| + * [defaultValue] can be `null` if there is no default value.
|
| + */
|
| + factory DefaultFormalParameter(NormalFormalParameter parameter,
|
| + ParameterKind kind, Token separator, Expression defaultValue) =>
|
| + new DefaultFormalParameterImpl(parameter, kind, separator, defaultValue);
|
| +
|
| + /**
|
| * Return the expression computing the default value for the parameter, or
|
| * `null` if there is no default value.
|
| */
|
| @@ -2291,6 +2672,20 @@ abstract class Directive extends AnnotatedNode {
|
| */
|
| abstract class DoStatement extends Statement {
|
| /**
|
| + * Initialize a newly created do loop.
|
| + */
|
| + factory DoStatement(
|
| + Token doKeyword,
|
| + Statement body,
|
| + Token whileKeyword,
|
| + Token leftParenthesis,
|
| + Expression condition,
|
| + Token rightParenthesis,
|
| + Token semicolon) =>
|
| + new DoStatementImpl(doKeyword, body, whileKeyword, leftParenthesis,
|
| + condition, rightParenthesis, semicolon);
|
| +
|
| + /**
|
| * Return the body of the loop.
|
| */
|
| Statement get body;
|
| @@ -2372,6 +2767,11 @@ abstract class DoStatement extends Statement {
|
| */
|
| abstract class DottedName extends AstNode {
|
| /**
|
| + * Initialize a newly created dotted name.
|
| + */
|
| + factory DottedName(List<SimpleIdentifier> components) = DottedNameImpl;
|
| +
|
| + /**
|
| * Return the components of the identifier.
|
| */
|
| NodeList<SimpleIdentifier> get components;
|
| @@ -2391,6 +2791,11 @@ abstract class DottedName extends AstNode {
|
| */
|
| abstract class DoubleLiteral extends Literal {
|
| /**
|
| + * Initialize a newly created floating point literal.
|
| + */
|
| + factory DoubleLiteral(Token literal, double value) = DoubleLiteralImpl;
|
| +
|
| + /**
|
| * Return the token representing the literal.
|
| */
|
| Token get literal;
|
| @@ -2422,6 +2827,11 @@ abstract class DoubleLiteral extends Literal {
|
| */
|
| abstract class EmptyFunctionBody extends FunctionBody {
|
| /**
|
| + * Initialize a newly created function body.
|
| + */
|
| + factory EmptyFunctionBody(Token semicolon) = EmptyFunctionBodyImpl;
|
| +
|
| + /**
|
| * Return the token representing the semicolon that marks the end of the
|
| * function body.
|
| */
|
| @@ -2444,6 +2854,11 @@ abstract class EmptyFunctionBody extends FunctionBody {
|
| */
|
| abstract class EmptyStatement extends Statement {
|
| /**
|
| + * Initialize a newly created empty statement.
|
| + */
|
| + factory EmptyStatement(Token semicolon) = EmptyStatementImpl;
|
| +
|
| + /**
|
| * Return the semicolon terminating the statement.
|
| */
|
| Token get semicolon;
|
| @@ -2461,6 +2876,16 @@ abstract class EmptyStatement extends Statement {
|
| */
|
| abstract class EnumConstantDeclaration extends Declaration {
|
| /**
|
| + * Initialize a newly created enum constant declaration. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the constant does not have the
|
| + * corresponding attribute. (Technically, enum constants cannot have metadata,
|
| + * but we allow it for consistency.)
|
| + */
|
| + factory EnumConstantDeclaration(
|
| + Comment comment, List<Annotation> metadata, SimpleIdentifier name) =>
|
| + new EnumConstantDeclarationImpl(comment, metadata, name);
|
| +
|
| + /**
|
| * Return the name of the constant.
|
| */
|
| SimpleIdentifier get name;
|
| @@ -2481,6 +2906,23 @@ abstract class EnumConstantDeclaration extends Declaration {
|
| */
|
| abstract class EnumDeclaration extends NamedCompilationUnitMember {
|
| /**
|
| + * Initialize a newly created enumeration declaration. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the declaration does not have the
|
| + * corresponding attribute. The list of [constants] must contain at least one
|
| + * value.
|
| + */
|
| + factory EnumDeclaration(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + Token enumKeyword,
|
| + SimpleIdentifier name,
|
| + Token leftBracket,
|
| + List<EnumConstantDeclaration> constants,
|
| + Token rightBracket) =>
|
| + new EnumDeclarationImpl(comment, metadata, enumKeyword, name, leftBracket,
|
| + constants, rightBracket);
|
| +
|
| + /**
|
| * Return the enumeration constants being declared.
|
| */
|
| NodeList<EnumConstantDeclaration> get constants;
|
| @@ -2527,7 +2969,24 @@ abstract class EnumDeclaration extends NamedCompilationUnitMember {
|
| *
|
| * Clients may not extend, implement or mix-in this class.
|
| */
|
| -abstract class ExportDirective extends NamespaceDirective {}
|
| +abstract class ExportDirective extends NamespaceDirective {
|
| + /**
|
| + * Initialize a newly created export directive. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the directive does not have the
|
| + * corresponding attribute. The list of [combinators] can be `null` if there
|
| + * are no combinators.
|
| + */
|
| + factory ExportDirective(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + Token keyword,
|
| + StringLiteral libraryUri,
|
| + List<Configuration> configurations,
|
| + List<Combinator> combinators,
|
| + Token semicolon) =>
|
| + new ExportDirectiveImpl(comment, metadata, keyword, libraryUri,
|
| + configurations, combinators, semicolon);
|
| +}
|
|
|
| /**
|
| * A node that represents an expression.
|
| @@ -2640,6 +3099,16 @@ abstract class Expression extends AstNode {
|
| */
|
| abstract class ExpressionFunctionBody extends FunctionBody {
|
| /**
|
| + * Initialize a newly created function body consisting of a block of
|
| + * statements. The [keyword] can be `null` if the function body is not an
|
| + * async function body.
|
| + */
|
| + factory ExpressionFunctionBody(Token keyword, Token functionDefinition,
|
| + Expression expression, Token semicolon) =>
|
| + new ExpressionFunctionBodyImpl(
|
| + keyword, functionDefinition, expression, semicolon);
|
| +
|
| + /**
|
| * Return the expression representing the body of the function.
|
| */
|
| Expression get expression;
|
| @@ -2688,6 +3157,12 @@ abstract class ExpressionFunctionBody extends FunctionBody {
|
| */
|
| abstract class ExpressionStatement extends Statement {
|
| /**
|
| + * Initialize a newly created expression statement.
|
| + */
|
| + factory ExpressionStatement(Expression expression, Token semicolon) =>
|
| + new ExpressionStatementImpl(expression, semicolon);
|
| +
|
| + /**
|
| * Return the expression that comprises the statement.
|
| */
|
| Expression get expression;
|
| @@ -2719,6 +3194,12 @@ abstract class ExpressionStatement extends Statement {
|
| */
|
| abstract class ExtendsClause extends AstNode {
|
| /**
|
| + * Initialize a newly created extends clause.
|
| + */
|
| + factory ExtendsClause(Token extendsKeyword, TypeName superclass) =>
|
| + new ExtendsClauseImpl(extendsKeyword, superclass);
|
| +
|
| + /**
|
| * Return the token representing the 'extends' keyword.
|
| */
|
| Token get extendsKeyword;
|
| @@ -2749,6 +3230,21 @@ abstract class ExtendsClause extends AstNode {
|
| */
|
| abstract class FieldDeclaration extends ClassMember {
|
| /**
|
| + * Initialize a newly created field declaration. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the declaration does not have the
|
| + * corresponding attribute. The [staticKeyword] can be `null` if the field is
|
| + * not a static field.
|
| + */
|
| + factory FieldDeclaration(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + Token staticKeyword,
|
| + VariableDeclarationList fieldList,
|
| + Token semicolon) =>
|
| + new FieldDeclarationImpl(
|
| + comment, metadata, staticKeyword, fieldList, semicolon);
|
| +
|
| + /**
|
| * Return the fields being declared.
|
| */
|
| VariableDeclarationList get fields;
|
| @@ -2796,6 +3292,28 @@ abstract class FieldDeclaration extends ClassMember {
|
| */
|
| abstract class FieldFormalParameter extends NormalFormalParameter {
|
| /**
|
| + * Initialize a newly created formal parameter. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the parameter does not have the
|
| + * corresponding attribute. The [keyword] can be `null` if there is a type.
|
| + * The [type] must be `null` if the keyword is 'var'. The [thisKeyword] and
|
| + * [period] can be `null` if the keyword 'this' was not provided. The
|
| + * [parameters] can be `null` if this is not a function-typed field formal
|
| + * parameter.
|
| + */
|
| + factory FieldFormalParameter(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + Token keyword,
|
| + TypeName type,
|
| + Token thisKeyword,
|
| + Token period,
|
| + SimpleIdentifier identifier,
|
| + TypeParameterList typeParameters,
|
| + FormalParameterList parameters) =>
|
| + new FieldFormalParameterImpl(comment, metadata, keyword, type,
|
| + thisKeyword, period, identifier, typeParameters, parameters);
|
| +
|
| + /**
|
| * Return the token representing either the 'final', 'const' or 'var' keyword,
|
| * or `null` if no keyword was used.
|
| */
|
| @@ -2876,6 +3394,54 @@ abstract class FieldFormalParameter extends NormalFormalParameter {
|
| */
|
| abstract class ForEachStatement extends Statement {
|
| /**
|
| + * Initialize a newly created for-each statement whose loop control variable
|
| + * is declared internally (in the for-loop part). The [awaitKeyword] can be
|
| + * `null` if this is not an asynchronous for loop.
|
| + */
|
| + factory ForEachStatement.withDeclaration(
|
| + Token awaitKeyword,
|
| + Token forKeyword,
|
| + Token leftParenthesis,
|
| + DeclaredIdentifier loopVariable,
|
| + Token inKeyword,
|
| + Expression iterator,
|
| + Token rightParenthesis,
|
| + Statement body) =>
|
| + new ForEachStatementImpl.withDeclaration(
|
| + awaitKeyword,
|
| + forKeyword,
|
| + leftParenthesis,
|
| + loopVariable,
|
| + inKeyword,
|
| + iterator,
|
| + rightParenthesis,
|
| + body);
|
| +
|
| + /**
|
| + * Initialize a newly created for-each statement whose loop control variable
|
| + * is declared outside the for loop. The [awaitKeyword] can be `null` if this
|
| + * is not an asynchronous for loop.
|
| + */
|
| + factory ForEachStatement.withReference(
|
| + Token awaitKeyword,
|
| + Token forKeyword,
|
| + Token leftParenthesis,
|
| + SimpleIdentifier identifier,
|
| + Token inKeyword,
|
| + Expression iterator,
|
| + Token rightParenthesis,
|
| + Statement body) =>
|
| + new ForEachStatementImpl.withReference(
|
| + awaitKeyword,
|
| + forKeyword,
|
| + leftParenthesis,
|
| + identifier,
|
| + inKeyword,
|
| + iterator,
|
| + rightParenthesis,
|
| + body);
|
| +
|
| + /**
|
| * Return the token representing the 'await' keyword, or `null` if there is no
|
| * 'await' keyword.
|
| */
|
| @@ -3046,6 +3612,18 @@ abstract class FormalParameter extends AstNode {
|
| */
|
| abstract class FormalParameterList extends AstNode {
|
| /**
|
| + * Initialize a newly created parameter list. The list of [parameters] can be
|
| + * `null` if there are no parameters. The [leftDelimiter] and [rightDelimiter]
|
| + * can be `null` if there are no optional parameters.
|
| + */
|
| + factory FormalParameterList(
|
| + Token leftParenthesis,
|
| + List<FormalParameter> parameters,
|
| + Token leftDelimiter,
|
| + Token rightDelimiter,
|
| + Token rightParenthesis) = FormalParameterListImpl;
|
| +
|
| + /**
|
| * Return the left square bracket ('[') or left curly brace ('{') introducing
|
| * the optional parameters, or `null` if there are no optional parameters.
|
| */
|
| @@ -3119,6 +3697,35 @@ abstract class FormalParameterList extends AstNode {
|
| */
|
| abstract class ForStatement extends Statement {
|
| /**
|
| + * Initialize a newly created for statement. Either the [variableList] or the
|
| + * [initialization] must be `null`. Either the [condition] and the list of
|
| + * [updaters] can be `null` if the loop does not have the corresponding
|
| + * attribute.
|
| + */
|
| + factory ForStatement(
|
| + Token forKeyword,
|
| + Token leftParenthesis,
|
| + VariableDeclarationList variableList,
|
| + Expression initialization,
|
| + Token leftSeparator,
|
| + Expression condition,
|
| + Token rightSeparator,
|
| + List<Expression> updaters,
|
| + Token rightParenthesis,
|
| + Statement body) =>
|
| + new ForStatementImpl(
|
| + forKeyword,
|
| + leftParenthesis,
|
| + variableList,
|
| + initialization,
|
| + leftSeparator,
|
| + condition,
|
| + rightSeparator,
|
| + updaters,
|
| + rightParenthesis,
|
| + body);
|
| +
|
| + /**
|
| * Return the body of the loop.
|
| */
|
| Statement get body;
|
| @@ -3298,6 +3905,25 @@ abstract class FunctionBody extends AstNode {
|
| * Clients may not extend, implement or mix-in this class.
|
| */
|
| abstract class FunctionDeclaration extends NamedCompilationUnitMember {
|
| + /**
|
| + * Initialize a newly created function declaration. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the function does not have the
|
| + * corresponding attribute. The [externalKeyword] can be `null` if the
|
| + * function is not an external function. The [returnType] can be `null` if no
|
| + * return type was specified. The [propertyKeyword] can be `null` if the
|
| + * function is neither a getter or a setter.
|
| + */
|
| + factory FunctionDeclaration(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + Token externalKeyword,
|
| + TypeName returnType,
|
| + Token propertyKeyword,
|
| + SimpleIdentifier name,
|
| + FunctionExpression functionExpression) =>
|
| + new FunctionDeclarationImpl(comment, metadata, externalKeyword,
|
| + returnType, propertyKeyword, name, functionExpression);
|
| +
|
| @override
|
| ExecutableElement get element;
|
|
|
| @@ -3363,6 +3989,13 @@ abstract class FunctionDeclaration extends NamedCompilationUnitMember {
|
| */
|
| abstract class FunctionDeclarationStatement extends Statement {
|
| /**
|
| + * Initialize a newly created function declaration statement.
|
| + */
|
| + factory FunctionDeclarationStatement(
|
| + FunctionDeclaration functionDeclaration) =
|
| + FunctionDeclarationStatementImpl;
|
| +
|
| + /**
|
| * Return the function declaration being wrapped.
|
| */
|
| FunctionDeclaration get functionDeclaration;
|
| @@ -3384,6 +4017,13 @@ abstract class FunctionDeclarationStatement extends Statement {
|
| */
|
| abstract class FunctionExpression extends Expression {
|
| /**
|
| + * Initialize a newly created function declaration.
|
| + */
|
| + factory FunctionExpression(TypeParameterList typeParameters,
|
| + FormalParameterList parameters, FunctionBody body) =>
|
| + new FunctionExpressionImpl(typeParameters, parameters, body);
|
| +
|
| + /**
|
| * Return the body of the function, or `null` if this is an external function.
|
| */
|
| FunctionBody get body;
|
| @@ -3441,6 +4081,14 @@ abstract class FunctionExpression extends Expression {
|
| */
|
| abstract class FunctionExpressionInvocation extends InvocationExpression {
|
| /**
|
| + * Initialize a newly created function expression invocation.
|
| + */
|
| + factory FunctionExpressionInvocation(Expression function,
|
| + TypeArgumentList typeArguments, ArgumentList argumentList) =>
|
| + new FunctionExpressionInvocationImpl(
|
| + function, typeArguments, argumentList);
|
| +
|
| + /**
|
| * Set the list of arguments to the method to the given [argumentList].
|
| */
|
| void set argumentList(ArgumentList argumentList);
|
| @@ -3512,6 +4160,25 @@ abstract class FunctionExpressionInvocation extends InvocationExpression {
|
| */
|
| abstract class FunctionTypeAlias extends TypeAlias {
|
| /**
|
| + * Initialize a newly created function type alias. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the function does not have the
|
| + * corresponding attribute. The [returnType] can be `null` if no return type
|
| + * was specified. The [typeParameters] can be `null` if the function has no
|
| + * type parameters.
|
| + */
|
| + factory FunctionTypeAlias(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + Token keyword,
|
| + TypeName returnType,
|
| + SimpleIdentifier name,
|
| + TypeParameterList typeParameters,
|
| + FormalParameterList parameters,
|
| + Token semicolon) =>
|
| + new FunctionTypeAliasImpl(comment, metadata, keyword, returnType, name,
|
| + typeParameters, parameters, semicolon);
|
| +
|
| + /**
|
| * Return the parameters associated with the function type.
|
| */
|
| FormalParameterList get parameters;
|
| @@ -3557,6 +4224,23 @@ abstract class FunctionTypeAlias extends TypeAlias {
|
| */
|
| abstract class FunctionTypedFormalParameter extends NormalFormalParameter {
|
| /**
|
| + * Initialize a newly created formal parameter. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the parameter does not have the
|
| + * corresponding attribute. The [returnType] can be `null` if no return type
|
| + * was specified.
|
| + */
|
| + factory FunctionTypedFormalParameter(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + TypeName returnType,
|
| + SimpleIdentifier identifier,
|
| + TypeParameterList typeParameters,
|
| + FormalParameterList parameters,
|
| + {Token question: null}) =>
|
| + new FunctionTypedFormalParameterImpl(comment, metadata, returnType,
|
| + identifier, typeParameters, parameters, question);
|
| +
|
| + /**
|
| * Return the parameters of the function-typed parameter.
|
| */
|
| FormalParameterList get parameters;
|
| @@ -3614,6 +4298,12 @@ abstract class FunctionTypedFormalParameter extends NormalFormalParameter {
|
| */
|
| abstract class HideCombinator extends Combinator {
|
| /**
|
| + * Initialize a newly created import show combinator.
|
| + */
|
| + factory HideCombinator(Token keyword, List<SimpleIdentifier> hiddenNames) =
|
| + HideCombinatorImpl;
|
| +
|
| + /**
|
| * Return the list of names from the library that are hidden by this
|
| * combinator.
|
| */
|
| @@ -3678,6 +4368,21 @@ abstract class Identifier extends Expression {
|
| */
|
| abstract class IfStatement extends Statement {
|
| /**
|
| + * Initialize a newly created if statement. The [elseKeyword] and
|
| + * [elseStatement] can be `null` if there is no else clause.
|
| + */
|
| + factory IfStatement(
|
| + Token ifKeyword,
|
| + Token leftParenthesis,
|
| + Expression condition,
|
| + Token rightParenthesis,
|
| + Statement thenStatement,
|
| + Token elseKeyword,
|
| + Statement elseStatement) =>
|
| + new IfStatementImpl(ifKeyword, leftParenthesis, condition,
|
| + rightParenthesis, thenStatement, elseKeyword, elseStatement);
|
| +
|
| + /**
|
| * Return the condition used to determine which of the statements is executed
|
| * next.
|
| */
|
| @@ -3764,6 +4469,12 @@ abstract class IfStatement extends Statement {
|
| */
|
| abstract class ImplementsClause extends AstNode {
|
| /**
|
| + * Initialize a newly created implements clause.
|
| + */
|
| + factory ImplementsClause(Token implementsKeyword, List<TypeName> interfaces) =
|
| + ImplementsClauseImpl;
|
| +
|
| + /**
|
| * Return the token representing the 'implements' keyword.
|
| */
|
| Token get implementsKeyword;
|
| @@ -3894,6 +4605,38 @@ abstract class ImportDirective extends NamespaceDirective {
|
| }
|
| return 0;
|
| };
|
| +
|
| + /**
|
| + * Initialize a newly created import directive. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the function does not have the
|
| + * corresponding attribute. The [deferredKeyword] can be `null` if the import
|
| + * is not deferred. The [asKeyword] and [prefix] can be `null` if the import
|
| + * does not specify a prefix. The list of [combinators] can be `null` if there
|
| + * are no combinators.
|
| + */
|
| + factory ImportDirective(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + Token keyword,
|
| + StringLiteral libraryUri,
|
| + List<Configuration> configurations,
|
| + Token deferredKeyword,
|
| + Token asKeyword,
|
| + SimpleIdentifier prefix,
|
| + List<Combinator> combinators,
|
| + Token semicolon) =>
|
| + new ImportDirectiveImpl(
|
| + comment,
|
| + metadata,
|
| + keyword,
|
| + libraryUri,
|
| + configurations,
|
| + deferredKeyword,
|
| + asKeyword,
|
| + prefix,
|
| + combinators,
|
| + semicolon);
|
| +
|
| /**
|
| * Return the token representing the 'as' keyword, or `null` if the imported
|
| * names are not prefixed.
|
| @@ -3939,6 +4682,22 @@ abstract class ImportDirective extends NamespaceDirective {
|
| abstract class IndexExpression extends Expression
|
| implements MethodReferenceExpression {
|
| /**
|
| + * Initialize a newly created index expression.
|
| + */
|
| + factory IndexExpression.forCascade(Token period, Token leftBracket,
|
| + Expression index, Token rightBracket) =>
|
| + new IndexExpressionImpl.forCascade(
|
| + period, leftBracket, index, rightBracket);
|
| +
|
| + /**
|
| + * Initialize a newly created index expression.
|
| + */
|
| + factory IndexExpression.forTarget(Expression target, Token leftBracket,
|
| + Expression index, Token rightBracket) =>
|
| + new IndexExpressionImpl.forTarget(
|
| + target, leftBracket, index, rightBracket);
|
| +
|
| + /**
|
| * Return the auxiliary elements associated with this identifier, or `null` if
|
| * this identifier is not in both a getter and setter context. The auxiliary
|
| * elements hold the static and propagated elements associated with the getter
|
| @@ -4057,6 +4816,14 @@ abstract class IndexExpression extends Expression
|
| abstract class InstanceCreationExpression extends Expression
|
| implements ConstructorReferenceNode {
|
| /**
|
| + * Initialize a newly created instance creation expression.
|
| + */
|
| + factory InstanceCreationExpression(Token keyword,
|
| + ConstructorName constructorName, ArgumentList argumentList) =>
|
| + new InstanceCreationExpressionImpl(
|
| + keyword, constructorName, argumentList);
|
| +
|
| + /**
|
| * Return the list of arguments to the constructor.
|
| */
|
| ArgumentList get argumentList;
|
| @@ -4113,6 +4880,11 @@ abstract class InstanceCreationExpression extends Expression
|
| */
|
| abstract class IntegerLiteral extends Literal {
|
| /**
|
| + * Initialize a newly created integer literal.
|
| + */
|
| + factory IntegerLiteral(Token literal, int value) = IntegerLiteralImpl;
|
| +
|
| + /**
|
| * Return the token representing the literal.
|
| */
|
| Token get literal;
|
| @@ -4155,6 +4927,13 @@ abstract class InterpolationElement extends AstNode {}
|
| */
|
| abstract class InterpolationExpression extends InterpolationElement {
|
| /**
|
| + * Initialize a newly created interpolation expression.
|
| + */
|
| + factory InterpolationExpression(
|
| + Token leftBracket, Expression expression, Token rightBracket) =>
|
| + new InterpolationExpressionImpl(leftBracket, expression, rightBracket);
|
| +
|
| + /**
|
| * Return the expression to be evaluated for the value to be converted into a
|
| * string.
|
| */
|
| @@ -4202,6 +4981,13 @@ abstract class InterpolationExpression extends InterpolationElement {
|
| */
|
| abstract class InterpolationString extends InterpolationElement {
|
| /**
|
| + * Initialize a newly created string of characters that are part of a string
|
| + * interpolation.
|
| + */
|
| + factory InterpolationString(Token contents, String value) =
|
| + InterpolationStringImpl;
|
| +
|
| + /**
|
| * Return the characters that will be added to the string.
|
| */
|
| Token get contents;
|
| @@ -4309,6 +5095,14 @@ abstract class InvocationExpression extends Expression {
|
| */
|
| abstract class IsExpression extends Expression {
|
| /**
|
| + * Initialize a newly created is expression. The [notOperator] can be `null`
|
| + * if the sense of the test is not negated.
|
| + */
|
| + factory IsExpression(Expression expression, Token isOperator,
|
| + Token notOperator, TypeName type) =>
|
| + new IsExpressionImpl(expression, isOperator, notOperator, type);
|
| +
|
| + /**
|
| * Return the expression used to compute the value whose type is being tested.
|
| */
|
| Expression get expression;
|
| @@ -4360,6 +5154,12 @@ abstract class IsExpression extends Expression {
|
| */
|
| abstract class Label extends AstNode {
|
| /**
|
| + * Initialize a newly created label.
|
| + */
|
| + factory Label(SimpleIdentifier label, Token colon) =>
|
| + new LabelImpl(label, colon);
|
| +
|
| + /**
|
| * Return the colon that separates the label from the statement.
|
| */
|
| Token get colon;
|
| @@ -4391,6 +5191,12 @@ abstract class Label extends AstNode {
|
| */
|
| abstract class LabeledStatement extends Statement {
|
| /**
|
| + * Initialize a newly created labeled statement.
|
| + */
|
| + factory LabeledStatement(List<Label> labels, Statement statement) =>
|
| + new LabeledStatementImpl(labels, statement);
|
| +
|
| + /**
|
| * Return the labels being associated with the statement.
|
| */
|
| NodeList<Label> get labels;
|
| @@ -4417,6 +5223,16 @@ abstract class LabeledStatement extends Statement {
|
| */
|
| abstract class LibraryDirective extends Directive {
|
| /**
|
| + * Initialize a newly created library directive. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the directive does not have the
|
| + * corresponding attribute.
|
| + */
|
| + factory LibraryDirective(Comment comment, List<Annotation> metadata,
|
| + Token libraryKeyword, LibraryIdentifier name, Token semicolon) =>
|
| + new LibraryDirectiveImpl(
|
| + comment, metadata, libraryKeyword, name, semicolon);
|
| +
|
| + /**
|
| * Return the token representing the 'library' keyword.
|
| */
|
| Token get libraryKeyword;
|
| @@ -4457,6 +5273,12 @@ abstract class LibraryDirective extends Directive {
|
| */
|
| abstract class LibraryIdentifier extends Identifier {
|
| /**
|
| + * Initialize a newly created prefixed identifier.
|
| + */
|
| + factory LibraryIdentifier(List<SimpleIdentifier> components) =
|
| + LibraryIdentifierImpl;
|
| +
|
| + /**
|
| * Return the components of the identifier.
|
| */
|
| NodeList<SimpleIdentifier> get components;
|
| @@ -4472,6 +5294,19 @@ abstract class LibraryIdentifier extends Identifier {
|
| */
|
| abstract class ListLiteral extends TypedLiteral {
|
| /**
|
| + * Initialize a newly created list literal. The [constKeyword] can be `null`
|
| + * if the literal is not a constant. The [typeArguments] can be `null` if no
|
| + * type arguments were declared. The list of [elements] can be `null` if the
|
| + * list is empty.
|
| + */
|
| + factory ListLiteral(
|
| + Token constKeyword,
|
| + TypeArgumentList typeArguments,
|
| + Token leftBracket,
|
| + List<Expression> elements,
|
| + Token rightBracket) = ListLiteralImpl;
|
| +
|
| + /**
|
| * Return the expressions used to compute the elements of the list.
|
| */
|
| NodeList<Expression> get elements;
|
| @@ -4524,6 +5359,18 @@ abstract class Literal extends Expression {}
|
| */
|
| abstract class MapLiteral extends TypedLiteral {
|
| /**
|
| + * Initialize a newly created map literal. The [constKeyword] can be `null` if
|
| + * the literal is not a constant. The [typeArguments] can be `null` if no type
|
| + * arguments were declared. The [entries] can be `null` if the map is empty.
|
| + */
|
| + factory MapLiteral(
|
| + Token constKeyword,
|
| + TypeArgumentList typeArguments,
|
| + Token leftBracket,
|
| + List<MapLiteralEntry> entries,
|
| + Token rightBracket) = MapLiteralImpl;
|
| +
|
| + /**
|
| * Return the entries in the map.
|
| */
|
| NodeList<MapLiteralEntry> get entries;
|
| @@ -4559,6 +5406,12 @@ abstract class MapLiteral extends TypedLiteral {
|
| */
|
| abstract class MapLiteralEntry extends AstNode {
|
| /**
|
| + * Initialize a newly created map literal entry.
|
| + */
|
| + factory MapLiteralEntry(Expression key, Token separator, Expression value) =>
|
| + new MapLiteralEntryImpl(key, separator, value);
|
| +
|
| + /**
|
| * Return the expression computing the key with which the value will be
|
| * associated.
|
| */
|
| @@ -4611,6 +5464,42 @@ abstract class MapLiteralEntry extends AstNode {
|
| */
|
| abstract class MethodDeclaration extends ClassMember {
|
| /**
|
| + * Initialize a newly created method declaration. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the declaration does not have the
|
| + * corresponding attribute. The [externalKeyword] can be `null` if the method
|
| + * is not external. The [modifierKeyword] can be `null` if the method is
|
| + * neither abstract nor static. The [returnType] can be `null` if no return
|
| + * type was specified. The [propertyKeyword] can be `null` if the method is
|
| + * neither a getter or a setter. The [operatorKeyword] can be `null` if the
|
| + * method does not implement an operator. The [parameters] must be `null` if
|
| + * this method declares a getter.
|
| + */
|
| + factory MethodDeclaration(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + Token externalKeyword,
|
| + Token modifierKeyword,
|
| + TypeName returnType,
|
| + Token propertyKeyword,
|
| + Token operatorKeyword,
|
| + SimpleIdentifier name,
|
| + TypeParameterList typeParameters,
|
| + FormalParameterList parameters,
|
| + FunctionBody body) =>
|
| + new MethodDeclarationImpl(
|
| + comment,
|
| + metadata,
|
| + externalKeyword,
|
| + modifierKeyword,
|
| + returnType,
|
| + propertyKeyword,
|
| + operatorKeyword,
|
| + name,
|
| + typeParameters,
|
| + parameters,
|
| + body);
|
| +
|
| + /**
|
| * Return the body of the method.
|
| */
|
| FunctionBody get body;
|
| @@ -4752,6 +5641,19 @@ abstract class MethodDeclaration extends ClassMember {
|
| */
|
| abstract class MethodInvocation extends InvocationExpression {
|
| /**
|
| + * Initialize a newly created method invocation. The [target] and [operator]
|
| + * can be `null` if there is no target.
|
| + */
|
| + factory MethodInvocation(
|
| + Expression target,
|
| + Token operator,
|
| + SimpleIdentifier methodName,
|
| + TypeArgumentList typeArguments,
|
| + ArgumentList argumentList) =>
|
| + new MethodInvocationImpl(
|
| + target, operator, methodName, typeArguments, argumentList);
|
| +
|
| + /**
|
| * Set the list of arguments to the method to the given [argumentList].
|
| */
|
| void set argumentList(ArgumentList argumentList);
|
| @@ -4892,6 +5794,12 @@ abstract class NamedCompilationUnitMember extends CompilationUnitMember {
|
| */
|
| abstract class NamedExpression extends Expression {
|
| /**
|
| + * Initialize a newly created named expression..
|
| + */
|
| + factory NamedExpression(Label name, Expression expression) =>
|
| + new NamedExpressionImpl(name, expression);
|
| +
|
| + /**
|
| * Return the element representing the parameter being named by this
|
| * expression, or `null` if the AST structure has not been resolved or if
|
| * there is no parameter with the same name as this expression.
|
| @@ -4984,6 +5892,12 @@ abstract class NamespaceDirective extends UriBasedDirective {
|
| */
|
| abstract class NativeClause extends AstNode {
|
| /**
|
| + * Initialize a newly created native clause.
|
| + */
|
| + factory NativeClause(Token nativeKeyword, StringLiteral name) =>
|
| + new NativeClauseImpl(nativeKeyword, name);
|
| +
|
| + /**
|
| * Return the name of the native object that implements the class.
|
| */
|
| StringLiteral get name;
|
| @@ -5016,6 +5930,14 @@ abstract class NativeClause extends AstNode {
|
| */
|
| abstract class NativeFunctionBody extends FunctionBody {
|
| /**
|
| + * Initialize a newly created function body consisting of the 'native' token,
|
| + * a string literal, and a semicolon.
|
| + */
|
| + factory NativeFunctionBody(
|
| + Token nativeKeyword, StringLiteral stringLiteral, Token semicolon) =>
|
| + new NativeFunctionBodyImpl(nativeKeyword, stringLiteral, semicolon);
|
| +
|
| + /**
|
| * Return the token representing 'native' that marks the start of the function
|
| * body.
|
| */
|
| @@ -5058,6 +5980,14 @@ abstract class NativeFunctionBody extends FunctionBody {
|
| */
|
| abstract class NodeList<E extends AstNode> implements List<E> {
|
| /**
|
| + * Initialize a newly created list of nodes such that all of the nodes that
|
| + * are added to the list will have their parent set to the given [owner]. The
|
| + * list will initially be populated with the given [elements].
|
| + */
|
| + factory NodeList(AstNode owner, [List<E> elements]) =>
|
| + new NodeListImpl<E>(owner as AstNodeImpl, elements);
|
| +
|
| + /**
|
| * Return the first token included in this node list's source range, or `null`
|
| * if the list is empty.
|
| */
|
| @@ -5151,6 +6081,11 @@ abstract class NormalFormalParameter extends FormalParameter {
|
| */
|
| abstract class NullLiteral extends Literal {
|
| /**
|
| + * Initialize a newly created null literal.
|
| + */
|
| + factory NullLiteral(Token literal) = NullLiteralImpl;
|
| +
|
| + /**
|
| * Return the token representing the literal.
|
| */
|
| Token get literal;
|
| @@ -5171,6 +6106,14 @@ abstract class NullLiteral extends Literal {
|
| */
|
| abstract class ParenthesizedExpression extends Expression {
|
| /**
|
| + * Initialize a newly created parenthesized expression.
|
| + */
|
| + factory ParenthesizedExpression(Token leftParenthesis, Expression expression,
|
| + Token rightParenthesis) =>
|
| + new ParenthesizedExpressionImpl(
|
| + leftParenthesis, expression, rightParenthesis);
|
| +
|
| + /**
|
| * Return the expression within the parentheses.
|
| */
|
| Expression get expression;
|
| @@ -5211,6 +6154,18 @@ abstract class ParenthesizedExpression extends Expression {
|
| */
|
| abstract class PartDirective extends UriBasedDirective {
|
| /**
|
| + * Initialize a newly created part directive. Either or both of the [comment]
|
| + * and [metadata] can be `null` if the directive does not have the
|
| + * corresponding attribute.
|
| + */
|
| + factory PartDirective(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + Token partKeyword,
|
| + StringLiteral partUri,
|
| + Token semicolon) = PartDirectiveImpl;
|
| +
|
| + /**
|
| * Return the token representing the 'part' keyword.
|
| */
|
| Token get partKeyword;
|
| @@ -5241,6 +6196,23 @@ abstract class PartDirective extends UriBasedDirective {
|
| */
|
| abstract class PartOfDirective extends Directive {
|
| /**
|
| + * Initialize a newly created part-of directive. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the directive does not have the
|
| + * corresponding attribute. Only one of the [uri] and [libraryName] should be
|
| + * provided.
|
| + */
|
| + factory PartOfDirective(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + Token partKeyword,
|
| + Token ofKeyword,
|
| + StringLiteral uri,
|
| + LibraryIdentifier libraryName,
|
| + Token semicolon) =>
|
| + new PartOfDirectiveImpl(comment, metadata, partKeyword, ofKeyword, uri,
|
| + libraryName, semicolon);
|
| +
|
| + /**
|
| * Return the name of the library that the containing compilation unit is part
|
| * of.
|
| */
|
| @@ -5308,6 +6280,12 @@ abstract class PartOfDirective extends Directive {
|
| abstract class PostfixExpression extends Expression
|
| implements MethodReferenceExpression {
|
| /**
|
| + * Initialize a newly created postfix expression.
|
| + */
|
| + factory PostfixExpression(Expression operand, Token operator) =>
|
| + new PostfixExpressionImpl(operand, operator);
|
| +
|
| + /**
|
| * Return the expression computing the operand for the operator.
|
| */
|
| Expression get operand;
|
| @@ -5340,6 +6318,13 @@ abstract class PostfixExpression extends Expression
|
| */
|
| abstract class PrefixedIdentifier extends Identifier {
|
| /**
|
| + * Initialize a newly created prefixed identifier.
|
| + */
|
| + factory PrefixedIdentifier(
|
| + SimpleIdentifier prefix, Token period, SimpleIdentifier identifier) =>
|
| + new PrefixedIdentifierImpl(prefix, period, identifier);
|
| +
|
| + /**
|
| * Return the identifier being prefixed.
|
| */
|
| SimpleIdentifier get identifier;
|
| @@ -5393,6 +6378,12 @@ abstract class PrefixedIdentifier extends Identifier {
|
| abstract class PrefixExpression extends Expression
|
| implements MethodReferenceExpression {
|
| /**
|
| + * Initialize a newly created prefix expression.
|
| + */
|
| + factory PrefixExpression(Token operator, Expression operand) =>
|
| + new PrefixExpressionImpl(operator, operand);
|
| +
|
| + /**
|
| * Return the expression computing the operand for the operator.
|
| */
|
| Expression get operand;
|
| @@ -5428,6 +6419,13 @@ abstract class PrefixExpression extends Expression
|
| */
|
| abstract class PropertyAccess extends Expression {
|
| /**
|
| + * Initialize a newly created property access expression.
|
| + */
|
| + factory PropertyAccess(
|
| + Expression target, Token operator, SimpleIdentifier propertyName) =>
|
| + new PropertyAccessImpl(target, operator, propertyName);
|
| +
|
| + /**
|
| * Return `true` if this expression is cascaded. If it is, then the target of
|
| * this expression is not stored locally but is stored in the nearest ancestor
|
| * that is a [CascadeExpression].
|
| @@ -5490,6 +6488,16 @@ abstract class PropertyAccess extends Expression {
|
| abstract class RedirectingConstructorInvocation extends ConstructorInitializer
|
| implements ConstructorReferenceNode {
|
| /**
|
| + * Initialize a newly created redirecting invocation to invoke the constructor
|
| + * with the given name with the given arguments. The [constructorName] can be
|
| + * `null` if the constructor being invoked is the unnamed constructor.
|
| + */
|
| + factory RedirectingConstructorInvocation(Token thisKeyword, Token period,
|
| + SimpleIdentifier constructorName, ArgumentList argumentList) =>
|
| + new RedirectingConstructorInvocationImpl(
|
| + thisKeyword, period, constructorName, argumentList);
|
| +
|
| + /**
|
| * Return the list of arguments to the constructor.
|
| */
|
| ArgumentList get argumentList;
|
| @@ -5544,6 +6552,11 @@ abstract class RedirectingConstructorInvocation extends ConstructorInitializer
|
| */
|
| abstract class RethrowExpression extends Expression {
|
| /**
|
| + * Initialize a newly created rethrow expression.
|
| + */
|
| + factory RethrowExpression(Token rethrowKeyword) = RethrowExpressionImpl;
|
| +
|
| + /**
|
| * Return the token representing the 'rethrow' keyword.
|
| */
|
| Token get rethrowKeyword;
|
| @@ -5564,6 +6577,14 @@ abstract class RethrowExpression extends Expression {
|
| */
|
| abstract class ReturnStatement extends Statement {
|
| /**
|
| + * Initialize a newly created return statement. The [expression] can be `null`
|
| + * if no explicit value was provided.
|
| + */
|
| + factory ReturnStatement(
|
| + Token returnKeyword, Expression expression, Token semicolon) =>
|
| + new ReturnStatementImpl(returnKeyword, expression, semicolon);
|
| +
|
| + /**
|
| * Return the expression computing the value to be returned, or `null` if no
|
| * explicit value was provided.
|
| */
|
| @@ -5606,6 +6627,11 @@ abstract class ReturnStatement extends Statement {
|
| */
|
| abstract class ScriptTag extends AstNode {
|
| /**
|
| + * Initialize a newly created script tag.
|
| + */
|
| + factory ScriptTag(Token scriptTag) = ScriptTagImpl;
|
| +
|
| + /**
|
| * Return the token representing this script tag.
|
| */
|
| Token get scriptTag;
|
| @@ -5626,6 +6652,12 @@ abstract class ScriptTag extends AstNode {
|
| */
|
| abstract class ShowCombinator extends Combinator {
|
| /**
|
| + * Initialize a newly created import show combinator.
|
| + */
|
| + factory ShowCombinator(Token keyword, List<SimpleIdentifier> shownNames) =
|
| + ShowCombinatorImpl;
|
| +
|
| + /**
|
| * Return the list of names from the library that are made visible by this
|
| * combinator.
|
| */
|
| @@ -5642,6 +6674,17 @@ abstract class ShowCombinator extends Combinator {
|
| */
|
| abstract class SimpleFormalParameter extends NormalFormalParameter {
|
| /**
|
| + * Initialize a newly created formal parameter. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the parameter does not have the
|
| + * corresponding attribute. The [keyword] can be `null` if a type was
|
| + * specified. The [type] must be `null` if the keyword is 'var'.
|
| + */
|
| + factory SimpleFormalParameter(Comment comment, List<Annotation> metadata,
|
| + Token keyword, TypeName type, SimpleIdentifier identifier) =>
|
| + new SimpleFormalParameterImpl(
|
| + comment, metadata, keyword, type, identifier);
|
| +
|
| + /**
|
| * Return the token representing either the 'final', 'const' or 'var' keyword,
|
| * or `null` if no keyword was used.
|
| */
|
| @@ -5679,6 +6722,16 @@ abstract class SimpleFormalParameter extends NormalFormalParameter {
|
| */
|
| abstract class SimpleIdentifier extends Identifier {
|
| /**
|
| + * Initialize a newly created identifier.
|
| + */
|
| + factory SimpleIdentifier(Token token, {bool isDeclaration: false}) {
|
| + if (isDeclaration) {
|
| + return new DeclaredSimpleIdentifier(token);
|
| + }
|
| + return new SimpleIdentifierImpl(token);
|
| + }
|
| +
|
| + /**
|
| * Return the auxiliary elements associated with this identifier, or `null` if
|
| * this identifier is not in both a getter and setter context. The auxiliary
|
| * elements hold the static and propagated elements associated with the getter
|
| @@ -5776,6 +6829,12 @@ abstract class SimpleIdentifier extends Identifier {
|
| */
|
| abstract class SimpleStringLiteral extends SingleStringLiteral {
|
| /**
|
| + * Initialize a newly created simple string literal.
|
| + */
|
| + factory SimpleStringLiteral(Token literal, String value) =
|
| + SimpleStringLiteralImpl;
|
| +
|
| + /**
|
| * Return the token representing the literal.
|
| */
|
| Token get literal;
|
| @@ -5874,6 +6933,12 @@ abstract class Statement extends AstNode {
|
| */
|
| abstract class StringInterpolation extends SingleStringLiteral {
|
| /**
|
| + * Initialize a newly created string interpolation expression.
|
| + */
|
| + factory StringInterpolation(List<InterpolationElement> elements) =
|
| + StringInterpolationImpl;
|
| +
|
| + /**
|
| * Return the elements that will be composed to produce the resulting string.
|
| */
|
| NodeList<InterpolationElement> get elements;
|
| @@ -5909,6 +6974,17 @@ abstract class StringLiteral extends Literal {
|
| abstract class SuperConstructorInvocation extends ConstructorInitializer
|
| implements ConstructorReferenceNode {
|
| /**
|
| + * Initialize a newly created super invocation to invoke the inherited
|
| + * constructor with the given name with the given arguments. The [period] and
|
| + * [constructorName] can be `null` if the constructor being invoked is the
|
| + * unnamed constructor.
|
| + */
|
| + factory SuperConstructorInvocation(Token superKeyword, Token period,
|
| + SimpleIdentifier constructorName, ArgumentList argumentList) =>
|
| + new SuperConstructorInvocationImpl(
|
| + superKeyword, period, constructorName, argumentList);
|
| +
|
| + /**
|
| * Return the list of arguments to the constructor.
|
| */
|
| ArgumentList get argumentList;
|
| @@ -5963,6 +7039,11 @@ abstract class SuperConstructorInvocation extends ConstructorInitializer
|
| */
|
| abstract class SuperExpression extends Expression {
|
| /**
|
| + * Initialize a newly created super expression.
|
| + */
|
| + factory SuperExpression(Token superKeyword) = SuperExpressionImpl;
|
| +
|
| + /**
|
| * Return the token representing the 'super' keyword.
|
| */
|
| Token get superKeyword;
|
| @@ -5983,6 +7064,14 @@ abstract class SuperExpression extends Expression {
|
| */
|
| abstract class SwitchCase extends SwitchMember {
|
| /**
|
| + * Initialize a newly created switch case. The list of [labels] can be `null`
|
| + * if there are no labels.
|
| + */
|
| + factory SwitchCase(List<Label> labels, Token keyword, Expression expression,
|
| + Token colon, List<Statement> statements) =>
|
| + new SwitchCaseImpl(labels, keyword, expression, colon, statements);
|
| +
|
| + /**
|
| * Return the expression controlling whether the statements will be executed.
|
| */
|
| Expression get expression;
|
| @@ -6002,7 +7091,14 @@ abstract class SwitchCase extends SwitchMember {
|
| *
|
| * Clients may not extend, implement or mix-in this class.
|
| */
|
| -abstract class SwitchDefault extends SwitchMember {}
|
| +abstract class SwitchDefault extends SwitchMember {
|
| + /**
|
| + * Initialize a newly created switch default. The list of [labels] can be
|
| + * `null` if there are no labels.
|
| + */
|
| + factory SwitchDefault(List<Label> labels, Token keyword, Token colon,
|
| + List<Statement> statements) = SwitchDefaultImpl;
|
| +}
|
|
|
| /**
|
| * An element within a switch statement.
|
| @@ -6059,6 +7155,21 @@ abstract class SwitchMember extends AstNode {
|
| */
|
| abstract class SwitchStatement extends Statement {
|
| /**
|
| + * Initialize a newly created switch statement. The list of [members] can be
|
| + * `null` if there are no switch members.
|
| + */
|
| + factory SwitchStatement(
|
| + Token switchKeyword,
|
| + Token leftParenthesis,
|
| + Expression expression,
|
| + Token rightParenthesis,
|
| + Token leftBracket,
|
| + List<SwitchMember> members,
|
| + Token rightBracket) =>
|
| + new SwitchStatementImpl(switchKeyword, leftParenthesis, expression,
|
| + rightParenthesis, leftBracket, members, rightBracket);
|
| +
|
| + /**
|
| * Return the expression used to determine which of the switch members will be
|
| * selected.
|
| */
|
| @@ -6136,6 +7247,12 @@ abstract class SwitchStatement extends Statement {
|
| */
|
| abstract class SymbolLiteral extends Literal {
|
| /**
|
| + * Initialize a newly created symbol literal.
|
| + */
|
| + factory SymbolLiteral(Token poundSign, List<Token> components) =
|
| + SymbolLiteralImpl;
|
| +
|
| + /**
|
| * Return the components of the literal.
|
| */
|
| List<Token> get components;
|
| @@ -6161,6 +7278,11 @@ abstract class SymbolLiteral extends Literal {
|
| */
|
| abstract class ThisExpression extends Expression {
|
| /**
|
| + * Initialize a newly created this expression.
|
| + */
|
| + factory ThisExpression(Token thisKeyword) = ThisExpressionImpl;
|
| +
|
| + /**
|
| * Return the token representing the 'this' keyword.
|
| */
|
| Token get thisKeyword;
|
| @@ -6181,6 +7303,12 @@ abstract class ThisExpression extends Expression {
|
| */
|
| abstract class ThrowExpression extends Expression {
|
| /**
|
| + * Initialize a newly created throw expression.
|
| + */
|
| + factory ThrowExpression(Token throwKeyword, Expression expression) =>
|
| + new ThrowExpressionImpl(throwKeyword, expression);
|
| +
|
| + /**
|
| * Return the expression computing the exception to be thrown.
|
| */
|
| Expression get expression;
|
| @@ -6213,6 +7341,19 @@ abstract class ThrowExpression extends Expression {
|
| */
|
| abstract class TopLevelVariableDeclaration extends CompilationUnitMember {
|
| /**
|
| + * Initialize a newly created top-level variable declaration. Either or both
|
| + * of the [comment] and [metadata] can be `null` if the variable does not have
|
| + * the corresponding attribute.
|
| + */
|
| + factory TopLevelVariableDeclaration(
|
| + Comment comment,
|
| + List<Annotation> metadata,
|
| + VariableDeclarationList variableList,
|
| + Token semicolon) =>
|
| + new TopLevelVariableDeclarationImpl(
|
| + comment, metadata, variableList, semicolon);
|
| +
|
| + /**
|
| * Return the semicolon terminating the declaration.
|
| */
|
| Token get semicolon;
|
| @@ -6247,6 +7388,20 @@ abstract class TopLevelVariableDeclaration extends CompilationUnitMember {
|
| */
|
| abstract class TryStatement extends Statement {
|
| /**
|
| + * Initialize a newly created try statement. The list of [catchClauses] can be
|
| + * `null` if there are no catch clauses. The [finallyKeyword] and
|
| + * [finallyBlock] can be `null` if there is no finally clause.
|
| + */
|
| + factory TryStatement(
|
| + Token tryKeyword,
|
| + Block body,
|
| + List<CatchClause> catchClauses,
|
| + Token finallyKeyword,
|
| + Block finallyBlock) =>
|
| + new TryStatementImpl(
|
| + tryKeyword, body, catchClauses, finallyKeyword, finallyBlock);
|
| +
|
| + /**
|
| * Return the body of the statement.
|
| */
|
| Block get body;
|
| @@ -6338,6 +7493,13 @@ abstract class TypeAlias extends NamedCompilationUnitMember {
|
| */
|
| abstract class TypeArgumentList extends AstNode {
|
| /**
|
| + * Initialize a newly created list of type arguments.
|
| + */
|
| + factory TypeArgumentList(
|
| + Token leftBracket, List<TypeName> arguments, Token rightBracket) =
|
| + TypeArgumentListImpl;
|
| +
|
| + /**
|
| * Return the type arguments associated with the type.
|
| */
|
| NodeList<TypeName> get arguments;
|
| @@ -6407,6 +7569,14 @@ abstract class TypedLiteral extends Literal {
|
| */
|
| abstract class TypeName extends AstNode {
|
| /**
|
| + * Initialize a newly created type name. The [typeArguments] can be `null` if
|
| + * there are no type arguments.
|
| + */
|
| + factory TypeName(Identifier name, TypeArgumentList typeArguments,
|
| + {Token question: null}) =>
|
| + new TypeNameImpl(name, typeArguments, question);
|
| +
|
| + /**
|
| * Return `true` if this type is a deferred type.
|
| *
|
| * 15.1 Static Types: A type <i>T</i> is deferred iff it is of the form
|
| @@ -6470,6 +7640,16 @@ abstract class TypeName extends AstNode {
|
| */
|
| abstract class TypeParameter extends Declaration {
|
| /**
|
| + * Initialize a newly created type parameter. Either or both of the [comment]
|
| + * and [metadata] can be `null` if the parameter does not have the
|
| + * corresponding attribute. The [extendsKeyword] and [bound] can be `null` if
|
| + * the parameter does not have an upper bound.
|
| + */
|
| + factory TypeParameter(Comment comment, List<Annotation> metadata,
|
| + SimpleIdentifier name, Token extendsKeyword, TypeName bound) =>
|
| + new TypeParameterImpl(comment, metadata, name, extendsKeyword, bound);
|
| +
|
| + /**
|
| * Return the name of the upper bound for legal arguments, or `null` if there
|
| * is no explicit upper bound.
|
| */
|
| @@ -6513,6 +7693,14 @@ abstract class TypeParameter extends Declaration {
|
| */
|
| abstract class TypeParameterList extends AstNode {
|
| /**
|
| + * Initialize a newly created list of type parameters.
|
| + */
|
| + factory TypeParameterList(
|
| + Token leftBracket,
|
| + List<TypeParameter> typeParameters,
|
| + Token rightBracket) = TypeParameterListImpl;
|
| +
|
| + /**
|
| * Return the left angle bracket.
|
| */
|
| Token get leftBracket;
|
| @@ -6605,6 +7793,14 @@ abstract class UriBasedDirective extends Directive {
|
| * Clients may not extend, implement or mix-in this class.
|
| */
|
| abstract class VariableDeclaration extends Declaration {
|
| + /**
|
| + * Initialize a newly created variable declaration. The [equals] and
|
| + * [initializer] can be `null` if there is no initializer.
|
| + */
|
| + factory VariableDeclaration(
|
| + SimpleIdentifier name, Token equals, Expression initializer) =>
|
| + new VariableDeclarationImpl(name, equals, initializer);
|
| +
|
| @override
|
| VariableElement get element;
|
|
|
| @@ -6671,6 +7867,17 @@ abstract class VariableDeclaration extends Declaration {
|
| */
|
| abstract class VariableDeclarationList extends AnnotatedNode {
|
| /**
|
| + * Initialize a newly created variable declaration list. Either or both of the
|
| + * [comment] and [metadata] can be `null` if the variable list does not have
|
| + * the corresponding attribute. The [keyword] can be `null` if a type was
|
| + * specified. The [type] must be `null` if the keyword is 'var'.
|
| + */
|
| + factory VariableDeclarationList(Comment comment, List<Annotation> metadata,
|
| + Token keyword, TypeName type, List<VariableDeclaration> variables) =>
|
| + new VariableDeclarationListImpl(
|
| + comment, metadata, keyword, type, variables);
|
| +
|
| + /**
|
| * Return `true` if the variables in this list were declared with the 'const'
|
| * modifier.
|
| */
|
| @@ -6724,6 +7931,13 @@ abstract class VariableDeclarationList extends AnnotatedNode {
|
| */
|
| abstract class VariableDeclarationStatement extends Statement {
|
| /**
|
| + * Initialize a newly created variable declaration statement.
|
| + */
|
| + factory VariableDeclarationStatement(
|
| + VariableDeclarationList variableList, Token semicolon) =>
|
| + new VariableDeclarationStatementImpl(variableList, semicolon);
|
| +
|
| + /**
|
| * Return the semicolon terminating the statement.
|
| */
|
| Token get semicolon;
|
| @@ -6754,6 +7968,14 @@ abstract class VariableDeclarationStatement extends Statement {
|
| */
|
| abstract class WhileStatement extends Statement {
|
| /**
|
| + * Initialize a newly created while statement.
|
| + */
|
| + factory WhileStatement(Token whileKeyword, Token leftParenthesis,
|
| + Expression condition, Token rightParenthesis, Statement body) =>
|
| + new WhileStatementImpl(
|
| + whileKeyword, leftParenthesis, condition, rightParenthesis, body);
|
| +
|
| + /**
|
| * Return the body of the loop.
|
| */
|
| Statement get body;
|
| @@ -6816,6 +8038,12 @@ abstract class WhileStatement extends Statement {
|
| */
|
| abstract class WithClause extends AstNode {
|
| /**
|
| + * Initialize a newly created with clause.
|
| + */
|
| + factory WithClause(Token withKeyword, List<TypeName> mixinTypes) =
|
| + WithClauseImpl;
|
| +
|
| + /**
|
| * Return the names of the mixins that were specified.
|
| */
|
| NodeList<TypeName> get mixinTypes;
|
| @@ -6841,6 +8069,14 @@ abstract class WithClause extends AstNode {
|
| */
|
| abstract class YieldStatement extends Statement {
|
| /**
|
| + * Initialize a newly created yield expression. The [star] can be `null` if no
|
| + * star was provided.
|
| + */
|
| + factory YieldStatement(Token yieldKeyword, Token star, Expression expression,
|
| + Token semicolon) =>
|
| + new YieldStatementImpl(yieldKeyword, star, expression, semicolon);
|
| +
|
| + /**
|
| * Return the expression whose value will be yielded.
|
| */
|
| Expression get expression;
|
|
|