#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/BuiltinDialect.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/BuiltinTypes.h"
#include "gtest/gtest.h"
#include "../../test/lib/Dialect/Test/TestAttributes.h"
#include "../../test/lib/Dialect/Test/TestDialect.h"
#include "../../test/lib/Dialect/Test/TestOps.h"
#include "../../test/lib/Dialect/Test/TestTypes.h"
#include "mlir/IR/OwningOpRef.h"
usingnamespacemlir;
usingnamespacetest;
namespace {
struct Model
: public TestExternalTypeInterface::ExternalModel<Model, IntegerType> { … };
struct OverridingModel
: public TestExternalTypeInterface::ExternalModel<OverridingModel,
FloatType> { … };
TEST(InterfaceAttachment, Type) { … }
struct TestTypeModel
: public TestExternalTypeInterface::ExternalModel<TestTypeModel,
test::TestType> { … };
TEST(InterfaceAttachment, TypeDelayedContextConstruct) { … }
TEST(InterfaceAttachment, TypeDelayedContextAppend) { … }
TEST(InterfaceAttachment, RepeatedRegistration) { … }
TEST(InterfaceAttachment, TypeBuiltinDelayed) { … }
struct TestExternalFallbackTypeIntegerModel
: public TestExternalFallbackTypeInterface::ExternalModel<
TestExternalFallbackTypeIntegerModel, IntegerType> { … };
struct TestExternalFallbackTypeVectorModel
: public TestExternalFallbackTypeInterface::FallbackModel<
TestExternalFallbackTypeVectorModel> { … };
TEST(InterfaceAttachment, Fallback) { … }
struct TestExternalIntegerAttrModel
: public TestExternalAttrInterface::ExternalModel<
TestExternalIntegerAttrModel, IntegerAttr> { … };
TEST(InterfaceAttachment, Attribute) { … }
struct TestExternalSimpleAAttrModel
: public TestExternalAttrInterface::ExternalModel<
TestExternalSimpleAAttrModel, test::SimpleAAttr> { … };
TEST(InterfaceAttachmentTest, AttributeDelayed) { … }
struct TestExternalOpModel
: public TestExternalOpInterface::ExternalModel<TestExternalOpModel,
ModuleOp> { … };
struct TestExternalOpOverridingModel
: public TestExternalOpInterface::FallbackModel<
TestExternalOpOverridingModel> { … };
TEST(InterfaceAttachment, Operation) { … }
template <class ConcreteOp>
struct TestExternalTestOpModel
: public TestExternalOpInterface::ExternalModel<
TestExternalTestOpModel<ConcreteOp>, ConcreteOp> { … };
TEST(InterfaceAttachment, OperationDelayedContextConstruct) { … }
TEST(InterfaceAttachment, OperationDelayedContextAppend) { … }
TEST(InterfaceAttachmentTest, PromisedInterfaces) { … }
}