#ifndef V8_TORQUE_IMPLEMENTATION_VISITOR_H_
#define V8_TORQUE_IMPLEMENTATION_VISITOR_H_
#include <memory>
#include <optional>
#include <string>
#include "src/base/macros.h"
#include "src/torque/ast.h"
#include "src/torque/cfg.h"
#include "src/torque/cpp-builder.h"
#include "src/torque/declarations.h"
#include "src/torque/global-context.h"
#include "src/torque/type-oracle.h"
#include "src/torque/types.h"
#include "src/torque/utils.h"
namespace v8::internal::torque {
template <typename T>
class Binding;
class LocalValue;
class ImplementationVisitor;
class LocationReference { … };
struct InitializerResults { … };
struct LayoutForInitialization { … };
extern uint64_t next_unique_binding_index;
template <class T>
class Binding;
template <class T>
class BindingsManager { … };
template <class T>
class Binding : public T { … };
template <class T>
class BlockBindings { … };
class LocalValue { … };
struct LocalLabel { … };
template <>
inline std::string Binding<LocalValue>::BindingTypeString() const { … }
template <>
inline bool Binding<LocalValue>::CheckWritten() const { … }
template <>
inline std::string Binding<LocalLabel>::BindingTypeString() const { … }
template <>
inline bool Binding<LocalLabel>::CheckWritten() const { … }
struct Arguments { … };
bool IsCompatibleSignature(const Signature& sig, const TypeVector& types,
size_t label_count);
class ImplementationVisitor { … };
void ReportAllUnusedMacros();
}
#endif