namespace test {
class TestBaseTypeInterfacePrintTypeA;
namespace detail {
struct TestBaseTypeInterfacePrintTypeAInterfaceTraits { … };
template <typename ConcreteType>
struct TestBaseTypeInterfacePrintTypeATrait;
}
class TestBaseTypeInterfacePrintTypeA : public ::mlir::TypeInterface<TestBaseTypeInterfacePrintTypeA, detail::TestBaseTypeInterfacePrintTypeAInterfaceTraits> { … };
namespace detail {
template <typename ConcreteType>
struct TestBaseTypeInterfacePrintTypeATrait : public ::mlir::TypeInterface<TestBaseTypeInterfacePrintTypeA, detail::TestBaseTypeInterfacePrintTypeAInterfaceTraits>::Trait<ConcreteType> { … };
}
}
namespace test {
class TestBaseTypeInterfacePrintTypeB;
namespace detail {
struct TestBaseTypeInterfacePrintTypeBInterfaceTraits { … };
template <typename ConcreteType>
struct TestBaseTypeInterfacePrintTypeBTrait;
}
class TestBaseTypeInterfacePrintTypeB : public ::mlir::TypeInterface<TestBaseTypeInterfacePrintTypeB, detail::TestBaseTypeInterfacePrintTypeBInterfaceTraits> { … };
namespace detail {
template <typename ConcreteType>
struct TestBaseTypeInterfacePrintTypeBTrait : public ::mlir::TypeInterface<TestBaseTypeInterfacePrintTypeB, detail::TestBaseTypeInterfacePrintTypeBInterfaceTraits>::Trait<ConcreteType> { … };
}
}
namespace test {
class TestTypeInterface;
namespace detail {
struct TestTypeInterfaceInterfaceTraits { … };
template <typename ConcreteType>
struct TestTypeInterfaceTrait;
}
class TestTypeInterface : public ::mlir::TypeInterface<TestTypeInterface, detail::TestTypeInterfaceInterfaceTraits> { … };
namespace detail {
template <typename ConcreteType>
struct TestTypeInterfaceTrait : public ::mlir::TypeInterface<TestTypeInterface, detail::TestTypeInterfaceInterfaceTraits>::Trait<ConcreteType> { … };
}
}
namespace mlir {
class TestExternalTypeInterface;
namespace detail {
struct TestExternalTypeInterfaceInterfaceTraits { … };
template <typename ConcreteType>
struct TestExternalTypeInterfaceTrait;
}
class TestExternalTypeInterface : public ::mlir::TypeInterface<TestExternalTypeInterface, detail::TestExternalTypeInterfaceInterfaceTraits> { … };
namespace detail {
template <typename ConcreteType>
struct TestExternalTypeInterfaceTrait : public ::mlir::TypeInterface<TestExternalTypeInterface, detail::TestExternalTypeInterfaceInterfaceTraits>::Trait<ConcreteType> { … };
}
}
namespace mlir {
class TestExternalFallbackTypeInterface;
namespace detail {
struct TestExternalFallbackTypeInterfaceInterfaceTraits { … };
template <typename ConcreteType>
struct TestExternalFallbackTypeInterfaceTrait;
}
class TestExternalFallbackTypeInterface : public ::mlir::TypeInterface<TestExternalFallbackTypeInterface, detail::TestExternalFallbackTypeInterfaceInterfaceTraits> { … };
namespace detail {
template <typename ConcreteType>
struct TestExternalFallbackTypeInterfaceTrait : public ::mlir::TypeInterface<TestExternalFallbackTypeInterface, detail::TestExternalFallbackTypeInterfaceInterfaceTraits>::Trait<ConcreteType> { … };
}
}
namespace mlir {
class TestOptionallyImplementedTypeInterface;
namespace detail {
struct TestOptionallyImplementedTypeInterfaceInterfaceTraits { … };
template <typename ConcreteType>
struct TestOptionallyImplementedTypeInterfaceTrait;
}
class TestOptionallyImplementedTypeInterface : public ::mlir::TypeInterface<TestOptionallyImplementedTypeInterface, detail::TestOptionallyImplementedTypeInterfaceInterfaceTraits> { … };
namespace detail {
template <typename ConcreteType>
struct TestOptionallyImplementedTypeInterfaceTrait : public ::mlir::TypeInterface<TestOptionallyImplementedTypeInterface, detail::TestOptionallyImplementedTypeInterfaceInterfaceTraits>::Trait<ConcreteType> { … };
}
}
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 {
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 {
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 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 {
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 {
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) { … }
}