From 6abb7e6dfb902415e8b574bc984c7d6e8ed18179 Mon Sep 17 00:00:00 2001 From: Don Isaac Date: Tue, 23 Jul 2024 11:07:55 -0400 Subject: [PATCH] test(semantic): add more test cases for symbol references --- .../oxc_semantic/tests/integration/symbols.rs | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/crates/oxc_semantic/tests/integration/symbols.rs b/crates/oxc_semantic/tests/integration/symbols.rs index 1b21f10d5603a..cc8b7a48b3a65 100644 --- a/crates/oxc_semantic/tests/integration/symbols.rs +++ b/crates/oxc_semantic/tests/integration/symbols.rs @@ -1,4 +1,4 @@ -use oxc_semantic::SymbolFlags; +use oxc_semantic::{Reference, SymbolFlags}; use crate::util::SemanticTester; @@ -55,6 +55,18 @@ fn test_var_read_write() { .has_number_of_writes(1) .test(); + SemanticTester::js("let x = 0; let foo = (0, x++)") + .has_some_symbol("x") + .has_number_of_reads(1) + .has_number_of_writes(1) + .test(); + + SemanticTester::js("let x = 0; x++") + .has_some_symbol("x") + .has_number_of_reads(0) + .has_number_of_writes(1) + .test(); + SemanticTester::js("let a; let b = 1 + (0, ((a)));") .has_some_symbol("a") .has_number_of_reads(1) @@ -96,6 +108,20 @@ fn test_types_simple() { .contains_flags(SymbolFlags::TypeAlias) .has_number_of_references(1) .test(); + + SemanticTester::ts("function foo(): T { }") + .has_some_symbol("T") + .contains_flags(SymbolFlags::TypeParameter) + .has_number_of_references(1) + .has_number_of_references_where(1, |r| r.is_type()) + .test(); + + SemanticTester::ts("function foo(a: T): void {}") + .has_some_symbol("T") + .contains_flags(SymbolFlags::TypeParameter) + .has_number_of_references(1) + .has_number_of_references_where(1, Reference::is_type) + .test(); } #[test]