namespace mlir {
namespace LLVM {
class PointerElementTypeInterface;
namespace detail {
struct PointerElementTypeInterfaceInterfaceTraits { … };
template <typename ConcreteType>
struct PointerElementTypeInterfaceTrait;
}
class PointerElementTypeInterface : public ::mlir::TypeInterface<PointerElementTypeInterface, detail::PointerElementTypeInterfaceInterfaceTraits> { … };
namespace detail {
template <typename ConcreteType>
struct PointerElementTypeInterfaceTrait : public ::mlir::TypeInterface<PointerElementTypeInterface, detail::PointerElementTypeInterfaceInterfaceTraits>::Trait<ConcreteType> { … };
}
}
}
namespace mlir {
namespace LLVM {
template<typename ConcreteType>
unsigned detail::PointerElementTypeInterfaceInterfaceTraits::Model<ConcreteType>::getSizeInBytes(const Concept *impl, ::mlir::Type tablegen_opaque_val, const ::mlir::DataLayout & dataLayout) { … }
template<typename ConcreteType>
unsigned detail::PointerElementTypeInterfaceInterfaceTraits::FallbackModel<ConcreteType>::getSizeInBytes(const Concept *impl, ::mlir::Type tablegen_opaque_val, const ::mlir::DataLayout & dataLayout) { … }
template<typename ConcreteModel, typename ConcreteType>
unsigned detail::PointerElementTypeInterfaceInterfaceTraits::ExternalModel<ConcreteModel, ConcreteType>::getSizeInBytes(::mlir::Type tablegen_opaque_val, const ::mlir::DataLayout &dataLayout) const { … }
}
}