// RUN: mlir-pdll %s -I %S -split-input-file | FileCheck %s // CHECK: Module // CHECK: `-UserRewriteDecl {{.*}} Name ResultType> Rewrite Foo(); // ----- // CHECK: Module // CHECK: `-UserRewriteDecl {{.*}} Name ResultType> Code< /* Native Code */ > Rewrite Foo() [{ /* Native Code */ }]; // ----- // CHECK: Module // CHECK: `-UserRewriteDecl {{.*}} Name ResultType // CHECK: `Inputs` // CHECK: `-VariableDecl {{.*}} Name Type // CHECK: `Results` // CHECK: `-VariableDecl {{.*}} Name<> Type // CHECK: `-CompoundStmt {{.*}} // CHECK: `-ReturnStmt {{.*}} // CHECK: `-MemberAccessExpr {{.*}} Member<$results> Type // CHECK: `-DeclRefExpr {{.*}} Type // CHECK: `-VariableDecl {{.*}} Name Type Rewrite Foo(arg: Op) -> Value => arg; // ----- // CHECK: Module // CHECK: `-UserRewriteDecl {{.*}} Name ResultType> // CHECK: `Results` // CHECK: |-VariableDecl {{.*}} Name Type // CHECK: | `Constraints` // CHECK: | `-ValueConstraintDecl {{.*}} // CHECK: `-VariableDecl {{.*}} Name Type // CHECK: `Constraints` // CHECK: `-AttrConstraintDecl {{.*}} // CHECK: `-CompoundStmt {{.*}} // CHECK: `-ReturnStmt {{.*}} // CHECK: `-TupleExpr {{.*}} Type> // CHECK: |-MemberAccessExpr {{.*}} Member<0> Type // CHECK: | `-TupleExpr {{.*}} Type> // CHECK: `-MemberAccessExpr {{.*}} Member<1> Type // CHECK: `-TupleExpr {{.*}} Type> Rewrite Foo() -> (result1: Value, result2: Attr) => (_: Value, attr<"10">); // ----- // Test that anonymous Rewrites are uniquely named. // CHECK: Module // CHECK: UserRewriteDecl {{.*}} Name<> ResultType> // CHECK: UserRewriteDecl {{.*}} Name<> ResultType Rewrite Outer() { Rewrite() {}; Rewrite() => attr<"10">; }