golang.org/x/arch@v0.17.0/internal/unify/testdata/unify.yaml (about) 1 # Basic tests of unification 2 3 # 4 # Terminals 5 # 6 7 unify: 8 - _ 9 - _ 10 want: 11 _ 12 --- 13 unify: 14 - _ 15 - test 16 want: 17 test 18 --- 19 unify: 20 - test 21 - t?est 22 want: 23 test 24 --- 25 unify: 26 - 1 27 - 1 28 want: 29 1 30 --- 31 unify: 32 - test 33 - foo 34 want: 35 _|_ 36 37 # 38 # Tuple 39 # 40 41 --- 42 unify: 43 - [a, b] 44 - [a, b] 45 want: 46 [a, b] 47 --- 48 unify: 49 - [a, _] 50 - [_, b] 51 want: 52 [a, b] 53 --- 54 unify: 55 - ["ab?c", "de?f"] 56 - [ac, def] 57 want: 58 [ac, def] 59 60 # 61 # Repeats 62 # 63 64 --- 65 unify: 66 - !repeat [a] 67 - [_] 68 want: 69 [a] 70 --- 71 unify: 72 - !repeat [a] 73 - [_, _] 74 want: 75 [a, a] 76 --- 77 unify: 78 - !repeat [a] 79 - [b] 80 want: 81 _|_ 82 --- 83 unify: 84 - !repeat [xy*] 85 - [x, xy, xyy] 86 want: 87 [x, xy, xyy] 88 --- 89 unify: 90 - !repeat [xy*] 91 - !repeat ["xz?y*"] 92 - [x, xy, xyy] 93 want: 94 [x, xy, xyy] 95 --- 96 unify: 97 - !repeat [!sum [a, b]] 98 - [a, b, a] 99 all: 100 - [a, b, a] 101 --- 102 unify: 103 - !repeat [!sum [a, b]] 104 - !repeat [!sum [b, c]] 105 - [b, b, b] 106 all: 107 - [b, b, b] 108 --- 109 unify: 110 - !repeat [!sum [a, b]] 111 - !repeat [!sum [b, c]] 112 - [a] 113 all: [] 114 115 # 116 # Def 117 # 118 119 --- 120 unify: 121 - {a: a, b: b} 122 - {a: a, b: b} 123 want: 124 {a: a, b: b} 125 --- 126 unify: 127 - {a: a} 128 - {b: b} 129 want: 130 {a: a, b: b} 131 132 # 133 # Sum 134 # 135 136 --- 137 unify: 138 - !sum [1, 2] 139 - !sum [2, 3] 140 all: 141 - 2 142 --- 143 unify: 144 - !sum [{label: a, value: abc}, {label: b, value: def}] 145 - !sum [{value: "ab?c", extra: d}, {value: "def?", extra: g}] 146 all: 147 - {extra: d, label: a, value: abc} 148 - {extra: g, label: b, value: def} 149 --- 150 # A sum of repeats must deal with different dynamically-created variables in 151 # each branch. 152 unify: 153 - !sum [!repeat [a], !repeat [b]] 154 - [a, a, a] 155 all: 156 - [a, a, a] 157 --- 158 unify: 159 - !sum [!repeat [a], !repeat [b]] 160 - [a, a, b] 161 all: [] 162 --- 163 # Exercise sumEnvs with more than one result 164 unify: 165 - !sum 166 - [a|b, c|d] 167 - [e, g] 168 - [!sum [a, b, e, f], !sum [c, d, g, h]] 169 all: 170 - [a, c] 171 - [a, d] 172 - [b, c] 173 - [b, d] 174 - [e, g]