5#ifndef V8_TORQUE_DECLARATION_VISITOR_H_
6#define V8_TORQUE_DECLARATION_VISITOR_H_
86 std::string external_name,
87 std::string readable_name,
Signature signature,
88 std::optional<std::string> use_counter_name,
89 std::optional<Statement*> body);
116 std::optional<const SpecializationDeclaration*> explicit_specialization,
std::vector< Declaration * > & declarations()
void SetIdentifierPosition(const SourcePosition &position)
void SetPosition(const SourcePosition &position)
static Signature MakeSpecializedSignature(const SpecializationKey< GenericCallable > &key)
static void Visit(GenericTypeDeclaration *decl)
static Callable * SpecializeImplicit(const SpecializationKey< GenericCallable > &key)
static Callable * Specialize(const SpecializationKey< GenericCallable > &key, CallableDeclaration *declaration, std::optional< const SpecializationDeclaration * > explicit_specialization, std::optional< Statement * > body, SourcePosition position)
static void Visit(TypeDeclaration *decl)
static void Visit(StructDeclaration *decl)
static void DeclareSpecializedTypes(const SpecializationKey< GenericCallable > &key)
static void Visit(Ast *ast)
static Builtin * CreateBuiltin(BuiltinDeclaration *decl, std::string external_name, std::string readable_name, Signature signature, std::optional< std::string > use_counter_name, std::optional< Statement * > body)
static void Visit(GenericCallableDeclaration *decl)
static void Visit(NamespaceDeclaration *decl)
static GenericCallable * DeclareGenericCallable(const std::string &name, GenericCallableDeclaration *ast_node)
static const Type * LookupType(const QualifiedName &name)
static TypeAlias * PredeclareTypeAlias(const Identifier *name, TypeDeclaration *type, bool redeclaration)
static GenericType * DeclareGenericType(const std::string &name, GenericTypeDeclaration *ast_node)
static Namespace * GetDefaultNamespace()
static bool collect_kythe_data()
static V8_EXPORT_PRIVATE kythe_entity_t AddTypeDefinition(const Declarable *type_decl)
static void ResolvePredeclarations()
static void Predeclare(NamespaceDeclaration *decl)
static void Predeclare(GenericTypeDeclaration *generic_decl)
static void Predeclare(TypeDeclaration *decl)
static void Predeclare(StructDeclaration *decl)
static void Predeclare(GenericCallableDeclaration *generic_decl)
static void Predeclare(Ast *ast)
Namespace * GetOrCreateNamespace(const std::string &name)
CallableDeclaration * declaration
TypeDeclaration * declaration
std::vector< Declaration * > declarations