// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | |
// for details. All rights reserved. Use of this source code is governed by a | |
// BSD-style license that can be found in the LICENSE file. | |
part of dart2js.semantics_visitor_test; | |
class SemanticDeclarationTestVisitor extends SemanticTestVisitor { | |
SemanticDeclarationTestVisitor(TreeElements elements) : super(elements); | |
@override | |
errorUnresolvedSuperConstructorInvoke( | |
Send node, | |
Element element, | |
NodeList arguments, | |
Selector selector, | |
arg) { | |
// TODO: implement errorUnresolvedSuperConstructorInvoke | |
} | |
@override | |
errorUnresolvedThisConstructorInvoke( | |
Send node, | |
Element element, | |
NodeList arguments, | |
Selector selector, | |
arg) { | |
// TODO: implement errorUnresolvedThisConstructorInvoke | |
} | |
@override | |
visitAbstractMethodDeclaration( | |
FunctionExpression node, | |
MethodElement method, | |
NodeList parameters, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_ABSTRACT_METHOD_DECL, | |
element: method, parameters: parameters)); | |
applyParameters(parameters, arg); | |
} | |
@override | |
visitClosureDeclaration( | |
FunctionExpression node, | |
LocalFunctionElement function, | |
NodeList parameters, | |
Node body, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_CLOSURE_DECL, | |
element: function, parameters: parameters, body: body)); | |
applyParameters(parameters, arg); | |
apply(body, arg); | |
} | |
@override | |
visitFactoryConstructorDeclaration( | |
FunctionExpression node, | |
ConstructorElement constructor, | |
NodeList parameters, | |
Node body, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_FACTORY_CONSTRUCTOR_DECL, | |
element: constructor, parameters: parameters, body: body)); | |
applyParameters(parameters, arg); | |
apply(body, arg); | |
} | |
@override | |
visitFieldInitializer( | |
SendSet node, | |
FieldElement field, | |
Node initializer, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_FIELD_INITIALIZER, | |
element: field, rhs: initializer)); | |
apply(initializer, arg); | |
} | |
@override | |
visitGenerativeConstructorDeclaration( | |
FunctionExpression node, | |
ConstructorElement constructor, | |
NodeList parameters, | |
NodeList initializers, | |
Node body, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_DECL, | |
element: constructor, parameters: parameters, body: body)); | |
applyParameters(parameters, arg); | |
applyInitializers(node, arg); | |
apply(body, arg); | |
} | |
@override | |
visitInstanceMethodDeclaration( | |
FunctionExpression node, | |
MethodElement method, | |
NodeList parameters, | |
Node body, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_INSTANCE_METHOD_DECL, | |
element: method, parameters: parameters, body: body)); | |
applyParameters(parameters, arg); | |
apply(body, arg); | |
} | |
@override | |
visitLocalFunctionDeclaration( | |
FunctionExpression node, | |
LocalFunctionElement function, | |
NodeList parameters, | |
Node body, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_LOCAL_FUNCTION_DECL, | |
element: function, parameters: parameters, body: body)); | |
applyParameters(parameters, arg); | |
apply(body, arg); | |
} | |
@override | |
visitRedirectingFactoryConstructorDeclaration( | |
FunctionExpression node, | |
ConstructorElement constructor, | |
NodeList parameters, | |
InterfaceType redirectionType, | |
ConstructorElement redirectionTarget, | |
arg) { | |
visits.add(new Visit( | |
VisitKind.VISIT_REDIRECTING_FACTORY_CONSTRUCTOR_DECL, | |
element: constructor, | |
parameters: parameters, | |
target: redirectionTarget, | |
type: redirectionType)); | |
applyParameters(parameters, arg); | |
} | |
@override | |
visitRedirectingGenerativeConstructorDeclaration( | |
FunctionExpression node, | |
ConstructorElement constructor, | |
NodeList parameters, | |
NodeList initializers, | |
arg) { | |
visits.add(new Visit( | |
VisitKind.VISIT_REDIRECTING_GENERATIVE_CONSTRUCTOR_DECL, | |
element: constructor, | |
parameters: parameters, | |
initializers: initializers)); | |
applyParameters(parameters, arg); | |
applyInitializers(node, arg); | |
} | |
@override | |
visitStaticFunctionDeclaration( | |
FunctionExpression node, | |
MethodElement function, | |
NodeList parameters, | |
Node body, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_STATIC_FUNCTION_DECL, | |
element: function, parameters: parameters, body: body)); | |
applyParameters(parameters, arg); | |
apply(body, arg); | |
} | |
@override | |
visitSuperConstructorInvoke( | |
Send node, | |
ConstructorElement superConstructor, | |
InterfaceType type, | |
NodeList arguments, | |
CallStructure callStructure, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_SUPER_CONSTRUCTOR_INVOKE, | |
element: superConstructor, type: type, | |
arguments: arguments, selector: callStructure)); | |
super.visitSuperConstructorInvoke( | |
node, superConstructor, type, arguments, callStructure, arg); | |
} | |
@override | |
visitImplicitSuperConstructorInvoke( | |
FunctionExpression node, | |
ConstructorElement superConstructor, | |
InterfaceType type, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_IMPLICIT_SUPER_CONSTRUCTOR_INVOKE, | |
element: superConstructor, type: type)); | |
super.visitImplicitSuperConstructorInvoke( | |
node, superConstructor, type, arg); | |
} | |
@override | |
visitThisConstructorInvoke( | |
Send node, | |
ConstructorElement thisConstructor, | |
NodeList arguments, | |
CallStructure callStructure, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_THIS_CONSTRUCTOR_INVOKE, | |
element: thisConstructor, | |
arguments: arguments, selector: callStructure)); | |
super.visitThisConstructorInvoke( | |
node, thisConstructor, arguments, callStructure, arg); | |
} | |
@override | |
visitTopLevelFunctionDeclaration( | |
FunctionExpression node, | |
MethodElement function, | |
NodeList parameters, | |
Node body, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_FUNCTION_DECL, | |
element: function, parameters: parameters, body: body)); | |
applyParameters(parameters, arg); | |
apply(body, arg); | |
} | |
@override | |
errorUnresolvedFieldInitializer( | |
SendSet node, | |
Element element, | |
Node initializer, | |
arg) { | |
// TODO: implement errorUnresolvedFieldInitializer | |
} | |
@override | |
visitOptionalParameterDeclaration( | |
VariableDefinitions node, | |
Node definition, | |
ParameterElement parameter, | |
ConstantExpression defaultValue, | |
int index, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_OPTIONAL_PARAMETER_DECL, | |
element: parameter, | |
constant: defaultValue != null ? defaultValue.getText() : null, | |
index: index)); | |
} | |
@override | |
visitParameterDeclaration( | |
VariableDefinitions node, | |
Node definition, | |
ParameterElement parameter, | |
int index, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_REQUIRED_PARAMETER_DECL, | |
element: parameter, index: index)); | |
} | |
@override | |
visitInitializingFormalDeclaration( | |
VariableDefinitions node, | |
Node definition, | |
InitializingFormalElement initializingFormal, | |
int index, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_REQUIRED_INITIALIZING_FORMAL_DECL, | |
element: initializingFormal, index: index)); | |
} | |
@override | |
visitLocalVariableDeclaration( | |
VariableDefinitions node, | |
Node definition, | |
LocalVariableElement variable, | |
Node initializer, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_LOCAL_VARIABLE_DECL, | |
element: variable, rhs: initializer)); | |
if (initializer != null) { | |
apply(initializer, arg); | |
} | |
} | |
@override | |
visitLocalConstantDeclaration( | |
VariableDefinitions node, | |
Node definition, | |
LocalVariableElement variable, | |
ConstantExpression constant, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_LOCAL_CONSTANT_DECL, | |
element: variable, constant: constant.getText())); | |
} | |
@override | |
visitNamedInitializingFormalDeclaration( | |
VariableDefinitions node, | |
Node definition, | |
InitializingFormalElement initializingFormal, | |
ConstantExpression defaultValue, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_NAMED_INITIALIZING_FORMAL_DECL, | |
element: initializingFormal, | |
constant: defaultValue != null ? defaultValue.getText() : null)); | |
} | |
@override | |
visitNamedParameterDeclaration( | |
VariableDefinitions node, | |
Node definition, | |
ParameterElement parameter, | |
ConstantExpression defaultValue, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_NAMED_PARAMETER_DECL, | |
element: parameter, | |
constant: defaultValue != null ? defaultValue.getText() : null)); | |
} | |
@override | |
visitOptionalInitializingFormalDeclaration( | |
VariableDefinitions node, | |
Node definition, | |
InitializingFormalElement initializingFormal, | |
ConstantExpression defaultValue, | |
int index, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_OPTIONAL_INITIALIZING_FORMAL_DECL, | |
element: initializingFormal, | |
constant: defaultValue != null ? defaultValue.getText() : null, | |
index: index)); | |
} | |
@override | |
visitInstanceFieldDeclaration( | |
VariableDefinitions node, | |
Node definition, | |
FieldElement field, | |
Node initializer, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_INSTANCE_FIELD_DECL, | |
element: field, rhs: initializer)); | |
if (initializer != null) { | |
apply(initializer, arg); | |
} | |
} | |
@override | |
visitStaticConstantDeclaration( | |
VariableDefinitions node, | |
Node definition, | |
FieldElement field, | |
ConstantExpression constant, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_STATIC_CONSTANT_DECL, | |
element: field, constant: constant.getText())); | |
} | |
@override | |
visitStaticFieldDeclaration( | |
VariableDefinitions node, | |
Node definition, | |
FieldElement field, | |
Node initializer, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_STATIC_FIELD_DECL, | |
element: field, rhs: initializer)); | |
if (initializer != null) { | |
apply(initializer, arg); | |
} | |
} | |
@override | |
visitTopLevelConstantDeclaration( | |
VariableDefinitions node, | |
Node definition, | |
FieldElement field, | |
ConstantExpression constant, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_CONSTANT_DECL, | |
element: field, constant: constant.getText())); | |
} | |
@override | |
visitTopLevelFieldDeclaration( | |
VariableDefinitions node, | |
Node definition, | |
FieldElement field, | |
Node initializer, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_FIELD_DECL, | |
element: field, rhs: initializer)); | |
if (initializer != null) { | |
apply(initializer, arg); | |
} | |
} | |
@override | |
visitAbstractGetterDeclaration( | |
FunctionExpression node, | |
MethodElement getter, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_ABSTRACT_GETTER_DECL, | |
element: getter)); | |
} | |
@override | |
visitAbstractSetterDeclaration( | |
FunctionExpression node, | |
MethodElement setter, | |
NodeList parameters, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_ABSTRACT_SETTER_DECL, | |
element: setter, parameters: parameters)); | |
applyParameters(parameters, arg); | |
} | |
@override | |
visitInstanceGetterDeclaration( | |
FunctionExpression node, | |
MethodElement getter, | |
Node body, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_INSTANCE_GETTER_DECL, | |
element: getter, body: body)); | |
apply(body, arg); | |
} | |
@override | |
visitInstanceSetterDeclaration( | |
FunctionExpression node, | |
MethodElement setter, | |
NodeList parameters, | |
Node body, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_INSTANCE_SETTER_DECL, | |
element: setter, parameters: parameters, body: body)); | |
applyParameters(parameters, arg); | |
apply(body, arg); | |
} | |
@override | |
visitTopLevelGetterDeclaration( | |
FunctionExpression node, | |
MethodElement getter, | |
Node body, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_GETTER_DECL, | |
element: getter, body: body)); | |
apply(body, arg); | |
} | |
@override | |
visitTopLevelSetterDeclaration( | |
FunctionExpression node, | |
MethodElement setter, | |
NodeList parameters, | |
Node body, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_TOP_LEVEL_SETTER_DECL, | |
element: setter, parameters: parameters, body: body)); | |
applyParameters(parameters, arg); | |
apply(body, arg); | |
} | |
@override | |
visitStaticGetterDeclaration( | |
FunctionExpression node, | |
MethodElement getter, | |
Node body, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_STATIC_GETTER_DECL, | |
element: getter, body: body)); | |
apply(body, arg); | |
} | |
@override | |
visitStaticSetterDeclaration( | |
FunctionExpression node, | |
MethodElement setter, | |
NodeList parameters, | |
Node body, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_STATIC_SETTER_DECL, | |
element: setter, parameters: parameters, body: body)); | |
applyParameters(parameters, arg); | |
apply(body, arg); | |
} | |
@override | |
visitUnresolvedClassConstructorInvoke( | |
NewExpression node, | |
Element constructor, | |
MalformedType type, | |
NodeList arguments, | |
Selector selector, | |
arg) { | |
// TODO(johnniwinther): Test [type] and [selector]. | |
visits.add(new Visit( | |
VisitKind.VISIT_UNRESOLVED_CLASS_CONSTRUCTOR_INVOKE, | |
arguments: arguments)); | |
apply(arguments, arg); | |
} | |
@override | |
visitUnresolvedConstructorInvoke( | |
NewExpression node, | |
Element constructor, | |
DartType type, | |
NodeList arguments, | |
Selector selector, | |
arg) { | |
// TODO(johnniwinther): Test [type] and [selector]. | |
visits.add(new Visit( | |
VisitKind.VISIT_UNRESOLVED_CONSTRUCTOR_INVOKE, | |
arguments: arguments)); | |
apply(arguments, arg); | |
} | |
@override | |
visitConstConstructorInvoke( | |
NewExpression node, | |
ConstructedConstantExpression constant, | |
arg) { | |
visits.add(new Visit(VisitKind.VISIT_CONST_CONSTRUCTOR_INVOKE, | |
constant: constant.getText())); | |
} | |
@override | |
visitFactoryConstructorInvoke( | |
NewExpression node, | |
ConstructorElement constructor, | |
InterfaceType type, | |
NodeList arguments, | |
CallStructure callStructure, | |
arg) { | |
visits.add(new Visit( | |
VisitKind.VISIT_FACTORY_CONSTRUCTOR_INVOKE, | |
element: constructor, | |
type: type, | |
arguments: arguments, | |
selector: callStructure)); | |
apply(arguments, arg); | |
} | |
@override | |
visitGenerativeConstructorInvoke( | |
NewExpression node, | |
ConstructorElement constructor, | |
InterfaceType type, | |
NodeList arguments, | |
CallStructure callStructure, | |
arg) { | |
visits.add(new Visit( | |
VisitKind.VISIT_GENERATIVE_CONSTRUCTOR_INVOKE, | |
element: constructor, | |
type: type, | |
arguments: arguments, | |
selector: callStructure)); | |
apply(arguments, arg); | |
} | |
@override | |
visitRedirectingFactoryConstructorInvoke( | |
NewExpression node, | |
ConstructorElement constructor, | |
InterfaceType type, | |
ConstructorElement effectiveTarget, | |
InterfaceType effectiveTargetType, | |
NodeList arguments, | |
CallStructure callStructure, | |
arg) { | |
visits.add(new Visit( | |
VisitKind.VISIT_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE, | |
element: constructor, | |
type: type, | |
target: effectiveTarget, | |
targetType: effectiveTargetType, | |
arguments: arguments, | |
selector: callStructure)); | |
apply(arguments, arg); | |
} | |
@override | |
visitRedirectingGenerativeConstructorInvoke( | |
NewExpression node, | |
ConstructorElement constructor, | |
InterfaceType type, | |
NodeList arguments, | |
CallStructure callStructure, | |
arg) { | |
visits.add(new Visit( | |
VisitKind.VISIT_REDIRECTING_GENERATIVE_CONSTRUCTOR_INVOKE, | |
element: constructor, | |
type: type, | |
arguments: arguments, | |
selector: callStructure)); | |
apply(arguments, arg); | |
} | |
@override | |
visitAbstractClassConstructorInvoke( | |
NewExpression node, | |
ConstructorElement constructor, | |
InterfaceType type, | |
NodeList arguments, | |
CallStructure callStructure, | |
arg) { | |
visits.add(new Visit( | |
VisitKind.VISIT_ABSTRACT_CLASS_CONSTRUCTOR_INVOKE, | |
element: constructor, | |
type: type, | |
arguments: arguments, | |
selector: callStructure)); | |
apply(arguments, arg); | |
} | |
@override | |
visitUnresolvedRedirectingFactoryConstructorInvoke( | |
NewExpression node, | |
ConstructorElement constructor, | |
InterfaceType type, | |
NodeList arguments, | |
CallStructure callStructure, | |
arg) { | |
visits.add(new Visit( | |
VisitKind.VISIT_UNRESOLVED_REDIRECTING_FACTORY_CONSTRUCTOR_INVOKE, | |
element: constructor, | |
type: type, | |
arguments: arguments, | |
selector: callStructure)); | |
apply(arguments, arg); | |
} | |
} |