|
158 | 158 | // fn export_default_fn_1() {
|
159 | 159 | // assert_standalone("export default function f(module, exports) {}", 0);
|
160 | 160 | // }
|
161 |
| - |
162 |
| -use rustc_hash::FxHashSet; |
163 |
| -use swc_common::{util::take::Take, Mark, DUMMY_SP}; |
164 |
| -use swc_ecma_utils::{member_expr, quote_expr}; |
165 |
| - |
166 |
| -use super::HashEqIgnoreSpanExprRef; |
167 |
| - |
168 |
| -#[test] |
169 |
| -fn test_hash_eq_ignore_span_expr_ref() { |
170 |
| - use swc_ecma_ast::*; |
171 |
| - |
172 |
| - fn expr_ref(expr_ref: &Expr) -> HashEqIgnoreSpanExprRef { |
173 |
| - HashEqIgnoreSpanExprRef(expr_ref) |
174 |
| - } |
175 |
| - |
176 |
| - testing::run_test(false, |_cm, _handler| { |
177 |
| - let dummy_sp = DUMMY_SP; |
178 |
| - let meaningful_sp = dummy_sp.apply_mark(Mark::new()); |
179 |
| - |
180 |
| - let meaningful_ident_expr = Expr::Ident(Ident::new("foo".into(), meaningful_sp)); |
181 |
| - let dummy_ident_expr = Expr::Ident(Ident::new("foo".into(), dummy_sp)); |
182 |
| - |
183 |
| - let meaningful_member_expr = member_expr!(meaningful_sp, foo.bar); |
184 |
| - let dummy_member_expr = member_expr!(dummy_sp, foo.bar); |
185 |
| - |
186 |
| - let meaningful_null_expr = quote_expr!(meaningful_sp, null); |
187 |
| - let dummy_null_expr = quote_expr!(dummy_sp, null); |
188 |
| - |
189 |
| - let meaningful_array_expr = Box::new(Expr::Array(ArrayLit { |
190 |
| - span: meaningful_sp, |
191 |
| - elems: Default::default(), |
192 |
| - })); |
193 |
| - |
194 |
| - let dummy_array_expr = Box::new(Expr::Array(ArrayLit::dummy())); |
195 |
| - |
196 |
| - // Should equal ignoring span and syntax context |
197 |
| - assert_eq!( |
198 |
| - expr_ref(&meaningful_ident_expr), |
199 |
| - expr_ref(&dummy_ident_expr) |
200 |
| - ); |
201 |
| - |
202 |
| - assert_eq!( |
203 |
| - expr_ref(&meaningful_array_expr), |
204 |
| - expr_ref(&dummy_array_expr) |
205 |
| - ); |
206 |
| - |
207 |
| - let mut set = FxHashSet::from_iter([ |
208 |
| - expr_ref(&meaningful_ident_expr), |
209 |
| - expr_ref(&meaningful_member_expr), |
210 |
| - expr_ref(&meaningful_null_expr), |
211 |
| - expr_ref(&meaningful_array_expr), |
212 |
| - ]); |
213 |
| - |
214 |
| - // Should produce the same hash value ignoring span and syntax context |
215 |
| - assert!(set.contains(&expr_ref(&dummy_ident_expr))); |
216 |
| - assert!(set.contains(&expr_ref(&dummy_member_expr))); |
217 |
| - assert!(set.contains(&expr_ref(&dummy_null_expr))); |
218 |
| - assert!(set.contains(&expr_ref(&dummy_array_expr))); |
219 |
| - |
220 |
| - set.insert(expr_ref(&dummy_ident_expr)); |
221 |
| - set.insert(expr_ref(&dummy_member_expr)); |
222 |
| - set.insert(expr_ref(&dummy_null_expr)); |
223 |
| - set.insert(expr_ref(&dummy_array_expr)); |
224 |
| - assert_eq!(set.len(), 4); |
225 |
| - |
226 |
| - // Should not equal ignoring span and syntax context |
227 |
| - let dummy_ident_expr = Expr::Ident(Ident::new("baz".into(), dummy_sp)); |
228 |
| - let dummy_member_expr = member_expr!(dummy_sp, baz.bar); |
229 |
| - let dummy_arrow_expr = Box::new(Expr::Arrow(ArrowExpr::dummy())); |
230 |
| - assert!(!set.contains(&expr_ref(&dummy_ident_expr))); |
231 |
| - assert!(!set.contains(&expr_ref(&dummy_member_expr))); |
232 |
| - assert!(!set.contains(&expr_ref(&dummy_arrow_expr))); |
233 |
| - |
234 |
| - Ok(()) |
235 |
| - }) |
236 |
| - .unwrap(); |
237 |
| -} |
0 commit comments