namespace mlir {
namespace omp {
class PointerLikeType;
namespace detail {
struct PointerLikeTypeInterfaceTraits { … };
template <typename ConcreteType>
struct PointerLikeTypeTrait;
}
class PointerLikeType : public ::mlir::TypeInterface<PointerLikeType, detail::PointerLikeTypeInterfaceTraits> { … };
namespace detail {
template <typename ConcreteType>
struct PointerLikeTypeTrait : public ::mlir::TypeInterface<PointerLikeType, detail::PointerLikeTypeInterfaceTraits>::Trait<ConcreteType> { … };
}
}
}
namespace mlir {
namespace omp {
template<typename ConcreteType>
::mlir::Type detail::PointerLikeTypeInterfaceTraits::Model<ConcreteType>::getElementType(const Concept *impl, ::mlir::Type tablegen_opaque_val) { … }
template<typename ConcreteType>
::mlir::Type detail::PointerLikeTypeInterfaceTraits::FallbackModel<ConcreteType>::getElementType(const Concept *impl, ::mlir::Type tablegen_opaque_val) { … }
}
}