|
48 | 48 |
|
49 | 49 | {function, get_two_tuple_elements, 0, 2}. |
50 | 50 | {label,1}. |
51 | | - {line,[{location,"get_two_tuple_elements.erl",4}]}. |
| 51 | + {line,[{location,"erts/emulator/test/tuple_SUITE_data/get_two_tuple_elements.erl", |
| 52 | + 26}]}. |
52 | 53 | {func_info,{atom,get_two_tuple_elements},{atom,get_two_tuple_elements},0}. |
53 | 54 | {label,2}. |
54 | 55 | {allocate,2,0}. |
55 | 56 | {init_yregs,{list,[{y,0},{y,1}]}}. |
56 | 57 | {move,{atom,x},{x,0}}. |
57 | | - {line,[{location,"get_two_tuple_elements.erl",5}]}. |
58 | | - {call,1,{f,9}}. |
59 | | - {'%',{var_info,{x,0}, |
60 | | - [{type,{t_union,{t_atom,[x]}, |
61 | | - none, |
62 | | - {t_integer,{1,2}}, |
63 | | - none,none,none}}]}}. |
| 58 | + {line,[{location,"erts/emulator/test/tuple_SUITE_data/get_two_tuple_elements.erl", |
| 59 | + 27}]}. |
| 60 | + {call,1,{f,9}}. % id/1 |
| 61 | + {'%', |
| 62 | + {var_info, |
| 63 | + {x,0}, |
| 64 | + [{type, |
| 65 | + #beam_types:t_union{ |
| 66 | + atom = #beam_types:t_atom{elements = [x]}, |
| 67 | + list = none, |
| 68 | + number = #beam_types:t_integer{elements = {1,2}}, |
| 69 | + tuple_set = none,native_record_set = none, |
| 70 | + other = none}}]}}. |
64 | 71 | {move,{x,0},{y,1}}. |
65 | 72 | {move,{integer,1},{x,0}}. |
66 | | - {line,[{location,"get_two_tuple_elements.erl",5}]}. |
67 | | - {call,1,{f,9}}. |
68 | | - {'%',{var_info,{x,0}, |
69 | | - [{type,{t_union,{t_atom,[x]}, |
70 | | - none, |
71 | | - {t_integer,{1,2}}, |
72 | | - none,none,none}}]}}. |
| 73 | + {call,1,{f,9}}. % id/1 |
| 74 | + {'%', |
| 75 | + {var_info, |
| 76 | + {x,0}, |
| 77 | + [{type, |
| 78 | + #beam_types:t_union{ |
| 79 | + atom = #beam_types:t_atom{elements = [x]}, |
| 80 | + list = none, |
| 81 | + number = #beam_types:t_integer{elements = {1,2}}, |
| 82 | + tuple_set = none,native_record_set = none, |
| 83 | + other = none}}]}}. |
73 | 84 | {move,{x,0},{y,0}}. |
74 | 85 | {move,{integer,2},{x,0}}. |
75 | | - {line,[{location,"get_two_tuple_elements.erl",5}]}. |
76 | | - {call,1,{f,9}}. |
77 | | - {'%',{var_info,{x,0}, |
78 | | - [{type,{t_union,{t_atom,[x]}, |
79 | | - none, |
80 | | - {t_integer,{1,2}}, |
81 | | - none,none,none}}]}}. |
| 86 | + {call,1,{f,9}}. % id/1 |
| 87 | + {'%', |
| 88 | + {var_info, |
| 89 | + {x,0}, |
| 90 | + [{type, |
| 91 | + #beam_types:t_union{ |
| 92 | + atom = #beam_types:t_atom{elements = [x]}, |
| 93 | + list = none, |
| 94 | + number = #beam_types:t_integer{elements = {1,2}}, |
| 95 | + tuple_set = none,native_record_set = none, |
| 96 | + other = none}}]}}. |
82 | 97 | {test_heap,7,1}. |
83 | 98 | {put_tuple2,{x,0},{list,[{atom,x},{atom,y},{x,0}]}}. |
84 | 99 | {put_tuple2,{x,1},{list,[{y,0},{x,0}]}}. |
85 | 100 | {move,{y,1},{x,0}}. |
86 | 101 | {trim,2,0}. |
87 | | - {line,[{location,"get_two_tuple_elements.erl",5}]}. |
88 | | - {call,2,{f,5}}. |
89 | | - {'%',{var_info,{x,0},[{type,{t_number,any}}]}}. |
90 | | - {test,is_eq_exact,{f,3},[{x,0},{integer,3}]}. |
| 102 | + {call,2,{f,5}}. % xx/2 |
| 103 | + {'%',{var_info,{x,0},[{type,#beam_types:t_integer{elements = {2,4}}}]}}. |
| 104 | + {test,is_eq_exact, |
| 105 | + {f,3}, |
| 106 | + [{tr,{x,0},#beam_types:t_integer{elements = {2,4}}},{integer,3}]}. |
91 | 107 | {move,{atom,ok},{x,0}}. |
92 | 108 | {deallocate,0}. |
93 | 109 | return. |
94 | 110 | {label,3}. |
95 | | - {line,[{location,"get_two_tuple_elements.erl",5}]}. |
96 | 111 | {badmatch,{x,0}}. |
97 | 112 |
|
98 | 113 |
|
99 | 114 | {function, xx, 2, 5}. |
100 | 115 | {label,4}. |
101 | | - {line,[{location,"get_two_tuple_elements.erl",8}]}. |
| 116 | + {line,[{location,"erts/emulator/test/tuple_SUITE_data/get_two_tuple_elements.erl", |
| 117 | + 30}]}. |
102 | 118 | {func_info,{atom,get_two_tuple_elements},{atom,xx},2}. |
103 | 119 | {label,5}. |
104 | | - {'%',{var_info,{x,0}, |
105 | | - [{type,{t_union,{t_atom,[x]}, |
106 | | - none, |
107 | | - {t_integer,{1,2}}, |
108 | | - none,none,none}}]}}. |
| 120 | + {'%', |
| 121 | + {var_info, |
| 122 | + {x,0}, |
| 123 | + [{type, |
| 124 | + #beam_types:t_union{ |
| 125 | + atom = #beam_types:t_atom{elements = [x]}, |
| 126 | + list = none, |
| 127 | + number = #beam_types:t_integer{elements = {1,2}}, |
| 128 | + tuple_set = none,native_record_set = none, |
| 129 | + other = none}}]}}. |
109 | 130 | {'%', |
110 | 131 | {var_info, |
111 | 132 | {x,1}, |
112 | 133 | [{type, |
113 | | - {t_tuple,2,true, |
114 | | - #{1 => {t_union,{t_atom,[x]},none,{t_integer,{1,2}},none,none,none}, |
115 | | - 2 => |
116 | | - {t_tuple,3,true, |
117 | | - #{1 => {t_atom,[x]}, |
118 | | - 2 => {t_atom,[y]}, |
119 | | - 3 => |
120 | | - {t_union, |
121 | | - {t_atom,[x]}, |
122 | | - none, |
123 | | - {t_integer,{1,2}}, |
124 | | - none,none,none}}}}}}]}}. |
| 134 | + #beam_types:t_tuple{ |
| 135 | + size = 2,exact = true, |
| 136 | + elements = |
| 137 | + #{1 => |
| 138 | + #beam_types:t_union{ |
| 139 | + atom = #beam_types:t_atom{elements = [x]}, |
| 140 | + list = none, |
| 141 | + number = #beam_types:t_integer{elements = {1,2}}, |
| 142 | + tuple_set = none,native_record_set = none,other = none}, |
| 143 | + 2 => |
| 144 | + #beam_types:t_tuple{ |
| 145 | + size = 3,exact = true, |
| 146 | + elements = |
| 147 | + #{1 => #beam_types:t_atom{elements = [x]}, |
| 148 | + 2 => #beam_types:t_atom{elements = [y]}, |
| 149 | + 3 => |
| 150 | + #beam_types:t_union{ |
| 151 | + atom = #beam_types:t_atom{elements = [x]}, |
| 152 | + list = none, |
| 153 | + number = #beam_types:t_integer{elements = {1,2}}, |
| 154 | + tuple_set = none,native_record_set = none, |
| 155 | + other = none}}}}}}]}}. |
125 | 156 | {get_tuple_element,{x,1},0,{x,0}}. |
126 | 157 | {get_tuple_element,{x,1},1,{x,1}}. |
127 | 158 | {get_tuple_element,{x,1},2,{x,1}}. |
128 | 159 | {move,nil,{x,2}}. |
129 | | - {call_only,3,{f,7}}. |
| 160 | + {call_only,3,{f,7}}. % yy/3 |
130 | 161 |
|
131 | 162 |
|
132 | 163 | {function, yy, 3, 7}. |
133 | 164 | {label,6}. |
134 | | - {line,[{location,"get_two_tuple_elements.erl",17}]}. |
| 165 | + {line,[{location,"erts/emulator/test/tuple_SUITE_data/get_two_tuple_elements.erl", |
| 166 | + 39}]}. |
135 | 167 | {func_info,{atom,get_two_tuple_elements},{atom,yy},3}. |
136 | 168 | {label,7}. |
137 | | - {'%',{var_info,{x,0}, |
138 | | - [{type,{t_union,{t_atom,[x]}, |
139 | | - none, |
140 | | - {t_integer,{1,2}}, |
141 | | - none,none,none}}]}}. |
142 | | - {'%',{var_info,{x,1}, |
143 | | - [{type,{t_union,{t_atom,[x]}, |
144 | | - none, |
145 | | - {t_integer,{1,2}}, |
146 | | - none,none,none}}]}}. |
| 169 | + {'%', |
| 170 | + {var_info, |
| 171 | + {x,0}, |
| 172 | + [{type, |
| 173 | + #beam_types:t_union{ |
| 174 | + atom = #beam_types:t_atom{elements = [x]}, |
| 175 | + list = none, |
| 176 | + number = #beam_types:t_integer{elements = {1,2}}, |
| 177 | + tuple_set = none,native_record_set = none, |
| 178 | + other = none}}]}}. |
| 179 | + {'%', |
| 180 | + {var_info, |
| 181 | + {x,1}, |
| 182 | + [{type, |
| 183 | + #beam_types:t_union{ |
| 184 | + atom = #beam_types:t_atom{elements = [x]}, |
| 185 | + list = none, |
| 186 | + number = #beam_types:t_integer{elements = {1,2}}, |
| 187 | + tuple_set = none,native_record_set = none, |
| 188 | + other = none}}]}}. |
147 | 189 | {'%',{var_info,{x,2},[{type,nil}]}}. |
148 | | - {line,[{location,"get_two_tuple_elements.erl",18}]}. |
149 | | - {gc_bif,'+',{f,0},2,[{x,0},{x,1}],{x,0}}. |
| 190 | + {line,[{location,"erts/emulator/test/tuple_SUITE_data/get_two_tuple_elements.erl", |
| 191 | + 40}]}. |
| 192 | + {gc_bif,'+', |
| 193 | + {f,0}, |
| 194 | + 2, |
| 195 | + [{tr,{x,0}, |
| 196 | + #beam_types:t_union{ |
| 197 | + atom = #beam_types:t_atom{elements = [x]}, |
| 198 | + list = none, |
| 199 | + number = #beam_types:t_integer{elements = {1,2}}, |
| 200 | + tuple_set = none,native_record_set = none,other = none}}, |
| 201 | + {tr,{x,1}, |
| 202 | + #beam_types:t_union{ |
| 203 | + atom = #beam_types:t_atom{elements = [x]}, |
| 204 | + list = none, |
| 205 | + number = #beam_types:t_integer{elements = {1,2}}, |
| 206 | + tuple_set = none,native_record_set = none,other = none}}], |
| 207 | + {x,0}}. |
150 | 208 | return. |
151 | 209 |
|
152 | 210 |
|
153 | 211 | {function, id, 1, 9}. |
154 | 212 | {label,8}. |
155 | | - {line,[{location,"get_two_tuple_elements.erl",20}]}. |
| 213 | + {line,[{location,"erts/emulator/test/tuple_SUITE_data/get_two_tuple_elements.erl", |
| 214 | + 42}]}. |
156 | 215 | {func_info,{atom,get_two_tuple_elements},{atom,id},1}. |
157 | 216 | {label,9}. |
158 | | - {'%',{var_info,{x,0}, |
159 | | - [{type,{t_union,{t_atom,[x]}, |
160 | | - none, |
161 | | - {t_integer,{1,2}}, |
162 | | - none,none,none}}]}}. |
| 217 | + {'%', |
| 218 | + {var_info, |
| 219 | + {x,0}, |
| 220 | + [{type, |
| 221 | + #beam_types:t_union{ |
| 222 | + atom = #beam_types:t_atom{elements = [x]}, |
| 223 | + list = none, |
| 224 | + number = #beam_types:t_integer{elements = {1,2}}, |
| 225 | + tuple_set = none,native_record_set = none, |
| 226 | + other = none}}]}}. |
163 | 227 | return. |
164 | 228 |
|
165 | 229 |
|
|
169 | 233 | {func_info,{atom,get_two_tuple_elements},{atom,module_info},0}. |
170 | 234 | {label,11}. |
171 | 235 | {move,{atom,get_two_tuple_elements},{x,0}}. |
172 | | - {line,[]}. |
173 | 236 | {call_ext_only,1,{extfunc,erlang,get_module_info,1}}. |
174 | 237 |
|
175 | 238 |
|
|
180 | 243 | {label,13}. |
181 | 244 | {move,{x,0},{x,1}}. |
182 | 245 | {move,{atom,get_two_tuple_elements},{x,0}}. |
183 | | - {line,[]}. |
184 | 246 | {call_ext_only,2,{extfunc,erlang,get_module_info,2}}. |
0 commit comments