From 965344310f6ce14286d6a57ab747bacfcee09bd7 Mon Sep 17 00:00:00 2001 From: sunrabbit123 Date: Fri, 18 Aug 2023 01:44:45 +0900 Subject: [PATCH 1/3] fix: a lot of test rule is not work --- crates/stc_ts_file_analyzer/tests/base.rs | 34 ++++--------------- .../tests/tsc/rule/strictNullCheck.ts | 5 +++ .../tsc/rule/strictNullCheck.tsc-errors.json | 8 +++++ .../tests/tsc-stats.rust-debug | 1 + 4 files changed, 20 insertions(+), 28 deletions(-) create mode 100644 crates/stc_ts_file_analyzer/tests/tsc/rule/strictNullCheck.ts create mode 100644 crates/stc_ts_file_analyzer/tests/tsc/rule/strictNullCheck.tsc-errors.json diff --git a/crates/stc_ts_file_analyzer/tests/base.rs b/crates/stc_ts_file_analyzer/tests/base.rs index 05da201bdd..28f55474ee 100644 --- a/crates/stc_ts_file_analyzer/tests/base.rs +++ b/crates/stc_ts_file_analyzer/tests/base.rs @@ -41,8 +41,9 @@ struct StcError { code: usize, } -fn get_env() -> Env { - let mut libs = vec![]; +fn get_env_from_path(path: &Path, mut libs: Vec) -> Env { + let case = parse_conformance_test(path).unwrap().into_iter().next().unwrap(); + libs.extend(&case.libs); let ls = &[ "es2022.full", "es2021.full", @@ -59,15 +60,7 @@ fn get_env() -> Env { libs.sort(); libs.dedup(); - Env::simple( - Rule { - strict_function_types: true, - ..Default::default() - }, - EsVersion::latest(), - ModuleConfig::None, - &libs, - ) + Env::simple(case.rule, case.target, case.module_config, &libs) } fn validate(input: &Path) -> Vec { @@ -78,7 +71,7 @@ fn validate(input: &Path) -> Vec { let fm = cm.load_file(input).unwrap(); - let env = get_env(); + let env = get_env_from_path(input, vec![]); let generator = module_id::ModuleIdGenerator::default(); let path = Arc::new(FileName::Real(input.to_path_buf())); @@ -252,22 +245,7 @@ fn run_test(file_name: PathBuf, want_error: bool, disable_logging: bool) -> Opti let handler = Arc::new(handler); let fm = cm.load_file(&file_name).unwrap(); - let mut libs = vec![]; - let ls = &[ - "es2020.full", - "es2019.full", - "es2018.full", - "es2017.full", - "es2016.full", - "es2015.full", - ]; - for s in ls { - libs.extend(Lib::load(s)) - } - libs.sort(); - libs.dedup(); - - let env = Env::simple(case.rule, case.target, case.module_config, &libs); + let env = get_env_from_path(&file_name, vec![]); let stable_env = env.shared().clone(); let generator = module_id::ModuleIdGenerator::default(); let path = Arc::new(FileName::Real(file_name.clone())); diff --git a/crates/stc_ts_file_analyzer/tests/tsc/rule/strictNullCheck.ts b/crates/stc_ts_file_analyzer/tests/tsc/rule/strictNullCheck.ts new file mode 100644 index 0000000000..ca1da46a9b --- /dev/null +++ b/crates/stc_ts_file_analyzer/tests/tsc/rule/strictNullCheck.ts @@ -0,0 +1,5 @@ +// @strictNullChecks: true +// @declaration: true + +declare let a : string; +a = "a" as string | undefined; \ No newline at end of file diff --git a/crates/stc_ts_file_analyzer/tests/tsc/rule/strictNullCheck.tsc-errors.json b/crates/stc_ts_file_analyzer/tests/tsc/rule/strictNullCheck.tsc-errors.json new file mode 100644 index 0000000000..86cc3b9c18 --- /dev/null +++ b/crates/stc_ts_file_analyzer/tests/tsc/rule/strictNullCheck.tsc-errors.json @@ -0,0 +1,8 @@ +[ + { + "file": "tests/tsc/rule/strictNullCheck.ts", + "line": 5, + "col": 1, + "code": 2322 + } +] \ No newline at end of file diff --git a/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug b/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug index 9a3b700764..02553a0cb6 100644 --- a/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug +++ b/crates/stc_ts_type_checker/tests/tsc-stats.rust-debug @@ -2,4 +2,5 @@ Stats { required_error: 3502, matched_error: 6533, extra_error: 764, + panic: 73, } \ No newline at end of file From 63506f9c23d7a29d0dbc2f7999b560333af18da0 Mon Sep 17 00:00:00 2001 From: sunrabbit123 Date: Fri, 18 Aug 2023 01:55:34 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=E3=84=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/stc_ts_file_analyzer/tests/base.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/stc_ts_file_analyzer/tests/base.rs b/crates/stc_ts_file_analyzer/tests/base.rs index 28f55474ee..e1955b2b37 100644 --- a/crates/stc_ts_file_analyzer/tests/base.rs +++ b/crates/stc_ts_file_analyzer/tests/base.rs @@ -13,7 +13,7 @@ use rnode::{NodeIdGenerator, RNode, VisitWith}; use stc_testing::logger; use stc_ts_ast_rnode::RModule; use stc_ts_builtin_types::Lib; -use stc_ts_env::{Env, ModuleConfig, Rule}; +use stc_ts_env::Env; use stc_ts_errors::{debug::debugger::Debugger, ErrorKind}; use stc_ts_file_analyzer::{ analyzer::{Analyzer, NoopLoader}, From 1579d916e5453ec651168b5c16ddb517f57d79dd Mon Sep 17 00:00:00 2001 From: sunrabbit123 Date: Fri, 18 Aug 2023 02:15:56 +0900 Subject: [PATCH 3/3] default --- crates/stc_ts_file_analyzer/tests/base.rs | 2 -- .../intersection/withUnionConstraint/{.1.ts => 1.ts} | 0 .../intersection/withUnionConstraint/1.tsc-errors.json | 8 ++++++++ 3 files changed, 8 insertions(+), 2 deletions(-) rename crates/stc_ts_file_analyzer/tests/tsc/types/intersection/withUnionConstraint/{.1.ts => 1.ts} (100%) create mode 100644 crates/stc_ts_file_analyzer/tests/tsc/types/intersection/withUnionConstraint/1.tsc-errors.json diff --git a/crates/stc_ts_file_analyzer/tests/base.rs b/crates/stc_ts_file_analyzer/tests/base.rs index e1955b2b37..264551732c 100644 --- a/crates/stc_ts_file_analyzer/tests/base.rs +++ b/crates/stc_ts_file_analyzer/tests/base.rs @@ -233,8 +233,6 @@ fn run_test(file_name: PathBuf, want_error: bool, disable_logging: bool) -> Opti let filename = file_name.display().to_string(); println!("{}", filename); - let case = parse_conformance_test(&file_name).unwrap().into_iter().next().unwrap(); - let result = testing::Tester::new() .print_errors(|cm, handler| -> Result<(), _> { let _tracing = if disable_logging { diff --git a/crates/stc_ts_file_analyzer/tests/tsc/types/intersection/withUnionConstraint/.1.ts b/crates/stc_ts_file_analyzer/tests/tsc/types/intersection/withUnionConstraint/1.ts similarity index 100% rename from crates/stc_ts_file_analyzer/tests/tsc/types/intersection/withUnionConstraint/.1.ts rename to crates/stc_ts_file_analyzer/tests/tsc/types/intersection/withUnionConstraint/1.ts diff --git a/crates/stc_ts_file_analyzer/tests/tsc/types/intersection/withUnionConstraint/1.tsc-errors.json b/crates/stc_ts_file_analyzer/tests/tsc/types/intersection/withUnionConstraint/1.tsc-errors.json new file mode 100644 index 0000000000..94fd52114e --- /dev/null +++ b/crates/stc_ts_file_analyzer/tests/tsc/types/intersection/withUnionConstraint/1.tsc-errors.json @@ -0,0 +1,8 @@ +[ + { + "file": "tests/tsc/types/intersection/withUnionConstraint/1.ts", + "line": 4, + "col": 9, + "code": 2322 + } +] \ No newline at end of file