diff --git a/crates/stc_ts_file_analyzer/tests/base.rs b/crates/stc_ts_file_analyzer/tests/base.rs index 05da201bdd..264551732c 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}, @@ -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())); @@ -240,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 { @@ -252,22 +243,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_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 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