// RUN: mlir-opt %s -test-recursive-types | FileCheck %s // CHECK: !testrec = !test.test_rec> // CHECK: ![[$NAME:.*]] = !test.test_rec_alias> // CHECK: ![[$NAME2:.*]] = !test.test_rec_alias, i32>> // CHECK-LABEL: @roundtrip func.func @roundtrip() { // CHECK: !test.test_rec> "test.dummy_op_for_roundtrip"() : () -> !test.test_rec> // CHECK: !test.test_rec> "test.dummy_op_for_roundtrip"() : () -> !test.test_rec> // Make sure walkSubElementType, which is used to generate aliases, doesn't go // into inifinite recursion. // CHECK: !testrec "test.dummy_op_for_roundtrip"() : () -> !test.test_rec> // CHECK: () -> ![[$NAME]] // CHECK: () -> ![[$NAME]] "test.dummy_op_for_roundtrip"() : () -> !test.test_rec_alias> "test.dummy_op_for_roundtrip"() : () -> !test.test_rec_alias> // CHECK: () -> ![[$NAME2]] // CHECK: () -> ![[$NAME2]] "test.dummy_op_for_roundtrip"() : () -> !test.test_rec_alias, i32>> "test.dummy_op_for_roundtrip"() : () -> !test.test_rec_alias, i32>> return } // CHECK-LABEL: @create func.func @create() { // CHECK: !test.test_rec> return }