Jlm
TestType.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2025 Nico Reißmann <nico.reissmann@gmail.com>
3  * See COPYING for terms of redistribution.
4  */
5 
6 #ifndef JLM_RVSDG_TESTTYPE_HPP
7 #define JLM_RVSDG_TESTTYPE_HPP
8 
9 #include <jlm/rvsdg/type.hpp>
10 
11 namespace jlm::rvsdg
12 {
13 
17 class TestType final : public Type
18 {
19 public:
20  ~TestType() noexcept override;
21 
22  explicit constexpr TestType(const TypeKind kind) noexcept
23  : kind_(kind)
24  {}
25 
26  [[nodiscard]] std::string
27  debug_string() const override;
28 
29  bool
30  operator==(const Type & other) const noexcept override;
31 
32  [[nodiscard]] std::size_t
33  ComputeHash() const noexcept override;
34 
35  TypeKind
36  Kind() const noexcept override;
37 
38  static std::shared_ptr<const TestType>
40 
41  static std::shared_ptr<const TestType>
43 
44 private:
46 };
47 
48 }
49 
50 #endif
~TestType() noexcept override
std::string debug_string() const override
Definition: TestType.cpp:33
TypeKind Kind() const noexcept override
Return the kind of this type.
Definition: TestType.cpp:54
static std::shared_ptr< const TestType > createStateType()
Definition: TestType.cpp:60
static std::shared_ptr< const TestType > createValueType()
Definition: TestType.cpp:67
bool operator==(const Type &other) const noexcept override
Definition: TestType.cpp:39
std::size_t ComputeHash() const noexcept override
Definition: TestType.cpp:46
TypeKind
The kinds of types supported in rvsdg.
Definition: type.hpp:22