1// RUN: mlir-opt %s --irdl-file=%S/cyclic-types.irdl.mlir -split-input-file -verify-diagnostics | FileCheck %s 2 3// Types that have cyclic references. 4 5// CHECK: !testd.self_referencing<i32> 6func.func @no_references(%v: !testd.self_referencing<i32>) { 7 return 8} 9 10// ----- 11 12// CHECK: !testd.self_referencing<!testd.self_referencing<i32>> 13func.func @one_reference(%v: !testd.self_referencing<!testd.self_referencing<i32>>) { 14 return 15} 16 17// ----- 18 19// expected-error@+1 {{'i64' does not satisfy the constraint}} 20func.func @wrong_parameter(%v: !testd.self_referencing<i64>) { 21 return 22} 23 24// ----- 25 26// CHECK: !testd.type1<i32> 27func.func @type1_no_references(%v: !testd.type1<i32>) { 28 return 29} 30 31// ----- 32 33// CHECK: !testd.type1<!testd.type2<i32>> 34func.func @type1_one_references(%v: !testd.type1<!testd.type2<i32>>) { 35 return 36} 37 38// ----- 39 40// CHECK: !testd.type1<!testd.type2<!testd.type1<i32>>> 41func.func @type1_two_references(%v: !testd.type1<!testd.type2<!testd.type1<i32>>>) { 42 return 43} 44 45// ----- 46 47// expected-error@+1 {{'i64' does not satisfy the constraint}} 48func.func @wrong_parameter_type1(%v: !testd.type1<i64>) { 49 return 50} 51 52// ----- 53 54// expected-error@+1 {{'i64' does not satisfy the constraint}} 55func.func @wrong_parameter_type2(%v: !testd.type2<i64>) { 56 return 57} 58