using InterfaceVectorT = std::vector<const DialectInterface *>;
public:
- DialectInterfaceCollectionBase(MLIRContext *ctx, TypeID interfaceKind);
+ DialectInterfaceCollectionBase(MLIRContext *ctx, TypeID interfaceKind,
+ StringRef interfaceName);
virtual ~DialectInterfaceCollectionBase();
protected:
/// Collect the registered dialect interfaces within the provided context.
DialectInterfaceCollection(MLIRContext *ctx)
: detail::DialectInterfaceCollectionBase(
- ctx, InterfaceType::getInterfaceID()) {}
+ ctx, InterfaceType::getInterfaceID(),
+ llvm::getTypeName<InterfaceType>()) {}
/// Get the interface for a given object, or null if one is not registered.
/// The object may be a dialect or an operation instance.
}
DialectInterfaceCollectionBase::DialectInterfaceCollectionBase(
- MLIRContext *ctx, TypeID interfaceKind) {
+ MLIRContext *ctx, TypeID interfaceKind, StringRef interfaceName) {
for (auto *dialect : ctx->getLoadedDialects()) {
+#ifndef NDEBUG
+ dialect->handleUseOfUndefinedPromisedInterface(interfaceKind, interfaceName);
+#endif
if (auto *interface = dialect->getRegisteredInterface(interfaceKind)) {
interfaces.insert(interface);
orderedInterfaces.push_back(interface);