// RUN: mlir-tblgen -I %S/../../include %s 2>&1 | FileCheck %s --implicit-check-not warning:
include "mlir/IR/OpBase.td"
def Test_Dialect : Dialect {
let name = "test_dialect";
}
def OpTraitA : NativeOpTrait<"OpTraitA">, Deprecated<"use `bar` instead">;
// CHECK: :[[# @LINE + 1]]:{{[0-9]+}}: warning: Using deprecated def `OpTraitA`
def A_AsField {
NativeOpTrait value = OpTraitA;
}
// CHECK: :[[# @LINE + 1]]:{{[0-9]+}}: warning: Using deprecated def `OpTraitA`
def B_InList {
list<NativeOpTrait> value = [OpTraitA];
}
// CHECK: :[[# @LINE + 1]]:{{[0-9]+}}: warning: Using deprecated def `OpTraitA`
def C_InListList {
list<list<NativeOpTrait>> value = [[OpTraitA]];
}
class Base;
// CHECK: :[[# @LINE + 1]]:{{[0-9]+}}: warning: Using deprecated def `OpTraitA`
def D_InDagAsOperator {
dag value = (OpTraitA $test);
}
// CHECK: :[[# @LINE + 1]]:{{[0-9]+}}: warning: Using deprecated def `OpTraitA`
def E_InDagAsArg : Base {
dag value = (ins OpTraitA:$test);
}
class ThingTakingList<list<NativeOpTrait> l> {
list<NativeOpTrait> i = l; // avoid unused variable warning.
}
// CHECK: :[[# @LINE + 1]]:{{[0-9]+}}: warning: Using deprecated def `OpTraitA`
def F_AsFieldWithinAnonymousDef {
ThingTakingList value = ThingTakingList<[OpTraitA]>;
}
// CHECK: :[[# @LINE + 1]]:{{[0-9]+}}: warning: Using deprecated def `OpTraitA`
def G_InDagAsAnonymousDefOperator {
dag value = (ThingTakingList<[OpTraitA]> $test);
}
def H_ButNotTransitivelyInNonAnonymousDef {
Base value = E_InDagAsArg;
}