llvm/tools/mlir/test/lib/Dialect/Test/TestTypeInterfaces.h.inc

/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* Interface Declarations                                                     *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/

namespace test {
class TestBaseTypeInterfacePrintTypeA;
namespace detail {
struct TestBaseTypeInterfacePrintTypeAInterfaceTraits {};
template <typename ConcreteType>
struct TestBaseTypeInterfacePrintTypeATrait;

} // namespace detail
class TestBaseTypeInterfacePrintTypeA : public ::mlir::TypeInterface<TestBaseTypeInterfacePrintTypeA, detail::TestBaseTypeInterfacePrintTypeAInterfaceTraits> {};
namespace detail {
  template <typename ConcreteType>
  struct TestBaseTypeInterfacePrintTypeATrait : public ::mlir::TypeInterface<TestBaseTypeInterfacePrintTypeA, detail::TestBaseTypeInterfacePrintTypeAInterfaceTraits>::Trait<ConcreteType> {};
}// namespace detail
} // namespace test
namespace test {
class TestBaseTypeInterfacePrintTypeB;
namespace detail {
struct TestBaseTypeInterfacePrintTypeBInterfaceTraits {};
template <typename ConcreteType>
struct TestBaseTypeInterfacePrintTypeBTrait;

} // namespace detail
class TestBaseTypeInterfacePrintTypeB : public ::mlir::TypeInterface<TestBaseTypeInterfacePrintTypeB, detail::TestBaseTypeInterfacePrintTypeBInterfaceTraits> {};
namespace detail {
  template <typename ConcreteType>
  struct TestBaseTypeInterfacePrintTypeBTrait : public ::mlir::TypeInterface<TestBaseTypeInterfacePrintTypeB, detail::TestBaseTypeInterfacePrintTypeBInterfaceTraits>::Trait<ConcreteType> {};
}// namespace detail
} // namespace test
namespace test {
class TestTypeInterface;
namespace detail {
struct TestTypeInterfaceInterfaceTraits {};
template <typename ConcreteType>
struct TestTypeInterfaceTrait;

} // namespace detail
class TestTypeInterface : public ::mlir::TypeInterface<TestTypeInterface, detail::TestTypeInterfaceInterfaceTraits> {};
namespace detail {
  template <typename ConcreteType>
  struct TestTypeInterfaceTrait : public ::mlir::TypeInterface<TestTypeInterface, detail::TestTypeInterfaceInterfaceTraits>::Trait<ConcreteType> {};
}// namespace detail
} // namespace test
namespace mlir {
class TestExternalTypeInterface;
namespace detail {
struct TestExternalTypeInterfaceInterfaceTraits {};
template <typename ConcreteType>
struct TestExternalTypeInterfaceTrait;

} // namespace detail
class TestExternalTypeInterface : public ::mlir::TypeInterface<TestExternalTypeInterface, detail::TestExternalTypeInterfaceInterfaceTraits> {};
namespace detail {
  template <typename ConcreteType>
  struct TestExternalTypeInterfaceTrait : public ::mlir::TypeInterface<TestExternalTypeInterface, detail::TestExternalTypeInterfaceInterfaceTraits>::Trait<ConcreteType> {};
}// namespace detail
} // namespace mlir
namespace mlir {
class TestExternalFallbackTypeInterface;
namespace detail {
struct TestExternalFallbackTypeInterfaceInterfaceTraits {};
template <typename ConcreteType>
struct TestExternalFallbackTypeInterfaceTrait;

} // namespace detail
class TestExternalFallbackTypeInterface : public ::mlir::TypeInterface<TestExternalFallbackTypeInterface, detail::TestExternalFallbackTypeInterfaceInterfaceTraits> {};
namespace detail {
  template <typename ConcreteType>
  struct TestExternalFallbackTypeInterfaceTrait : public ::mlir::TypeInterface<TestExternalFallbackTypeInterface, detail::TestExternalFallbackTypeInterfaceInterfaceTraits>::Trait<ConcreteType> {};
}// namespace detail
} // namespace mlir
namespace mlir {
class TestOptionallyImplementedTypeInterface;
namespace detail {
struct TestOptionallyImplementedTypeInterfaceInterfaceTraits {};
template <typename ConcreteType>
struct TestOptionallyImplementedTypeInterfaceTrait;

} // namespace detail
class TestOptionallyImplementedTypeInterface : public ::mlir::TypeInterface<TestOptionallyImplementedTypeInterface, detail::TestOptionallyImplementedTypeInterfaceInterfaceTraits> {};
namespace detail {
  template <typename ConcreteType>
  struct TestOptionallyImplementedTypeInterfaceTrait : public ::mlir::TypeInterface<TestOptionallyImplementedTypeInterface, detail::TestOptionallyImplementedTypeInterfaceInterfaceTraits>::Trait<ConcreteType> {};
}// namespace detail
} // namespace mlir
namespace test {
template<typename ConcreteType>
void detail::TestBaseTypeInterfacePrintTypeAInterfaceTraits::Model<ConcreteType>::printTypeA(const Concept *impl, ::mlir::Type tablegen_opaque_val, ::mlir::Location loc) {}
template<typename ConcreteType>
void detail::TestBaseTypeInterfacePrintTypeAInterfaceTraits::FallbackModel<ConcreteType>::printTypeA(const Concept *impl, ::mlir::Type tablegen_opaque_val, ::mlir::Location loc) {}
} // namespace test
namespace test {
template<typename ConcreteType>
void detail::TestBaseTypeInterfacePrintTypeBInterfaceTraits::Model<ConcreteType>::printTypeB(const Concept *impl, ::mlir::Type tablegen_opaque_val, ::mlir::Location loc) {}
template<typename ConcreteType>
void detail::TestBaseTypeInterfacePrintTypeBInterfaceTraits::FallbackModel<ConcreteType>::printTypeB(const Concept *impl, ::mlir::Type tablegen_opaque_val, ::mlir::Location loc) {}
template<typename ConcreteModel, typename ConcreteType>
void detail::TestBaseTypeInterfacePrintTypeBInterfaceTraits::ExternalModel<ConcreteModel, ConcreteType>::printTypeB(::mlir::Type tablegen_opaque_val, ::mlir::Location loc) const {}
} // namespace test
namespace test {
template<typename ConcreteType>
void detail::TestTypeInterfaceInterfaceTraits::Model<ConcreteType>::printTypeC(const Concept *impl, ::mlir::Type tablegen_opaque_val, ::mlir::Location loc) {}
template<typename ConcreteType>
TestTypeInterface detail::TestTypeInterfaceInterfaceTraits::Model<ConcreteType>::printTypeRet(const Concept *impl, ::mlir::Type tablegen_opaque_val, ::mlir::Location loc) {}
template<typename ConcreteType>
void detail::TestTypeInterfaceInterfaceTraits::FallbackModel<ConcreteType>::printTypeC(const Concept *impl, ::mlir::Type tablegen_opaque_val, ::mlir::Location loc) {}
template<typename ConcreteType>
TestTypeInterface detail::TestTypeInterfaceInterfaceTraits::FallbackModel<ConcreteType>::printTypeRet(const Concept *impl, ::mlir::Type tablegen_opaque_val, ::mlir::Location loc) {}
template<typename ConcreteModel, typename ConcreteType>
TestTypeInterface detail::TestTypeInterfaceInterfaceTraits::ExternalModel<ConcreteModel, ConcreteType>::printTypeRet(::mlir::Type tablegen_opaque_val, ::mlir::Location loc) const {}
} // namespace test
namespace mlir {
template<typename ConcreteType>
unsigned detail::TestExternalTypeInterfaceInterfaceTraits::Model<ConcreteType>::getBitwidthPlusArg(const Concept *impl, ::mlir::Type tablegen_opaque_val, unsigned arg) {}
template<typename ConcreteType>
unsigned detail::TestExternalTypeInterfaceInterfaceTraits::Model<ConcreteType>::staticGetSomeValuePlusArg(unsigned arg) {}
template<typename ConcreteType>
unsigned detail::TestExternalTypeInterfaceInterfaceTraits::Model<ConcreteType>::getBitwidthPlusDoubleArgument(const Concept *impl, ::mlir::Type tablegen_opaque_val, unsigned arg) {}
template<typename ConcreteType>
unsigned detail::TestExternalTypeInterfaceInterfaceTraits::Model<ConcreteType>::staticGetArgument(unsigned arg) {}
template<typename ConcreteType>
unsigned detail::TestExternalTypeInterfaceInterfaceTraits::FallbackModel<ConcreteType>::getBitwidthPlusArg(const Concept *impl, ::mlir::Type tablegen_opaque_val, unsigned arg) {}
template<typename ConcreteType>
unsigned detail::TestExternalTypeInterfaceInterfaceTraits::FallbackModel<ConcreteType>::staticGetSomeValuePlusArg(unsigned arg) {}
template<typename ConcreteType>
unsigned detail::TestExternalTypeInterfaceInterfaceTraits::FallbackModel<ConcreteType>::getBitwidthPlusDoubleArgument(const Concept *impl, ::mlir::Type tablegen_opaque_val, unsigned arg) {}
template<typename ConcreteType>
unsigned detail::TestExternalTypeInterfaceInterfaceTraits::FallbackModel<ConcreteType>::staticGetArgument(unsigned arg) {}
template<typename ConcreteModel, typename ConcreteType>
unsigned detail::TestExternalTypeInterfaceInterfaceTraits::ExternalModel<ConcreteModel, ConcreteType>::getBitwidthPlusDoubleArgument(::mlir::Type tablegen_opaque_val, unsigned arg) const {}
template<typename ConcreteModel, typename ConcreteType>
unsigned detail::TestExternalTypeInterfaceInterfaceTraits::ExternalModel<ConcreteModel, ConcreteType>::staticGetArgument(unsigned arg) {}
} // namespace mlir
namespace mlir {
template<typename ConcreteType>
unsigned detail::TestExternalFallbackTypeInterfaceInterfaceTraits::Model<ConcreteType>::getBitwidth(const Concept *impl, ::mlir::Type tablegen_opaque_val) {}
template<typename ConcreteType>
unsigned detail::TestExternalFallbackTypeInterfaceInterfaceTraits::FallbackModel<ConcreteType>::getBitwidth(const Concept *impl, ::mlir::Type tablegen_opaque_val) {}
template<typename ConcreteModel, typename ConcreteType>
unsigned detail::TestExternalFallbackTypeInterfaceInterfaceTraits::ExternalModel<ConcreteModel, ConcreteType>::getBitwidth(::mlir::Type tablegen_opaque_val) const {}
} // namespace mlir
namespace mlir {
template<typename ConcreteType>
bool detail::TestOptionallyImplementedTypeInterfaceInterfaceTraits::Model<ConcreteType>::getImplementsInterface(const Concept *impl, ::mlir::Type tablegen_opaque_val) {}
template<typename ConcreteType>
bool detail::TestOptionallyImplementedTypeInterfaceInterfaceTraits::FallbackModel<ConcreteType>::getImplementsInterface(const Concept *impl, ::mlir::Type tablegen_opaque_val) {}
} // namespace mlir