namespace mlir {
class TestExternalAttrInterface;
namespace detail {
struct TestExternalAttrInterfaceInterfaceTraits { … };
template <typename ConcreteAttr>
struct TestExternalAttrInterfaceTrait;
}
class TestExternalAttrInterface : public ::mlir::AttributeInterface<TestExternalAttrInterface, detail::TestExternalAttrInterfaceInterfaceTraits> { … };
namespace detail {
template <typename ConcreteAttr>
struct TestExternalAttrInterfaceTrait : public ::mlir::AttributeInterface<TestExternalAttrInterface, detail::TestExternalAttrInterfaceInterfaceTraits>::Trait<ConcreteAttr> { … };
}
}
namespace mlir {
class TestOptionallyImplementedAttrInterface;
namespace detail {
struct TestOptionallyImplementedAttrInterfaceInterfaceTraits { … };
template <typename ConcreteAttr>
struct TestOptionallyImplementedAttrInterfaceTrait;
}
class TestOptionallyImplementedAttrInterface : public ::mlir::AttributeInterface<TestOptionallyImplementedAttrInterface, detail::TestOptionallyImplementedAttrInterfaceInterfaceTraits> { … };
namespace detail {
template <typename ConcreteAttr>
struct TestOptionallyImplementedAttrInterfaceTrait : public ::mlir::AttributeInterface<TestOptionallyImplementedAttrInterface, detail::TestOptionallyImplementedAttrInterfaceInterfaceTraits>::Trait<ConcreteAttr> { … };
}
}
namespace mlir {
template<typename ConcreteAttr>
const ::mlir::Dialect *detail::TestExternalAttrInterfaceInterfaceTraits::Model<ConcreteAttr>::getDialectPtr(const Concept *impl, ::mlir::Attribute tablegen_opaque_val) { … }
template<typename ConcreteAttr>
int detail::TestExternalAttrInterfaceInterfaceTraits::Model<ConcreteAttr>::getSomeNumber() { … }
template<typename ConcreteAttr>
const ::mlir::Dialect *detail::TestExternalAttrInterfaceInterfaceTraits::FallbackModel<ConcreteAttr>::getDialectPtr(const Concept *impl, ::mlir::Attribute tablegen_opaque_val) { … }
template<typename ConcreteAttr>
int detail::TestExternalAttrInterfaceInterfaceTraits::FallbackModel<ConcreteAttr>::getSomeNumber() { … }
}
namespace mlir {
template<typename ConcreteAttr>
bool detail::TestOptionallyImplementedAttrInterfaceInterfaceTraits::Model<ConcreteAttr>::getImplementsInterface(const Concept *impl, ::mlir::Attribute tablegen_opaque_val) { … }
template<typename ConcreteAttr>
bool detail::TestOptionallyImplementedAttrInterfaceInterfaceTraits::FallbackModel<ConcreteAttr>::getImplementsInterface(const Concept *impl, ::mlir::Attribute tablegen_opaque_val) { … }
}