diff --git a/crates/oxc_codegen/examples/codegen.rs b/crates/oxc_codegen/examples/codegen.rs index 1adc579bd..d0b6ea974 100644 --- a/crates/oxc_codegen/examples/codegen.rs +++ b/crates/oxc_codegen/examples/codegen.rs @@ -28,7 +28,7 @@ fn main() { println!("Original:"); println!("{source_text}"); - let codegen_options = CodegenOptions; + let codegen_options = CodegenOptions::default(); let printed = Codegen::::new(source_text.len(), codegen_options).build(&ret.program); println!("Printed:"); println!("{printed}"); diff --git a/crates/oxc_codegen/src/gen.rs b/crates/oxc_codegen/src/gen.rs index 47eaaf3e7..635e557f0 100644 --- a/crates/oxc_codegen/src/gen.rs +++ b/crates/oxc_codegen/src/gen.rs @@ -591,7 +591,7 @@ impl<'a, const MINIFY: bool> Gen for VariableDeclarator<'a> { impl<'a, const MINIFY: bool> Gen for Function<'a> { fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { - if self.is_typescript_syntax() { + if !p.options.enable_typescript && self.is_typescript_syntax() { return; } let n = p.code_len(); @@ -609,9 +609,20 @@ impl<'a, const MINIFY: bool> Gen for Function<'a> { p.print_space_before_identifier(); id.gen(p, ctx); } + if p.options.enable_typescript { + if let Some(type_parameters) = &self.type_parameters { + type_parameters.gen(p, ctx); + } + } p.print(b'('); self.params.gen(p, ctx); p.print(b')'); + if p.options.enable_typescript { + if let Some(return_type) = &self.return_type { + p.print_str(b": "); + return_type.gen(p, ctx); + } + } p.print_soft_space(); if let Some(body) = &self.body { body.gen(p, ctx); @@ -638,6 +649,9 @@ impl<'a, const MINIFY: bool> Gen for FunctionBody<'a> { impl<'a, const MINIFY: bool> Gen for FormalParameter<'a> { fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { self.decorators.gen(p, ctx); + if p.options.enable_typescript && self.readonly { + p.print_str(b"readonly "); + } self.pattern.gen(p, ctx); } } @@ -648,6 +662,7 @@ impl<'a, const MINIFY: bool> Gen for FormalParameters<'a> { if let Some(rest) = &self.rest { if !self.items.is_empty() { p.print_comma(); + p.print_soft_space(); } rest.gen(p, ctx); } @@ -768,7 +783,7 @@ impl Gen for ImportAttribute { impl<'a, const MINIFY: bool> Gen for ExportNamedDeclaration<'a> { fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { - if self.is_typescript_syntax() { + if !p.options.enable_typescript && self.is_typescript_syntax() { return; } p.print_str(b"export "); @@ -817,7 +832,7 @@ impl Gen for ModuleExportName { impl<'a, const MINIFY: bool> Gen for ExportAllDeclaration<'a> { fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { - if self.is_typescript_syntax() { + if !p.options.enable_typescript && self.is_typescript_syntax() { return; } p.print_str(b"export "); @@ -841,7 +856,7 @@ impl<'a, const MINIFY: bool> Gen for ExportAllDeclaration<'a> { impl<'a, const MINIFY: bool> Gen for ExportDefaultDeclaration<'a> { fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { - if self.is_typescript_syntax() { + if !p.options.enable_typescript && self.is_typescript_syntax() { return; } p.print_str(b"export default "); @@ -858,7 +873,7 @@ impl<'a, const MINIFY: bool> Gen for ExportDefaultDeclarationKind<'a> { } Self::FunctionDeclaration(fun) => fun.gen(p, ctx), Self::ClassDeclaration(class) => { - if !class.is_typescript_syntax() { + if !p.options.enable_typescript && !class.is_typescript_syntax() { class.gen(p, ctx); p.print_soft_newline(); } @@ -2092,7 +2107,7 @@ impl<'a, const MINIFY: bool> Gen for StaticBlock<'a> { impl<'a, const MINIFY: bool> Gen for MethodDefinition<'a> { fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { - if self.value.is_typescript_syntax() { + if !p.options.enable_typescript && self.value.is_typescript_syntax() { return; } self.decorators.gen(p, ctx); @@ -2186,6 +2201,13 @@ impl<'a, const MINIFY: bool> Gen for BindingPattern<'a> { BindingPatternKind::ArrayPattern(pattern) => pattern.gen(p, ctx), BindingPatternKind::AssignmentPattern(pattern) => pattern.gen(p, ctx), } + if p.options.enable_typescript { + if let Some(type_annotation) = &self.type_annotation { + p.print_colon(); + p.print_soft_space(); + type_annotation.gen(p, ctx); + } + } } } diff --git a/crates/oxc_codegen/src/gen_ts.rs b/crates/oxc_codegen/src/gen_ts.rs new file mode 100644 index 000000000..c7a1b6b10 --- /dev/null +++ b/crates/oxc_codegen/src/gen_ts.rs @@ -0,0 +1,391 @@ +use crate::context::Context; +use crate::{Codegen, Gen, GenExpr}; +#[allow(clippy::wildcard_imports)] +use oxc_ast::ast::*; +use oxc_syntax::precedence::Precedence; + +impl<'a, const MINIFY: bool> Gen for TSTypeParameterDeclaration<'a> { + fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { + p.print_str(b"<"); + p.print_list(&self.params, ctx); + p.print_str(b">"); + } +} + +impl<'a, const MINIFY: bool> Gen for TSTypeAnnotation<'a> { + fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { + self.type_annotation.gen(p, ctx); + } +} + +impl<'a, const MINIFY: bool> Gen for TSType<'a> { + fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { + match self { + Self::TSFunctionType(decl) => decl.gen(p, ctx), + Self::TSConstructorType(_decl) => { + // TODO: TSConstructorType + } + Self::TSArrayType(decl) => { + decl.element_type.gen(p, ctx); + p.print_str(b"[]"); + } + Self::TSTupleType(decl) => { + p.print_str(b"["); + p.print_list(&decl.element_types, ctx); + p.print_str(b"]"); + } + Self::TSUnionType(decl) => { + for (index, item) in decl.types.iter().enumerate() { + if index != 0 { + p.print_soft_space(); + p.print_str(b"|"); + p.print_soft_space(); + } + item.gen(p, ctx); + } + } + Self::TSIntersectionType(decl) => { + for (index, item) in decl.types.iter().enumerate() { + if index != 0 { + p.print_soft_space(); + p.print_str(b"&"); + p.print_soft_space(); + } + item.gen(p, ctx); + } + } + Self::TSConditionalType(decl) => { + decl.check_type.gen(p, ctx); + p.print_str(b" extends "); + decl.extends_type.gen(p, ctx); + p.print_str(b" ? "); + decl.true_type.gen(p, ctx); + p.print_str(b" : "); + decl.false_type.gen(p, ctx); + } + Self::TSInferType(decl) => { + p.print_str(b"infer "); + decl.type_parameter.gen(p, ctx); + } + Self::TSIndexedAccessType(decl) => { + decl.object_type.gen(p, ctx); + p.print_str(b"["); + decl.index_type.gen(p, ctx); + p.print_str(b"]"); + } + Self::TSMappedType(_decl) => { + // TODO: Implement this + } + Self::TSLiteralType(decl) => { + decl.literal.gen(p, ctx); + } + Self::TSImportType(_decl) => { + // TODO: Implement this + } + Self::TSQualifiedName(decl) => { + decl.left.gen(p, ctx); + p.print_str(b"."); + decl.right.gen(p, ctx); + } + Self::TSAnyKeyword(_decl) => { + p.print_str(b"any"); + } + Self::TSBigIntKeyword(_decl) => { + p.print_str(b"bigint"); + } + Self::TSBooleanKeyword(_decl) => { + p.print_str(b"boolean"); + } + Self::TSNeverKeyword(_decl) => { + p.print_str(b"never"); + } + Self::TSNullKeyword(_decl) => { + p.print_str(b"null"); + } + Self::TSNumberKeyword(_decl) => { + p.print_str(b"number"); + } + Self::TSObjectKeyword(_decl) => { + p.print_str(b"object"); + } + Self::TSStringKeyword(_decl) => { + p.print_str(b"string"); + } + Self::TSSymbolKeyword(_decl) => { + // TODO: TSSymbolKeyword + } + Self::TSThisKeyword(_decl) => { + p.print_str(b"this"); + } + Self::TSUndefinedKeyword(_decl) => { + p.print_str(b"undefined"); + } + Self::TSUnknownKeyword(_decl) => { + p.print_str(b"unknown"); + } + Self::TSVoidKeyword(_decl) => { + p.print_str(b"void"); + } + Self::TSTemplateLiteralType(_decl) => { + // TODO: TSTemplateLiteralType + } + Self::TSTypeLiteral(decl) => { + p.print_str(b"{"); + for item in &decl.members { + item.gen(p, ctx); + p.print_semicolon(); + } + p.print_soft_space(); + p.print_str(b"}"); + } + Self::TSTypeOperatorType(decl) => { + match decl.operator { + TSTypeOperator::Keyof => { + p.print_str(b"keyof "); + } + TSTypeOperator::Unique => { + p.print_str(b"unique "); + } + TSTypeOperator::Readonly => { + p.print_str(b"readonly "); + } + } + decl.type_annotation.gen(p, ctx); + } + Self::TSTypePredicate(decl) => { + if decl.asserts { + p.print_str(b"asserts "); + } + match &decl.parameter_name { + TSTypePredicateName::Identifier(ident) => { + ident.gen(p, ctx); + } + TSTypePredicateName::This(_ident) => { + p.print_str(b"this"); + } + } + if let Some(type_annotation) = &decl.type_annotation { + p.print_str(b" is "); + type_annotation.gen(p, ctx); + } + } + Self::TSTypeQuery(decl) => decl.gen(p, ctx), + Self::TSTypeReference(decl) => { + decl.type_name.gen(p, ctx); + if let Some(type_parameters) = &decl.type_parameters { + type_parameters.gen(p, ctx); + } + } + Self::JSDocNullableType(decl) => { + if decl.postfix { + decl.type_annotation.gen(p, ctx); + p.print_str(b"?"); + } else { + p.print_str(b"?"); + decl.type_annotation.gen(p, ctx); + } + } + Self::JSDocUnknownType(_decl) => p.print_str(b"unknown"), + } + } +} + +impl<'a, const MINIFY: bool> Gen for TSTypeName<'a> { + fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { + match self { + Self::IdentifierReference(decl) => { + p.print_str(decl.name.as_bytes()); + } + Self::QualifiedName(decl) => { + decl.left.gen(p, ctx); + p.print_str(b"."); + decl.right.gen(p, ctx); + } + } + } +} + +impl<'a, const MINIFY: bool> Gen for TSLiteral<'a> { + fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { + match self { + Self::BooleanLiteral(decl) => { + p.print_str(if decl.value { b"true" } else { b"false" }); + } + Self::NullLiteral(_decl) => { + p.print_str(b"null"); + } + Self::NumberLiteral(decl) => { + decl.gen(p, ctx); + } + Self::BigintLiteral(_decl) => { + // TODO: BigintLiteral + } + Self::RegExpLiteral(_decl) => { + // TODO: RegExpLiteral + } + Self::StringLiteral(decl) => { + p.print(b'\''); + p.print_str(decl.value.as_bytes()); + p.print(b'\''); + } + Self::TemplateLiteral(_decl) => { + // TODO: Implement this + } + Self::UnaryExpression(_decl) => { + // TODO: Implement this + } + } + } +} + +impl<'a, const MINIFY: bool> Gen for TSTypeParameter<'a> { + fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { + self.name.gen(p, ctx); + if let Some(constraint) = &self.constraint { + p.print_str(b" extends "); + constraint.gen(p, ctx); + } + if let Some(default) = &self.default { + p.print_str(b" = "); + default.gen(p, ctx); + } + } +} + +impl<'a, const MINIFY: bool> Gen for TSFunctionType<'a> { + fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { + if let Some(type_parameters) = &self.type_parameters { + type_parameters.gen(p, ctx); + } + p.print_str(b"("); + if let Some(this_param) = &self.this_param { + this_param.this.gen(p, ctx); + p.print_str(b":"); + if let Some(type_annotation) = &this_param.type_annotation { + type_annotation.gen(p, ctx); + } else { + p.print_str(b"unknown"); + } + if !self.params.is_empty() { + p.print_str(b","); + } + p.print_soft_space(); + } + self.params.gen(p, ctx); + p.print_str(b")"); + p.print_soft_space(); + p.print_str(b"=>"); + p.print_soft_space(); + self.return_type.gen(p, ctx); + } +} + +impl<'a, const MINIFY: bool> Gen for TSSignature<'a> { + fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { + p.print_soft_space(); + match self { + Self::TSIndexSignature(signature) => signature.gen(p, ctx), + Self::TSPropertySignature(signature) => { + if signature.readonly { + p.print_str(b"readonly"); + p.print_hard_space(); + } + if signature.computed { + p.print(b'['); + signature.key.gen(p, ctx); + p.print(b']'); + } else { + match &signature.key { + PropertyKey::Identifier(key) => { + key.gen(p, ctx); + } + PropertyKey::PrivateIdentifier(key) => { + p.print_str(key.name.as_bytes()); + } + PropertyKey::Expression(key) => { + key.gen_expr(p, Precedence::Assign, ctx); + } + } + } + if signature.optional { + p.print_str(b"?"); + } + p.print_colon(); + p.print_soft_space(); + if let Some(type_annotation) = &signature.type_annotation { + type_annotation.gen(p, ctx); + } + } + Self::TSCallSignatureDeclaration(_signature) => { + // TODO: TSCallSignatureDeclaration + } + Self::TSConstructSignatureDeclaration(_signature) => { + // TODO: TSConstructSignatureDeclaration + } + Self::TSMethodSignature(_signature) => { + // TODO: TSMethodSignature + } + } + } +} + +impl<'a, const MINIFY: bool> Gen for TSTypeQuery<'a> { + fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { + p.print_str(b"typeof "); + self.expr_name.gen(p, ctx); + if let Some(type_params) = &self.type_parameters { + type_params.gen(p, ctx); + } + } +} + +impl<'a, const MINIFY: bool> Gen for TSTypeParameterInstantiation<'a> { + fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { + p.print_str(b"<"); + p.print_list(&self.params, ctx); + p.print_str(b">"); + } +} + +impl<'a, const MINIFY: bool> Gen for TSIndexSignature<'a> { + fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { + p.print_str(b"["); + for (index, parameter) in self.parameters.iter().enumerate() { + if index != 0 { + p.print_str(b" | "); + } + p.print_str(parameter.name.as_bytes()); + p.print_colon(); + p.print_soft_space(); + parameter.type_annotation.gen(p, ctx); + } + p.print_str(b"]"); + p.print_colon(); + p.print_soft_space(); + self.type_annotation.gen(p, ctx); + } +} + +impl<'a, const MINIFY: bool> Gen for TSTupleElement<'a> { + fn gen(&self, p: &mut Codegen<{ MINIFY }>, ctx: Context) { + match self { + TSTupleElement::TSType(ts_type) => { + ts_type.gen(p, ctx); + } + TSTupleElement::TSOptionalType(ts_type) => { + ts_type.type_annotation.gen(p, ctx); + p.print_str(b"?"); + } + TSTupleElement::TSRestType(ts_type) => { + p.print_str(b"..."); + ts_type.type_annotation.gen(p, ctx); + } + TSTupleElement::TSNamedTupleMember(ts_type) => { + ts_type.label.gen(p, ctx); + p.print_str(b":"); + p.print_soft_space(); + ts_type.element_type.gen(p, ctx); + } + } + } +} diff --git a/crates/oxc_codegen/src/lib.rs b/crates/oxc_codegen/src/lib.rs index 6775c48cd..20f56ef7b 100644 --- a/crates/oxc_codegen/src/lib.rs +++ b/crates/oxc_codegen/src/lib.rs @@ -10,6 +10,7 @@ mod context; mod gen; +mod gen_ts; mod operator; use std::str::from_utf8_unchecked; @@ -32,7 +33,9 @@ pub use crate::{ // use crate::mangler::Mangler; #[derive(Debug, Default, Clone, Copy)] -pub struct CodegenOptions; +pub struct CodegenOptions { + pub enable_typescript: bool, +} pub struct Codegen { #[allow(unused)] diff --git a/crates/oxc_codegen/tests/mod.rs b/crates/oxc_codegen/tests/mod.rs index b9e468918..b5f636170 100644 --- a/crates/oxc_codegen/tests/mod.rs +++ b/crates/oxc_codegen/tests/mod.rs @@ -8,7 +8,25 @@ fn test(source_text: &str, expected: &str) { let source_type = SourceType::default().with_module(true); let program = Parser::new(&allocator, source_text, source_type).parse().program; let program = allocator.alloc(program); - let result = Codegen::::new(source_text.len(), CodegenOptions).build(program); + let result = Codegen::::new(source_text.len(), CodegenOptions::default()).build(program); + assert_eq!(expected, result, "for source {source_text}, expect {expected}, got {result}"); +} + +fn test_ts_same_out(source_text: &str) { + test_ts(source_text, &format!("{source_text}\n"), false); +} + +fn test_ts(source_text: &str, expected: &str, is_typescript_definition: bool) { + let allocator = Allocator::default(); + let source_type = SourceType::default() + .with_typescript(true) + .with_typescript_definition(is_typescript_definition) + .with_module(true); + let program = Parser::new(&allocator, source_text, source_type).parse().program; + let program = allocator.alloc(program); + let result = + Codegen::::new(source_text.len(), CodegenOptions { enable_typescript: true }) + .build(program); assert_eq!(expected, result, "for source {source_text}, expect {expected}, got {result}"); } @@ -113,3 +131,22 @@ fn module_decl() { fn new_expr() { test("new (foo()).bar();", "new (foo()).bar();\n"); } + +#[test] +fn typescript() { + test_ts_same_out("let x: string = `\\x01`;"); + + test_ts_same_out("function foo(x: T, y: string, ...restOfParams: Omit): T {\n\treturn x;\n}"); + + test_ts_same_out("let x: string[] = ['abc', 'def', 'ghi'];"); + test_ts_same_out("let x: Array = ['abc', 'def', 'ghi',];"); + test_ts_same_out("let x: [string, number] = ['abc', 123];"); + test_ts_same_out("let x: string | number = 'abc';"); + test_ts_same_out("let x: string & number = 'abc';"); + test_ts_same_out("let x: typeof String = 'string';"); + test_ts_same_out("let x: keyof string = 'length';"); + test_ts_same_out("let x: keyof typeof String = 'length';"); + test_ts_same_out("let x: string['length'] = 123;"); + + test_ts_same_out("function isString(value: unknown): asserts value is string {\n\tif (typeof value !== 'string') {\n\t\tthrow new Error('Not a string');\n\t}\n}"); +} diff --git a/crates/oxc_linter/src/context.rs b/crates/oxc_linter/src/context.rs index 1d10bd433..daed70cd1 100644 --- a/crates/oxc_linter/src/context.rs +++ b/crates/oxc_linter/src/context.rs @@ -151,7 +151,7 @@ impl<'a> LintContext<'a> { #[allow(clippy::unused_self)] pub fn codegen(&self) -> Codegen { - Codegen::::new(0, CodegenOptions) + Codegen::::new(0, CodegenOptions::default()) } /* JSDoc */ diff --git a/crates/oxc_minifier/examples/minifier.rs b/crates/oxc_minifier/examples/minifier.rs index 611c725e9..7094507c5 100644 --- a/crates/oxc_minifier/examples/minifier.rs +++ b/crates/oxc_minifier/examples/minifier.rs @@ -41,8 +41,8 @@ fn minify(source_text: &str, source_type: SourceType, mangle: bool, whitespace: let options = MinifierOptions { mangle, ..MinifierOptions::default() }; Minifier::new(options).build(&allocator, program); if whitespace { - Codegen::::new(source_text.len(), CodegenOptions).build(program) + Codegen::::new(source_text.len(), CodegenOptions::default()).build(program) } else { - Codegen::::new(source_text.len(), CodegenOptions).build(program) + Codegen::::new(source_text.len(), CodegenOptions::default()).build(program) } } diff --git a/crates/oxc_minifier/tests/mod.rs b/crates/oxc_minifier/tests/mod.rs index 6ef355b94..0b4afe1f7 100644 --- a/crates/oxc_minifier/tests/mod.rs +++ b/crates/oxc_minifier/tests/mod.rs @@ -19,7 +19,7 @@ pub(crate) fn minify( let program = Parser::new(&allocator, source_text, source_type).parse().program; let program = allocator.alloc(program); Minifier::new(options).build(&allocator, program); - Codegen::::new(source_text.len(), CodegenOptions).build(program) + Codegen::::new(source_text.len(), CodegenOptions::default()).build(program) } pub(crate) fn test(source_text: &str, expected: &str) { diff --git a/crates/oxc_transformer/examples/transformer.rs b/crates/oxc_transformer/examples/transformer.rs index d988d3eac..437ca523e 100644 --- a/crates/oxc_transformer/examples/transformer.rs +++ b/crates/oxc_transformer/examples/transformer.rs @@ -51,7 +51,8 @@ fn main() { }; Transformer::new(&allocator, source_type, semantic, transform_options).build(program).unwrap(); - let printed = Codegen::::new(source_text.len(), CodegenOptions).build(program); + let printed = + Codegen::::new(source_text.len(), CodegenOptions::default()).build(program); println!("Transformed:\n"); println!("{printed}"); } diff --git a/crates/oxc_transformer/src/tester.rs b/crates/oxc_transformer/src/tester.rs index 8b0b29700..cc6fb7a5f 100644 --- a/crates/oxc_transformer/src/tester.rs +++ b/crates/oxc_transformer/src/tester.rs @@ -35,11 +35,13 @@ impl Tester { let program = self.allocator.alloc(program); Transformer::new(&self.allocator, self.source_type, semantic, self.options.clone()) .build(program) - .map(move |()| Codegen::::new(source_text.len(), CodegenOptions).build(program)) + .map(move |()| { + Codegen::::new(source_text.len(), CodegenOptions::default()).build(program) + }) } fn codegen(&self, source_text: &str) -> String { let program = Parser::new(&self.allocator, source_text, self.source_type).parse().program; - Codegen::::new(source_text.len(), CodegenOptions).build(&program) + Codegen::::new(source_text.len(), CodegenOptions::default()).build(&program) } } diff --git a/crates/oxc_wasm/src/lib.rs b/crates/oxc_wasm/src/lib.rs index a25c1c3b8..930ba3532 100644 --- a/crates/oxc_wasm/src/lib.rs +++ b/crates/oxc_wasm/src/lib.rs @@ -221,9 +221,9 @@ impl Oxc { } self.codegen_text = if minifier_options.whitespace() { - Codegen::::new(source_text.len(), CodegenOptions).build(program) + Codegen::::new(source_text.len(), CodegenOptions::default()).build(program) } else { - Codegen::::new(source_text.len(), CodegenOptions).build(program) + Codegen::::new(source_text.len(), CodegenOptions::default()).build(program) }; Ok(()) diff --git a/tasks/coverage/codegen_babel.snap b/tasks/coverage/codegen_babel.snap index a1cf56752..55b23fd26 100644 --- a/tasks/coverage/codegen_babel.snap +++ b/tasks/coverage/codegen_babel.snap @@ -1,4 +1,56 @@ codegen_babel Summary: AST Parsed : 2096/2096 (100.00%) -Positive Passed: 2095/2096 (99.95%) -Expect to Parse: "typescript/types/intrinsic-identifier/input.ts" +Positive Passed: 2043/2096 (97.47%) +Typescript failed: "comments/basic/export-default-anonymous-class/input.js" +Typescript failed: "comments/decorators/decorators-after-export/input.js" +Typescript failed: "comments/decorators/decorators-before-export/input.js" +Typescript failed: "es2015/modules/export-default-class-declaration/input.js" +Typescript failed: "es2015/uncategorised/82/input.js" +Typescript failed: "es2015/uncategorised/83/input.js" +Typescript failed: "esprima/es2015-export-declaration/export-default-class/input.js" +Typescript failed: "typescript/arrow-function/annotated/input.ts" +Typescript failed: "typescript/arrow-function/async/input.ts" +Typescript failed: "typescript/arrow-function/async-generic-tokens-true/input.ts" +Typescript failed: "typescript/arrow-function/async-generic-tokens-true-babel-7/input.ts" +Typescript failed: "typescript/arrow-function/generic/input.ts" +Typescript failed: "typescript/arrow-function/generic-babel-7/input.ts" +Typescript failed: "typescript/arrow-function/optional-parameter/input.ts" +Typescript failed: "typescript/arrow-function/predicate-types/input.ts" +Typescript failed: "typescript/assert-predicate/arrow-function/input.ts" +Typescript failed: "typescript/class/abstract/input.ts" +Typescript failed: "typescript/enum/export/input.ts" +Typescript failed: "typescript/enum/export-const/input.ts" +Typescript failed: "typescript/enum/export-declare-const/input.ts" +Typescript failed: "typescript/export/declare/input.ts" +Typescript failed: "typescript/export/export-type-declaration/input.ts" +Typescript failed: "typescript/export/export-value-declaration/input.ts" +Typescript failed: "typescript/export/nested-same-name/input.ts" +Typescript failed: "typescript/function/overloads/input.ts" +Typescript failed: "typescript/import/export-import/input.ts" +Typescript failed: "typescript/import/export-import-require/input.ts" +Typescript failed: "typescript/import/export-import-type-as-identifier/input.ts" +Typescript failed: "typescript/import/export-import-type-require/input.ts" +Typescript failed: "typescript/import/type-asi/input.ts" +Typescript failed: "typescript/interface/export/input.ts" +Typescript failed: "typescript/module-namespace/head-export/input.ts" +Typescript failed: "typescript/regression/is-default-export/input.ts" +Typescript failed: "typescript/type-alias/export/input.ts" +Typescript failed: "typescript/types/abstract-constructor-signatures/input.ts" +Typescript failed: "typescript/types/abstract-constructor-signatures-babel-7/input.ts" +Typescript failed: "typescript/types/constructor-signatures/input.ts" +Typescript failed: "typescript/types/constructor-signatures-babel-7/input.ts" +Typescript failed: "typescript/types/import-type-dynamic/input.ts" +Minify failed: "typescript/types/intrinsic-identifier/input.ts" +Typescript failed: "typescript/types/keywords/input.ts" +Typescript failed: "typescript/types/literal-bigint/input.ts" +Typescript failed: "typescript/types/literal-bigint-negative/input.ts" +Typescript failed: "typescript/types/literal-number-negative/input.ts" +Typescript failed: "typescript/types/literal-string-1/input.ts" +Typescript failed: "typescript/types/literal-string-2/input.ts" +Typescript failed: "typescript/types/literal-string-4/input.ts" +Typescript failed: "typescript/types/literal-string-4-babel-7/input.ts" +Typescript failed: "typescript/types/mapped/input.ts" +Typescript failed: "typescript/types/mapped-babel-7/input.ts" +Typescript failed: "typescript/types/type-literal-get-set/input.ts" +Typescript failed: "typescript/types/type-literal-get-set-babel-7/input.ts" +Typescript failed: "typescript/types/type-operator/input.ts" diff --git a/tasks/coverage/codegen_test262.snap b/tasks/coverage/codegen_test262.snap index f937a4d9b..7de1a4726 100644 --- a/tasks/coverage/codegen_test262.snap +++ b/tasks/coverage/codegen_test262.snap @@ -1,3 +1,21 @@ codegen_test262 Summary: AST Parsed : 45836/45836 (100.00%) -Positive Passed: 45836/45836 (100.00%) +Positive Passed: 45818/45836 (99.96%) +Typescript failed: "language/module-code/eval-export-dflt-cls-anon-semi.js" +Typescript failed: "language/module-code/eval-export-dflt-cls-anon.js" +Typescript failed: "language/module-code/eval-export-dflt-cls-name-meth.js" +Typescript failed: "language/module-code/eval-export-dflt-cls-named-semi.js" +Typescript failed: "language/module-code/eval-export-dflt-cls-named.js" +Typescript failed: "language/module-code/instn-named-bndng-dflt-cls.js" +Typescript failed: "language/module-code/top-level-await/syntax/export-dft-class-decl-await-expr-array-literal.js" +Typescript failed: "language/module-code/top-level-await/syntax/export-dft-class-decl-await-expr-func-expression.js" +Typescript failed: "language/module-code/top-level-await/syntax/export-dft-class-decl-await-expr-identifier.js" +Typescript failed: "language/module-code/top-level-await/syntax/export-dft-class-decl-await-expr-literal-number.js" +Typescript failed: "language/module-code/top-level-await/syntax/export-dft-class-decl-await-expr-literal-string.js" +Typescript failed: "language/module-code/top-level-await/syntax/export-dft-class-decl-await-expr-nested.js" +Typescript failed: "language/module-code/top-level-await/syntax/export-dft-class-decl-await-expr-new-expr.js" +Typescript failed: "language/module-code/top-level-await/syntax/export-dft-class-decl-await-expr-null.js" +Typescript failed: "language/module-code/top-level-await/syntax/export-dft-class-decl-await-expr-obj-literal.js" +Typescript failed: "language/module-code/top-level-await/syntax/export-dft-class-decl-await-expr-regexp.js" +Typescript failed: "language/module-code/top-level-await/syntax/export-dft-class-decl-await-expr-template-literal.js" +Typescript failed: "language/module-code/top-level-await/syntax/export-dft-class-decl-await-expr-this.js" diff --git a/tasks/coverage/codegen_typescript.snap b/tasks/coverage/codegen_typescript.snap index 9613fa524..5636afdbe 100644 --- a/tasks/coverage/codegen_typescript.snap +++ b/tasks/coverage/codegen_typescript.snap @@ -1,28 +1,604 @@ codegen_typescript Summary: AST Parsed : 5243/5243 (100.00%) -Positive Passed: 5218/5243 (99.52%) -Expect to Parse: "compiler/binopAssignmentShouldHaveType.ts" -Expect to Parse: "compiler/elidedEmbeddedStatementsReplacedWithSemicolon.ts" -Expect to Parse: "compiler/identityRelationNeverTypes.ts" -Expect to Parse: "compiler/jsxMultilineAttributeStringValues.tsx" -Expect to Parse: "compiler/jsxMultilineAttributeValuesReact.tsx" -Expect to Parse: "compiler/jsxNamespacedNameNotComparedToNonMatchingIndexSignature.tsx" -Expect to Parse: "compiler/localClassesInLoop.ts" -Expect to Parse: "compiler/localClassesInLoop_ES6.ts" -Expect to Parse: "compiler/modularizeLibrary_Dom.asynciterable.ts" -Expect to Parse: "compiler/modularizeLibrary_Worker.asynciterable.ts" -Expect to Parse: "compiler/typeAliasDeclarationEmit3.ts" -Expect to Parse: "conformance/constEnums/constEnum4.ts" -Expect to Parse: "conformance/expressions/elementAccess/letIdentifierInElementAccess01.ts" -Expect to Parse: "conformance/jsx/jsxReactTestSuite.tsx" -Expect to Parse: "conformance/jsx/tsxNamespacedAttributeName1.tsx" -Expect to Parse: "conformance/jsx/tsxNamespacedAttributeName2.tsx" -Expect to Parse: "conformance/jsx/tsxReactEmitEntities.tsx" -Expect to Parse: "conformance/statements/VariableStatements/usingDeclarations/awaitUsingDeclarationsInFor.ts" -Expect to Parse: "conformance/statements/VariableStatements/usingDeclarations/awaitUsingDeclarationsInForAwaitOf.ts" -Expect to Parse: "conformance/statements/VariableStatements/usingDeclarations/awaitUsingDeclarationsInForOf.1.ts" -Expect to Parse: "conformance/statements/VariableStatements/usingDeclarations/awaitUsingDeclarationsInForOf.2.ts" -Expect to Parse: "conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsInFor.ts" -Expect to Parse: "conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsInForAwaitOf.ts" -Expect to Parse: "conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsInForOf.1.ts" -Expect to Parse: "conformance/types/thisType/thisTypeInFunctions4.ts" +Positive Passed: 4642/5243 (88.54%) +Typescript failed: "compiler/DeclarationErrorsNoEmitOnError.ts" +Typescript failed: "compiler/acceptSymbolAsWeakType.ts" +Typescript failed: "compiler/ambientNameRestrictions.ts" +Typescript failed: "compiler/arrayDestructuringInSwitch1.ts" +Typescript failed: "compiler/arrayEvery.ts" +Typescript failed: "compiler/arrowFunctionParsingGenericInObject.ts" +Typescript failed: "compiler/assignmentCompatOnNew.ts" +Typescript failed: "compiler/asyncArrowInClassES5.ts" +Typescript failed: "compiler/badInferenceLowerPriorityThanGoodInference.ts" +Default failed: "compiler/binopAssignmentShouldHaveType.ts" +Typescript failed: "compiler/callOfConditionalTypeWithConcreteBranches.ts" +Typescript failed: "compiler/callSignatureFunctionOverload.ts" +Typescript failed: "compiler/callbacksDontShareTypes.ts" +Typescript failed: "compiler/callsOnComplexSignatures.tsx" +Typescript failed: "compiler/classExpressionWithStaticProperties3.ts" +Typescript failed: "compiler/classExpressionWithStaticPropertiesES63.ts" +Typescript failed: "compiler/classExtendingAbstractClassWithMemberCalledTheSameAsItsOwnTypeParam.ts" +Typescript failed: "compiler/classMemberInitializerWithLamdaScoping5.ts" +Typescript failed: "compiler/coAndContraVariantInferences.ts" +Typescript failed: "compiler/collisionArgumentsInType.ts" +Typescript failed: "compiler/collisionExportsRequireAndAmbientFunction.ts" +Typescript failed: "compiler/collisionExportsRequireAndUninstantiatedModule.ts" +Typescript failed: "compiler/collisionRestParameterArrowFunctions.ts" +Typescript failed: "compiler/collisionRestParameterInType.ts" +Typescript failed: "compiler/collisionSuperAndNameResolution.ts" +Typescript failed: "compiler/collisionSuperAndParameter.ts" +Typescript failed: "compiler/collisionSuperAndParameter1.ts" +Typescript failed: "compiler/collisionThisExpressionAndLocalVarInFunction.ts" +Typescript failed: "compiler/collisionThisExpressionAndNameResolution.ts" +Typescript failed: "compiler/collisionThisExpressionAndParameter.ts" +Typescript failed: "compiler/commentOnExportEnumDeclaration.ts" +Typescript failed: "compiler/commentsDottedModuleName.ts" +Typescript failed: "compiler/commentsInterface.ts" +Typescript failed: "compiler/commentsOnPropertyOfObjectLiteral1.ts" +Typescript failed: "compiler/conditionalEqualityTestingNullability.ts" +Typescript failed: "compiler/conditionalTypeContextualTypeSimplificationsSuceeds.ts" +Typescript failed: "compiler/conditionalTypeRelaxingConstraintAssignability.ts" +Typescript failed: "compiler/conditionalTypesSimplifyWhenTrivial.ts" +Typescript failed: "compiler/conditionallyDuplicateOverloadsCausedByOverloadResolution.ts" +Typescript failed: "compiler/constraintOfRecursivelyMappedTypeWithConditionalIsResolvable.ts" +Typescript failed: "compiler/constructorTypeWithTypeParameters.ts" +Typescript failed: "compiler/contextualComputedNonBindablePropertyType.ts" +Typescript failed: "compiler/contextualExpressionTypecheckingDoesntBlowStack.ts" +Typescript failed: "compiler/contextualReturnTypeOfIIFE2.ts" +Typescript failed: "compiler/contextualSignatureConditionalTypeInstantiationUsingDefault.ts" +Typescript failed: "compiler/contextualSignatureInstantiation2.ts" +Typescript failed: "compiler/contextualTypeArrayReturnType.ts" +Typescript failed: "compiler/contextualTypeCaching.ts" +Typescript failed: "compiler/contextualTyping23.ts" +Typescript failed: "compiler/contextualTyping32.ts" +Typescript failed: "compiler/contextualTypingArrayOfLambdas.ts" +Typescript failed: "compiler/contextualTypingOfLambdaWithMultipleSignatures2.ts" +Typescript failed: "compiler/contextualTypingWithGenericAndNonGenericSignature.ts" +Typescript failed: "compiler/contextualTypingWithGenericSignature.ts" +Typescript failed: "compiler/contextuallyTypedParametersWithInitializers3.ts" +Typescript failed: "compiler/contextuallyTypedSymbolNamedProperties.ts" +Typescript failed: "compiler/contextuallyTypingOrOperator.ts" +Typescript failed: "compiler/contextuallyTypingOrOperator2.ts" +Typescript failed: "compiler/contravariantOnlyInferenceFromAnnotatedFunction.ts" +Typescript failed: "compiler/contravariantOnlyInferenceWithAnnotatedOptionalParameter.ts" +Typescript failed: "compiler/correlatedUnions.ts" +Typescript failed: "compiler/crashInGetTextOfComputedPropertyName.ts" +Typescript failed: "compiler/declFileGenericType.ts" +Typescript failed: "compiler/declFileRestParametersOfFunctionAndFunctionType.ts" +Typescript failed: "compiler/declFileTypeAnnotationTypeLiteral.ts" +Typescript failed: "compiler/declFileTypeAnnotationUnionType.ts" +Typescript failed: "compiler/declarationEmitAmdModuleDefault.ts" +Typescript failed: "compiler/declarationEmitBindingPatternWithReservedWord.ts" +Typescript failed: "compiler/declarationEmitClassMixinLocalClassDeclaration.ts" +Typescript failed: "compiler/declarationEmitDefaultExport1.ts" +Typescript failed: "compiler/declarationEmitDefaultExport2.ts" +Typescript failed: "compiler/declarationEmitDistributiveConditionalWithInfer.ts" +Typescript failed: "compiler/declarationEmitExpandoWithGenericConstraint.ts" +Typescript failed: "compiler/declarationEmitExpressionInExtends.ts" +Typescript failed: "compiler/declarationEmitForDefaultExportClassExtendingExpression01.ts" +Typescript failed: "compiler/declarationEmitGlobalThisPreserved.ts" +Typescript failed: "compiler/declarationEmitLocalClassHasRequiredDeclare.ts" +Typescript failed: "compiler/declarationEmitMappedTypePropertyFromNumericStringKey.ts" +Typescript failed: "compiler/declarationEmitNameConflictsWithAlias.ts" +Typescript failed: "compiler/declarationEmitNamespaceMergedWithInterfaceNestedFunction.ts" +Typescript failed: "compiler/declarationEmitNestedGenerics.ts" +Typescript failed: "compiler/declarationEmitNoNonRequiredParens.ts" +Typescript failed: "compiler/declarationEmitNonExportedBindingPattern.ts" +Typescript failed: "compiler/declarationEmitOptionalMethod.ts" +Typescript failed: "compiler/declarationEmitPrivateNameCausesError.ts" +Typescript failed: "compiler/declarationEmitPromise.ts" +Typescript failed: "compiler/declarationEmitRetainsJsdocyComments.ts" +Typescript failed: "compiler/declarationEmitShadowingInferNotRenamed.ts" +Typescript failed: "compiler/declarationEmitTypeAliasWithTypeParameters1.ts" +Typescript failed: "compiler/declarationEmitTypeAliasWithTypeParameters2.ts" +Typescript failed: "compiler/declarationEmitTypeParameterNameInOuterScope.ts" +Typescript failed: "compiler/declarationEmitTypeParameterNameReusedInOverloads.ts" +Typescript failed: "compiler/declarationEmitTypeParameterNameShadowedInternally.ts" +Typescript failed: "compiler/declarationMaps.ts" +Typescript failed: "compiler/declarationQuotedMembers.ts" +Typescript failed: "compiler/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.ts" +Typescript failed: "compiler/declareFileExportAssignment.ts" +Typescript failed: "compiler/declareFileExportAssignmentWithVarFromVariableStatement.ts" +Typescript failed: "compiler/defaultDeclarationEmitNamedCorrectly.ts" +Typescript failed: "compiler/defaultDeclarationEmitShadowedNamedCorrectly.ts" +Typescript failed: "compiler/deferredConditionalTypes2.ts" +Typescript failed: "compiler/destructuredMaappedTypeIsNotImplicitlyAny.ts" +Typescript failed: "compiler/discriminatedUnionWithIndexSignature.ts" +Typescript failed: "compiler/discriminatingUnionWithUnionPropertyAgainstUndefinedWithoutStrictNullChecks.ts" +Typescript failed: "compiler/divergentAccessorsTypes7.ts" +Typescript failed: "compiler/dottedNamesInSystem.ts" +Typescript failed: "compiler/doubleMixinConditionalTypeBaseClassWorks.ts" +Typescript failed: "compiler/downlevelLetConst13.ts" +Default failed: "compiler/elidedEmbeddedStatementsReplacedWithSemicolon.ts" +Typescript failed: "compiler/emitClassExpressionInDeclarationFile.ts" +Typescript failed: "compiler/emptyAnonymousObjectNarrowing.ts" +Typescript failed: "compiler/enumKeysQuotedAsObjectPropertiesInDeclarationEmit.ts" +Typescript failed: "compiler/es2015modulekind.ts" +Typescript failed: "compiler/es2015modulekindWithES6Target.ts" +Typescript failed: "compiler/es5-commonjs.ts" +Typescript failed: "compiler/es5-system.ts" +Typescript failed: "compiler/es5-umd3.ts" +Typescript failed: "compiler/es5ExportDefaultClassDeclaration.ts" +Typescript failed: "compiler/es5ExportDefaultClassDeclaration2.ts" +Typescript failed: "compiler/es5andes6module.ts" +Typescript failed: "compiler/es6ExportDefaultClassDeclaration.ts" +Typescript failed: "compiler/es6ExportDefaultClassDeclaration2.ts" +Typescript failed: "compiler/es6ModuleClassDeclaration.ts" +Typescript failed: "compiler/es6ModuleConst.ts" +Typescript failed: "compiler/es6ModuleConstEnumDeclaration.ts" +Typescript failed: "compiler/es6ModuleConstEnumDeclaration2.ts" +Typescript failed: "compiler/es6ModuleEnumDeclaration.ts" +Typescript failed: "compiler/es6ModuleFunctionDeclaration.ts" +Typescript failed: "compiler/es6ModuleInternalImport.ts" +Typescript failed: "compiler/es6ModuleLet.ts" +Typescript failed: "compiler/es6ModuleModuleDeclaration.ts" +Typescript failed: "compiler/es6ModuleVariableStatement.ts" +Typescript failed: "compiler/excessPropertyCheckingIntersectionWithConditional.ts" +Typescript failed: "compiler/expandoFunctionBlockShadowing.ts" +Typescript failed: "compiler/exportAssignmentWithPrivacyError.ts" +Typescript failed: "compiler/exportDefaultInterfaceAndFunctionOverloads.ts" +Typescript failed: "compiler/exportDefaultInterfaceAndValue.ts" +Typescript failed: "compiler/exportRedeclarationTypeAliases.ts" +Typescript failed: "compiler/exportTwoInterfacesWithSameName.ts" +Typescript failed: "compiler/exportedInterfaceInaccessibleInCallbackInModule.ts" +Typescript failed: "compiler/externalModuleWithoutCompilerFlag1.ts" +Typescript failed: "compiler/fakeInfinity2.ts" +Typescript failed: "compiler/fakeInfinity3.ts" +Typescript failed: "compiler/fatarrowfunctions.ts" +Typescript failed: "compiler/functionDeclarationWithArgumentOfTypeFunctionTypeArray.ts" +Typescript failed: "compiler/genericCallOnMemberReturningClosedOverObject.ts" +Typescript failed: "compiler/genericClassesInModule2.ts" +Typescript failed: "compiler/genericFunctionInference2.ts" +Typescript failed: "compiler/genericFunctionsAndConditionalInference.ts" +Typescript failed: "compiler/genericFunctionsNotContextSensitive.ts" +Typescript failed: "compiler/genericFunctionsWithOptionalParameters3.ts" +Typescript failed: "compiler/genericIndexedAccessMethodIntersectionCanBeAccessed.ts" +Typescript failed: "compiler/genericInterfaceFunctionTypeParameter.ts" +Typescript failed: "compiler/genericObjectSpreadResultInSwitch.ts" +Typescript failed: "compiler/genericOverloadSignatures.ts" +Typescript failed: "compiler/genericParameterAssignability1.ts" +Typescript failed: "compiler/genericTypeAssertions3.ts" +Typescript failed: "compiler/genericTypeWithCallableMembers2.ts" +Typescript failed: "compiler/genericTypeWithMultipleBases1.ts" +Typescript failed: "compiler/genericTypeWithMultipleBases2.ts" +Typescript failed: "compiler/genericsAndHigherOrderFunctions.ts" +Typescript failed: "compiler/higherOrderMappedIndexLookupInference.ts" +Typescript failed: "compiler/idInProp.ts" +Typescript failed: "compiler/identicalGenericConditionalsWithInferRelated.ts" +Minify failed: "compiler/identityRelationNeverTypes.ts" +Typescript failed: "compiler/importHelpersDeclarations.ts" +Typescript failed: "compiler/inKeywordTypeguard.ts" +Typescript failed: "compiler/indirectTypeParameterReferences.ts" +Typescript failed: "compiler/inferConditionalConstraintMappedMember.ts" +Typescript failed: "compiler/inferFromGenericFunctionReturnTypes2.ts" +Typescript failed: "compiler/inferTypeConstraintInstantiationCircularity.ts" +Typescript failed: "compiler/inferenceAndHKTs.ts" +Typescript failed: "compiler/inferenceDoesntCompareAgainstUninstantiatedTypeParameter.ts" +Typescript failed: "compiler/inferentialTypingUsingApparentType2.ts" +Typescript failed: "compiler/inferringReturnTypeFromConstructSignatureGeneric.ts" +Typescript failed: "compiler/infinitelyExpandingOverloads.ts" +Typescript failed: "compiler/infinitelyExpandingTypesNonGenericBase.ts" +Typescript failed: "compiler/initializedParameterBeforeNonoptionalNotOptional.ts" +Typescript failed: "compiler/interfaceClassMerging.ts" +Typescript failed: "compiler/interfaceContextualType.ts" +Typescript failed: "compiler/interfaceDeclaration5.ts" +Typescript failed: "compiler/interfaceWithCommaSeparators.ts" +Typescript failed: "compiler/internalAliasClassInsideLocalModuleWithExport.ts" +Typescript failed: "compiler/internalAliasClassInsideLocalModuleWithoutExport.ts" +Typescript failed: "compiler/internalAliasClassInsideTopLevelModuleWithExport.ts" +Typescript failed: "compiler/internalAliasClassInsideTopLevelModuleWithoutExport.ts" +Typescript failed: "compiler/internalAliasEnumInsideLocalModuleWithExport.ts" +Typescript failed: "compiler/internalAliasEnumInsideLocalModuleWithoutExport.ts" +Typescript failed: "compiler/internalAliasEnumInsideTopLevelModuleWithExport.ts" +Typescript failed: "compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.ts" +Typescript failed: "compiler/internalAliasFunctionInsideLocalModuleWithExport.ts" +Typescript failed: "compiler/internalAliasFunctionInsideLocalModuleWithoutExport.ts" +Typescript failed: "compiler/internalAliasFunctionInsideTopLevelModuleWithExport.ts" +Typescript failed: "compiler/internalAliasFunctionInsideTopLevelModuleWithoutExport.ts" +Typescript failed: "compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.ts" +Typescript failed: "compiler/internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts" +Typescript failed: "compiler/internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts" +Typescript failed: "compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts" +Typescript failed: "compiler/internalAliasInterfaceInsideLocalModuleWithExport.ts" +Typescript failed: "compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.ts" +Typescript failed: "compiler/internalAliasInterfaceInsideTopLevelModuleWithExport.ts" +Typescript failed: "compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts" +Typescript failed: "compiler/internalAliasUninitializedModuleInsideLocalModuleWithExport.ts" +Typescript failed: "compiler/internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts" +Typescript failed: "compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts" +Typescript failed: "compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts" +Typescript failed: "compiler/internalAliasVarInsideLocalModuleWithExport.ts" +Typescript failed: "compiler/internalAliasVarInsideLocalModuleWithoutExport.ts" +Typescript failed: "compiler/internalAliasVarInsideTopLevelModuleWithExport.ts" +Typescript failed: "compiler/internalAliasVarInsideTopLevelModuleWithoutExport.ts" +Typescript failed: "compiler/intersectionSatisfiesConstraint.ts" +Typescript failed: "compiler/intersectionTypeInference1.ts" +Typescript failed: "compiler/intersectionType_useDefineForClassFields.ts" +Typescript failed: "compiler/jsxCallbackWithDestructuring.tsx" +Typescript failed: "compiler/jsxComplexSignatureHasApplicabilityError.tsx" +Default failed: "compiler/jsxMultilineAttributeStringValues.tsx" +Default failed: "compiler/jsxMultilineAttributeValuesReact.tsx" +Default failed: "compiler/jsxNamespacedNameNotComparedToNonMatchingIndexSignature.tsx" +Typescript failed: "compiler/jsxPartialSpread.tsx" +Typescript failed: "compiler/jsxSpreadFirstUnionNoErrors.tsx" +Default failed: "compiler/localClassesInLoop.ts" +Default failed: "compiler/localClassesInLoop_ES6.ts" +Typescript failed: "compiler/localTypeParameterInferencePriority.ts" +Typescript failed: "compiler/mapOnTupleTypes02.ts" +Typescript failed: "compiler/mappedTypeGenericIndexedAccess.ts" +Typescript failed: "compiler/mappedTypeGenericInstantiationPreservesInlineForm.ts" +Typescript failed: "compiler/mappedTypeInferenceAliasSubstitution.ts" +Typescript failed: "compiler/mappedTypeNestedGenericInstantiation.ts" +Typescript failed: "compiler/mappedTypeTupleConstraintAssignability.ts" +Typescript failed: "compiler/memberAccessOnConstructorType.ts" +Typescript failed: "compiler/mergedModuleDeclarationCodeGen.ts" +Typescript failed: "compiler/metadataOfStringLiteral.ts" +Typescript failed: "compiler/metadataOfUnion.ts" +Typescript failed: "compiler/metadataOfUnionWithNull.ts" +Typescript failed: "compiler/methodContainingLocalFunction.ts" +Typescript failed: "compiler/mixinIntersectionIsValidbaseType.ts" +Minify failed: "compiler/modularizeLibrary_Dom.asynciterable.ts" +Minify failed: "compiler/modularizeLibrary_Worker.asynciterable.ts" +Typescript failed: "compiler/moduleCodegenTest4.ts" +Typescript failed: "compiler/multipleInferenceContexts.ts" +Typescript failed: "compiler/narrowByBooleanComparison.ts" +Typescript failed: "compiler/narrowByClauseExpressionInSwitchTrue1.ts" +Typescript failed: "compiler/narrowingByTypeofInSwitch.ts" +Typescript failed: "compiler/narrowingUnionToUnion.ts" +Typescript failed: "compiler/neverAsDiscriminantType.ts" +Typescript failed: "compiler/noAsConstNameLookup.ts" +Typescript failed: "compiler/noCollisionThisExpressionAndLocalVarInFunction.ts" +Typescript failed: "compiler/noCollisionThisExpressionInFunctionAndVarInGlobal.ts" +Typescript failed: "compiler/noImplicitAnyDestructuringInPrivateMethod.ts" +Typescript failed: "compiler/noSubstitutionTemplateStringLiteralTypes.ts" +Typescript failed: "compiler/noSubtypeReduction.ts" +Typescript failed: "compiler/nonInferrableTypePropagation3.ts" +Typescript failed: "compiler/nonNullMappedType.ts" +Typescript failed: "compiler/nonNullReferenceMatching.ts" +Typescript failed: "compiler/objectBindingPatternContextuallyTypesArgument.ts" +Typescript failed: "compiler/omitTypeTests01.ts" +Typescript failed: "compiler/overloadOnConstAsTypeAnnotation.ts" +Typescript failed: "compiler/overloadOnConstNoStringImplementation.ts" +Typescript failed: "compiler/overloadResolutionWithAny.ts" +Typescript failed: "compiler/overrideBaseIntersectionMethod.ts" +Typescript failed: "compiler/parameterDestructuringObjectLiteral.ts" +Typescript failed: "compiler/parenthesisDoesNotBlockAliasSymbolCreation.ts" +Typescript failed: "compiler/parenthesizedArrowExpressionASI.ts" +Typescript failed: "compiler/parseObjectLiteralsWithoutTypes.ts" +Typescript failed: "compiler/performanceComparisonOfStructurallyIdenticalInterfacesWithGenericSignatures.ts" +Typescript failed: "compiler/prefixedNumberLiteralAssignToNumberLiteralType.ts" +Typescript failed: "compiler/prespecializedGenericMembers1.ts" +Typescript failed: "compiler/privacyCheckCallbackOfInterfaceMethodWithTypeParameter.ts" +Typescript failed: "compiler/privacyCheckExportAssignmentOnExportedGenericInterface1.ts" +Typescript failed: "compiler/privacyClass.ts" +Typescript failed: "compiler/privacyImport.ts" +Typescript failed: "compiler/privacyInterface.ts" +Typescript failed: "compiler/privacyLocalInternalReferenceImportWithExport.ts" +Typescript failed: "compiler/privacyLocalInternalReferenceImportWithoutExport.ts" +Typescript failed: "compiler/privacyTopLevelInternalReferenceImportWithExport.ts" +Typescript failed: "compiler/privacyTypeParameterOfFunction.ts" +Typescript failed: "compiler/privacyTypeParameterOfFunctionDeclFile.ts" +Typescript failed: "compiler/privacyTypeParametersOfClassDeclFile.ts" +Typescript failed: "compiler/privacyTypeParametersOfInterface.ts" +Typescript failed: "compiler/privacyTypeParametersOfInterfaceDeclFile.ts" +Typescript failed: "compiler/privacyVar.ts" +Typescript failed: "compiler/privatePropertyUsingObjectType.ts" +Typescript failed: "compiler/promiseVoidErrorCallback.ts" +Typescript failed: "compiler/recursiveConditionalCrash2.ts" +Typescript failed: "compiler/recursiveConditionalCrash3.ts" +Typescript failed: "compiler/recursiveMods.ts" +Typescript failed: "compiler/redeclarationOfVarWithGenericType.ts" +Typescript failed: "compiler/restElementAssignable.ts" +Typescript failed: "compiler/returnInfiniteIntersection.ts" +Typescript failed: "compiler/reverseMappedContravariantInference.ts" +Typescript failed: "compiler/reverseMappedTypeDeepDeclarationEmit.ts" +Typescript failed: "compiler/sourceMapValidationFunctionExpressions.ts" +Typescript failed: "compiler/sourceMapValidationImport.ts" +Typescript failed: "compiler/sourceMapValidationLambdaSpanningMultipleLines.ts" +Typescript failed: "compiler/specedNoStackBlown.ts" +Typescript failed: "compiler/strictTypeofUnionNarrowing.ts" +Typescript failed: "compiler/styledComponentsInstantiaionLimitNotReached.ts" +Typescript failed: "compiler/switchCaseNarrowsMatchingClausesEvenWhenNonMatchingClausesExist.ts" +Typescript failed: "compiler/systemModule7.ts" +Typescript failed: "compiler/systemModuleDeclarationMerging.ts" +Typescript failed: "compiler/systemModuleNonTopLevelModuleMembers.ts" +Typescript failed: "compiler/taggedTemplateStringWithSymbolExpression01.ts" +Typescript failed: "compiler/thisIndexOnExistingReadonlyFieldIsNotNever.ts" +Typescript failed: "compiler/tooFewArgumentsInGenericFunctionTypedArgument.ts" +Typescript failed: "compiler/transformsElideNullUndefinedType.ts" +Typescript failed: "compiler/trivialSubtypeReductionNoStructuralCheck2.ts" +Typescript failed: "compiler/tsxAttributeQuickinfoTypesSameAsObjectLiteral.tsx" +Typescript failed: "compiler/tsxUnionSpread.tsx" +Typescript failed: "compiler/typeAliasDeclarationEmit2.ts" +Default failed: "compiler/typeAliasDeclarationEmit3.ts" +Typescript failed: "compiler/typeAliasFunctionTypeSharedSymbol.ts" +Typescript failed: "compiler/typeGuardConstructorPrimitiveTypes.ts" +Typescript failed: "compiler/typeGuardNarrowsIndexedAccessOfKnownProperty7.ts" +Typescript failed: "compiler/typeGuardOnContainerTypeNoHang.ts" +Typescript failed: "compiler/typeInferenceWithTypeAnnotation.ts" +Typescript failed: "compiler/typeParameterCompatibilityAccrossDeclarations.ts" +Typescript failed: "compiler/typeParameterConstraintInstantiation.ts" +Typescript failed: "compiler/typePredicateFreshLiteralWidening.ts" +Typescript failed: "compiler/typePredicatesOptionalChaining2.ts" +Typescript failed: "compiler/typeResolution.ts" +Typescript failed: "compiler/unionOfClassCalls.ts" +Typescript failed: "compiler/unionOfFunctionAndSignatureIsCallable.ts" +Typescript failed: "compiler/unionReductionMutualSubtypes.ts" +Typescript failed: "compiler/unionSignaturesWithThisParameter.ts" +Typescript failed: "compiler/unionTypeWithLeadingOperator.ts" +Typescript failed: "compiler/unionWithIndexSignature.ts" +Typescript failed: "compiler/unusedLocalsAndParametersOverloadSignatures.ts" +Typescript failed: "compiler/unusedLocalsAndParametersTypeAliases.ts" +Typescript failed: "compiler/unwitnessedTypeParameterVariance.ts" +Typescript failed: "compiler/useBeforeDefinitionInDeclarationFiles.ts" +Typescript failed: "compiler/varArgParamTypeCheck.ts" +Typescript failed: "compiler/vardecl.ts" +Typescript failed: "compiler/voidConstructor.ts" +Typescript failed: "compiler/weakTypeAndPrimitiveNarrowing.ts" +Typescript failed: "compiler/withExportDecl.ts" +Typescript failed: "conformance/Symbols/ES5SymbolProperty5.ts" +Typescript failed: "conformance/Symbols/ES5SymbolType1.ts" +Typescript failed: "conformance/ambient/ambientInsideNonAmbientExternalModule.ts" +Typescript failed: "conformance/classes/classStaticBlock/classStaticBlock11.ts" +Typescript failed: "conformance/classes/classStaticBlock/classStaticBlock17.ts" +Typescript failed: "conformance/classes/members/privateNames/privateNameComputedPropertyName2.ts" +Typescript failed: "conformance/classes/mixinAbstractClasses.ts" +Typescript failed: "conformance/classes/mixinAbstractClassesReturnTypeInference.ts" +Typescript failed: "conformance/classes/mixinClassesAnnotated.ts" +Typescript failed: "conformance/classes/mixinClassesAnonymous.ts" +Typescript failed: "conformance/classes/propertyMemberDeclarations/accessorsOverrideProperty9.ts" +Typescript failed: "conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts" +Typescript failed: "conformance/classes/propertyMemberDeclarations/memberAccessorDeclarations/accessorsAreNotContextuallyTyped.ts" +Default failed: "conformance/constEnums/constEnum4.ts" +Typescript failed: "conformance/controlFlow/controlFlowBinaryOrExpression.ts" +Typescript failed: "conformance/controlFlow/typeGuardsAsAssertions.ts" +Typescript failed: "conformance/controlFlow/typeGuardsTypeParameters.ts" +Typescript failed: "conformance/decorators/class/decoratedBlockScopedClass1.ts" +Typescript failed: "conformance/decorators/class/decoratedBlockScopedClass2.ts" +Typescript failed: "conformance/decorators/class/decoratedBlockScopedClass3.ts" +Typescript failed: "conformance/decorators/class/method/decoratorOnClassMethod19.ts" +Typescript failed: "conformance/enums/enumExportMergingES6.ts" +Typescript failed: "conformance/es6/Symbols/symbolProperty1.ts" +Typescript failed: "conformance/es6/Symbols/symbolType16.ts" +Typescript failed: "conformance/es6/Symbols/symbolType17.ts" +Typescript failed: "conformance/es6/Symbols/symbolType18.ts" +Typescript failed: "conformance/es6/Symbols/symbolType19.ts" +Typescript failed: "conformance/es6/classDeclaration/exportDefaultClassWithStaticPropertyAssignmentsInES6.ts" +Typescript failed: "conformance/es6/decorators/class/accessor/decoratorOnClassAccessor1.es6.ts" +Typescript failed: "conformance/es6/decorators/class/decoratorOnClass3.es6.ts" +Typescript failed: "conformance/es6/decorators/class/decoratorOnClass4.es6.ts" +Typescript failed: "conformance/es6/decorators/class/decoratorOnClass7.es6.ts" +Typescript failed: "conformance/es6/decorators/class/decoratorOnClass8.es6.ts" +Typescript failed: "conformance/es6/decorators/class/method/decoratorOnClassMethod1.es6.ts" +Typescript failed: "conformance/es6/decorators/class/method/parameter/decoratorOnClassMethodParameter1.es6.ts" +Typescript failed: "conformance/es6/decorators/class/property/decoratorOnClassProperty1.es6.ts" +Typescript failed: "conformance/es6/destructuring/destructuringEvaluationOrder.ts" +Typescript failed: "conformance/es6/for-ofStatements/for-of44.ts" +Typescript failed: "conformance/es6/modules/defaultExportWithOverloads01.ts" +Typescript failed: "conformance/es6/spread/iteratorSpreadInCall5.ts" +Typescript failed: "conformance/es6/yieldExpressions/generatorTypeCheck62.ts" +Typescript failed: "conformance/esDecorators/classDeclaration/esDecorators-classDeclaration-commonjs-classNamespaceMerge.ts" +Typescript failed: "conformance/esDecorators/classDeclaration/esDecorators-classDeclaration-outerThisReference.ts" +Typescript failed: "conformance/esDecorators/esDecorators-contextualTypes.2.ts" +Typescript failed: "conformance/expressions/arrayLiterals/arrayLiteralInference.ts" +Typescript failed: "conformance/expressions/assignmentOperator/assignmentGenericLookupTypeNarrowing.ts" +Typescript failed: "conformance/expressions/binaryOperators/additionOperator/additionOperatorWithAnyAndEveryType.ts" +Typescript failed: "conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.ts" +Typescript failed: "conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.ts" +Typescript failed: "conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts" +Typescript failed: "conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts" +Typescript failed: "conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts" +Typescript failed: "conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts" +Typescript failed: "conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithRHSIsSubtypeOfFunction.ts" +Typescript failed: "conformance/expressions/contextualTyping/functionExpressionContextualTyping1.ts" +Typescript failed: "conformance/expressions/contextualTyping/functionExpressionContextualTyping3.ts" +Typescript failed: "conformance/expressions/contextualTyping/generatedContextualTyping.ts" +Typescript failed: "conformance/expressions/contextualTyping/taggedTemplateContextualTyping1.ts" +Default failed: "conformance/expressions/elementAccess/letIdentifierInElementAccess01.ts" +Typescript failed: "conformance/expressions/functions/arrowFunctionExpressions.ts" +Typescript failed: "conformance/expressions/functions/contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts" +Typescript failed: "conformance/expressions/newOperator/newOperatorConformance.ts" +Typescript failed: "conformance/expressions/objectLiterals/objectLiteralGettersAndSetters.ts" +Typescript failed: "conformance/expressions/optionalChaining/optionalChainingInArrow.ts" +Typescript failed: "conformance/expressions/optionalChaining/optionalChainingInLoop.ts" +Typescript failed: "conformance/expressions/typeGuards/typeGuardFunction.ts" +Typescript failed: "conformance/expressions/typeGuards/typeGuardOfFormTypeOfFunction.ts" +Typescript failed: "conformance/expressions/typeGuards/typeGuardOfFormTypeOfIsOrderIndependent.ts" +Typescript failed: "conformance/expressions/typeGuards/typeGuardOfFormTypeOfPrimitiveSubtype.ts" +Typescript failed: "conformance/expressions/typeGuards/typeGuardsInFunction.ts" +Typescript failed: "conformance/expressions/typeGuards/typeGuardsInFunctionAndModuleBlock.ts" +Typescript failed: "conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts" +Typescript failed: "conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts" +Typescript failed: "conformance/expressions/unaryOperators/voidOperator/voidOperatorWithNumberType.ts" +Typescript failed: "conformance/expressions/unaryOperators/voidOperator/voidOperatorWithStringType.ts" +Typescript failed: "conformance/externalModules/es6/es6modulekind.ts" +Typescript failed: "conformance/externalModules/es6/es6modulekindWithES2015Target.ts" +Typescript failed: "conformance/externalModules/es6/es6modulekindWithES5Target11.ts" +Typescript failed: "conformance/externalModules/es6/es6modulekindWithES5Target12.ts" +Typescript failed: "conformance/externalModules/es6/es6modulekindWithES5Target2.ts" +Typescript failed: "conformance/externalModules/es6/es6modulekindWithES5Target3.ts" +Typescript failed: "conformance/externalModules/es6/es6modulekindWithES5Target5.ts" +Typescript failed: "conformance/externalModules/es6/es6modulekindWithES5Target7.ts" +Typescript failed: "conformance/externalModules/esnext/esnextmodulekind.ts" +Typescript failed: "conformance/externalModules/esnext/esnextmodulekindWithES2015Target.ts" +Typescript failed: "conformance/externalModules/esnext/esnextmodulekindWithES5Target11.ts" +Typescript failed: "conformance/externalModules/esnext/esnextmodulekindWithES5Target12.ts" +Typescript failed: "conformance/externalModules/esnext/esnextmodulekindWithES5Target2.ts" +Typescript failed: "conformance/externalModules/esnext/esnextmodulekindWithES5Target3.ts" +Typescript failed: "conformance/externalModules/esnext/esnextmodulekindWithES5Target5.ts" +Typescript failed: "conformance/externalModules/esnext/esnextmodulekindWithES5Target7.ts" +Typescript failed: "conformance/externalModules/exportAmbientClassNameWithObject.ts" +Typescript failed: "conformance/externalModules/verbatimModuleSyntaxConstEnum.ts" +Typescript failed: "conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts" +Typescript failed: "conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts" +Typescript failed: "conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts" +Typescript failed: "conformance/internalModules/moduleDeclarations/nonInstantiatedModule.ts" +Typescript failed: "conformance/jsdoc/declarations/jsDeclarationsThisTypes.ts" +Typescript failed: "conformance/jsdoc/jsdocLinkTag5.ts" +Typescript failed: "conformance/jsdoc/tsNoCheckForTypescript.ts" +Typescript failed: "conformance/jsdoc/tsNoCheckForTypescriptComments1.ts" +Typescript failed: "conformance/jsdoc/tsNoCheckForTypescriptComments2.ts" +Typescript failed: "conformance/jsx/checkJsxChildrenProperty10.tsx" +Typescript failed: "conformance/jsx/checkJsxChildrenProperty11.tsx" +Typescript failed: "conformance/jsx/checkJsxChildrenProperty16.tsx" +Typescript failed: "conformance/jsx/checkJsxChildrenProperty9.tsx" +Default failed: "conformance/jsx/jsxReactTestSuite.tsx" +Default failed: "conformance/jsx/tsxNamespacedAttributeName1.tsx" +Default failed: "conformance/jsx/tsxNamespacedAttributeName2.tsx" +Default failed: "conformance/jsx/tsxReactEmitEntities.tsx" +Typescript failed: "conformance/jsx/tsxSfcReturnNull.tsx" +Typescript failed: "conformance/jsx/tsxSfcReturnNullStrictNullChecks.tsx" +Typescript failed: "conformance/jsx/tsxStatelessFunctionComponentOverload6.tsx" +Typescript failed: "conformance/jsx/tsxStatelessFunctionComponents3.tsx" +Typescript failed: "conformance/parser/ecmascript5/EnumDeclarations/parserEnum1.ts" +Typescript failed: "conformance/parser/ecmascript5/EnumDeclarations/parserEnum2.ts" +Typescript failed: "conformance/parser/ecmascript5/EnumDeclarations/parserEnum3.ts" +Typescript failed: "conformance/parser/ecmascript5/InterfaceDeclarations/parserInterfaceDeclaration7.ts" +Typescript failed: "conformance/parser/ecmascript5/ModuleDeclarations/parserModule1.ts" +Typescript failed: "conformance/parser/ecmascript5/ObjectTypes/parserObjectType3.ts" +Typescript failed: "conformance/parser/ecmascript5/ObjectTypes/parserObjectType4.ts" +Typescript failed: "conformance/parser/ecmascript5/RegressionTests/parser645484.ts" +Typescript failed: "conformance/parser/ecmascript5/Symbols/parserES5SymbolIndexer3.ts" +Typescript failed: "conformance/parser/ecmascript6/Symbols/parserSymbolIndexer4.ts" +Typescript failed: "conformance/parser/ecmascript6/Symbols/parserSymbolProperty8.ts" +Typescript failed: "conformance/salsa/propertyAssignmentUseParentType1.ts" +Typescript failed: "conformance/scanner/ecmascript5/scannerEnum1.ts" +Typescript failed: "conformance/statements/VariableStatements/recursiveInitializer.ts" +Default failed: "conformance/statements/VariableStatements/usingDeclarations/awaitUsingDeclarationsInFor.ts" +Default failed: "conformance/statements/VariableStatements/usingDeclarations/awaitUsingDeclarationsInForAwaitOf.ts" +Default failed: "conformance/statements/VariableStatements/usingDeclarations/awaitUsingDeclarationsInForOf.1.ts" +Default failed: "conformance/statements/VariableStatements/usingDeclarations/awaitUsingDeclarationsInForOf.2.ts" +Typescript failed: "conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsDeclarationEmit.2.ts" +Default failed: "conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsInFor.ts" +Default failed: "conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsInForAwaitOf.ts" +Default failed: "conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsInForOf.1.ts" +Typescript failed: "conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsWithESClassDecorators.10.ts" +Typescript failed: "conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsWithESClassDecorators.4.ts" +Typescript failed: "conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsWithLegacyClassDecorators.10.ts" +Typescript failed: "conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsWithLegacyClassDecorators.3.ts" +Typescript failed: "conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsWithLegacyClassDecorators.4.ts" +Typescript failed: "conformance/statements/VariableStatements/usingDeclarations/usingDeclarationsWithLegacyClassDecorators.9.ts" +Typescript failed: "conformance/statements/VariableStatements/validMultipleVariableDeclarations.ts" +Typescript failed: "conformance/statements/for-await-ofStatements/forAwaitPerIterationBindingDownlevel.ts" +Typescript failed: "conformance/statements/forStatements/forStatementsMultipleValidDecl.ts" +Typescript failed: "conformance/statements/throwStatements/throwInEnclosingStatements.ts" +Typescript failed: "conformance/statements/throwStatements/throwStatements.ts" +Typescript failed: "conformance/types/any/assignEveryTypeToAny.ts" +Typescript failed: "conformance/types/asyncGenerators/types.asyncGenerators.es2018.1.ts" +Typescript failed: "conformance/types/conditional/inferTypes2.ts" +Typescript failed: "conformance/types/contextualTypes/asyncFunctions/contextuallyTypeAsyncFunctionReturnType.ts" +Typescript failed: "conformance/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceWithTypeParameter.ts" +Typescript failed: "conformance/types/import/importTypeAmbient.ts" +Typescript failed: "conformance/types/intersection/intersectionMemberOfUnionNarrowsCorrectly.ts" +Typescript failed: "conformance/types/keyof/keyofAndForIn.ts" +Typescript failed: "conformance/types/literal/literalTypeWidening.ts" +Typescript failed: "conformance/types/literal/literalTypes2.ts" +Typescript failed: "conformance/types/literal/numericStringLiteralTypes.ts" +Typescript failed: "conformance/types/mapped/isomorphicMappedTypeInference.ts" +Typescript failed: "conformance/types/mapped/mappedTypeConstraints.ts" +Typescript failed: "conformance/types/mapped/mappedTypeModifiers.ts" +Typescript failed: "conformance/types/mapped/mappedTypes2.ts" +Typescript failed: "conformance/types/members/objectTypeHidingMembersOfObject.ts" +Typescript failed: "conformance/types/members/objectTypeWithCallSignatureAppearsToBeFunctionType.ts" +Typescript failed: "conformance/types/members/objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts" +Typescript failed: "conformance/types/members/objectTypeWithCallSignatureHidingMembersOfFunction.ts" +Typescript failed: "conformance/types/members/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts" +Typescript failed: "conformance/types/members/objectTypeWithConstructSignatureHidingMembersOfFunction.ts" +Typescript failed: "conformance/types/members/typesWithOptionalProperty.ts" +Typescript failed: "conformance/types/members/typesWithSpecializedCallSignatures.ts" +Typescript failed: "conformance/types/members/typesWithSpecializedConstructSignatures.ts" +Typescript failed: "conformance/types/nonPrimitive/nonPrimitiveAndEmptyObject.ts" +Typescript failed: "conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutAnnotationsOrBody.ts" +Typescript failed: "conformance/types/objectTypeLiteral/callSignatures/callSignaturesThatDifferOnlyByReturnType.ts" +Typescript failed: "conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts" +Typescript failed: "conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts" +Typescript failed: "conformance/types/objectTypeLiteral/callSignatures/identicalCallSignatures.ts" +Typescript failed: "conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts" +Typescript failed: "conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsSubtypeOfNonSpecializedSignature.ts" +Typescript failed: "conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures.ts" +Typescript failed: "conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithIdenticalOverloads.ts" +Typescript failed: "conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloads.ts" +Typescript failed: "conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts" +Typescript failed: "conformance/types/objectTypeLiteral/methodSignatures/functionLiterals.ts" +Typescript failed: "conformance/types/objectTypeLiteral/methodSignatures/methodSignaturesWithOverloads2.ts" +Typescript failed: "conformance/types/objectTypeLiteral/propertySignatures/propertyNameWithoutTypeAnnotation.ts" +Typescript failed: "conformance/types/objectTypeLiteral/propertySignatures/propertyNamesOfReservedWords.ts" +Typescript failed: "conformance/types/primitives/undefined/validUndefinedAssignments.ts" +Typescript failed: "conformance/types/rest/objectRestAssignment.ts" +Typescript failed: "conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts" +Typescript failed: "conformance/types/specifyingTypes/typeLiterals/functionLiteral.ts" +Typescript failed: "conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads.ts" +Typescript failed: "conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts" +Typescript failed: "conformance/types/specifyingTypes/typeLiterals/parenthesizedTypes.ts" +Typescript failed: "conformance/types/spread/objectSpread.ts" +Typescript failed: "conformance/types/stringLiteral/stringLiteralTypesAndTuples01.ts" +Typescript failed: "conformance/types/stringLiteral/stringLiteralTypesAsTypeParameterConstraint02.ts" +Typescript failed: "conformance/types/stringLiteral/stringLiteralTypesWithTemplateStrings01.ts" +Typescript failed: "conformance/types/thisType/thisTypeInClasses.ts" +Minify failed: "conformance/types/thisType/thisTypeInFunctions4.ts" +Typescript failed: "conformance/types/thisType/thisTypeOptionalCall.ts" +Typescript failed: "conformance/types/tuple/named/namedTupleMembers.ts" +Typescript failed: "conformance/types/typeAliases/typeAliases.ts" +Typescript failed: "conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts" +Typescript failed: "conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts" +Typescript failed: "conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts" +Typescript failed: "conformance/types/typeParameters/typeArgumentLists/wrappedAndRecursiveConstraints3.ts" +Typescript failed: "conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints.ts" +Typescript failed: "conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints2.ts" +Typescript failed: "conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints3.ts" +Typescript failed: "conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithoutConstraints.ts" +Typescript failed: "conformance/types/typeParameters/typeParameterLists/typeParameterUsedAsConstraint.ts" +Typescript failed: "conformance/types/typeParameters/typeParameterLists/typeParametersAvailableInNestedScope.ts" +Typescript failed: "conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignatures3.ts" +Typescript failed: "conformance/types/typeRelationships/bestCommonType/arrayLiteralWithMultipleBestCommonTypes.ts" +Typescript failed: "conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts" +Typescript failed: "conformance/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements2.ts" +Typescript failed: "conformance/types/typeRelationships/comparable/weakTypesAndLiterals01.ts" +Typescript failed: "conformance/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts" +Typescript failed: "conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints2.ts" +Typescript failed: "conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts" +Typescript failed: "conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures4.ts" +Typescript failed: "conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures2.ts" +Typescript failed: "conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures4.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts" +Typescript failed: "conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts" +Typescript failed: "conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments3.ts" +Typescript failed: "conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts" +Typescript failed: "conformance/types/typeRelationships/typeInference/genericCallWithGenericSignatureArguments.ts" +Typescript failed: "conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts" +Typescript failed: "conformance/types/typeRelationships/typeInference/genericContextualTypes1.ts" +Typescript failed: "conformance/types/typeRelationships/typeInference/genericContextualTypes2.ts" +Typescript failed: "conformance/types/typeRelationships/typeInference/genericContextualTypes3.ts" +Typescript failed: "conformance/types/typeRelationships/typeInference/unionAndIntersectionInference3.ts" +Typescript failed: "conformance/types/uniqueSymbol/uniqueSymbols.ts" +Typescript failed: "conformance/types/uniqueSymbol/uniqueSymbolsDeclarations.ts" +Typescript failed: "conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts" diff --git a/tasks/coverage/src/codegen.rs b/tasks/coverage/src/codegen.rs index 872eedc5a..90eba9067 100644 --- a/tasks/coverage/src/codegen.rs +++ b/tasks/coverage/src/codegen.rs @@ -13,18 +13,22 @@ use crate::{ typescript::TypeScriptCase, }; -fn get_result(source_text: &str, source_type: SourceType, options: CodegenOptions) -> TestResult { - if !get_normal_result(source_text, source_type, options) - || !get_minify_result(source_text, source_type, options) - { - TestResult::ParseError(String::new(), false) - } else { - TestResult::Passed +fn get_result(source_text: &str, source_type: SourceType) -> TestResult { + if !get_normal_result(source_text, source_type) { + return TestResult::CodegenError("Default"); } + if !get_minify_result(source_text, source_type) { + return TestResult::CodegenError("Minify"); + } + if !get_typescript_result(source_text, source_type) { + return TestResult::CodegenError("Typescript"); + } + TestResult::Passed } /// Idempotency test -fn get_normal_result(source_text: &str, source_type: SourceType, options: CodegenOptions) -> bool { +fn get_normal_result(source_text: &str, source_type: SourceType) -> bool { + let options = CodegenOptions::default(); let allocator = Allocator::default(); let program1 = Parser::new(&allocator, source_text, source_type).parse().program; let source_text1 = Codegen::::new(source_text.len(), options).build(&program1); @@ -34,7 +38,8 @@ fn get_normal_result(source_text: &str, source_type: SourceType, options: Codege } /// Minify idempotency test -fn get_minify_result(source_text: &str, source_type: SourceType, options: CodegenOptions) -> bool { +fn get_minify_result(source_text: &str, source_type: SourceType) -> bool { + let options = CodegenOptions::default(); let allocator = Allocator::default(); let program1 = Parser::new(&allocator, source_text, source_type).parse().program; let source_text1 = Codegen::::new(source_text.len(), options).build(&program1); @@ -43,6 +48,17 @@ fn get_minify_result(source_text: &str, source_type: SourceType, options: Codege source_text1 == source_text2 } +/// TypeScript idempotency test +fn get_typescript_result(source_text: &str, source_type: SourceType) -> bool { + let options = CodegenOptions { enable_typescript: true }; + let allocator = Allocator::default(); + let program1 = Parser::new(&allocator, source_text, source_type).parse().program; + let source_text1 = Codegen::::new(source_text.len(), options).build(&program1); + let program2 = Parser::new(&allocator, &source_text1, source_type).parse().program; + let source_text2 = Codegen::::new(source_text1.len(), options).build(&program2); + source_text1 == source_text2 +} + pub struct CodegenTest262Case { base: Test262Case, } @@ -72,7 +88,7 @@ impl Case for CodegenTest262Case { let source_text = self.base.code(); let is_module = self.base.meta().flags.contains(&TestFlag::Module); let source_type = SourceType::default().with_module(is_module); - let result = get_result(source_text, source_type, CodegenOptions); + let result = get_result(source_text, source_type); self.base.set_result(result); } } @@ -105,7 +121,7 @@ impl Case for CodegenBabelCase { fn run(&mut self) { let source_text = self.base.code(); let source_type = self.base.source_type(); - let result = get_result(source_text, source_type, CodegenOptions); + let result = get_result(source_text, source_type); self.base.set_result(result); } } @@ -138,7 +154,7 @@ impl Case for CodegenTypeScriptCase { fn run(&mut self) { let source_text = self.base.code(); let source_type = self.base.source_type(); - let result = get_result(source_text, source_type, CodegenOptions); + let result = get_result(source_text, source_type); self.base.set_result(result); } } @@ -171,7 +187,7 @@ impl Case for CodegenMiscCase { fn run(&mut self) { let source_text = self.base.code(); let source_type = self.base.source_type(); - let result = get_result(source_text, source_type, CodegenOptions); + let result = get_result(source_text, source_type); self.base.set_result(result); } } diff --git a/tasks/coverage/src/minifier.rs b/tasks/coverage/src/minifier.rs index 8c70732cf..764c358f1 100644 --- a/tasks/coverage/src/minifier.rs +++ b/tasks/coverage/src/minifier.rs @@ -100,5 +100,5 @@ fn minify(source_text: &str, source_type: SourceType, options: MinifierOptions) let program = Parser::new(&allocator, source_text, source_type).parse().program; let program = allocator.alloc(program); Minifier::new(options).build(&allocator, program); - Codegen::::new(source_text.len(), CodegenOptions).build(program) + Codegen::::new(source_text.len(), CodegenOptions::default()).build(program) } diff --git a/tasks/coverage/src/runtime/mod.rs b/tasks/coverage/src/runtime/mod.rs index c2f603f05..2f36e5d37 100644 --- a/tasks/coverage/src/runtime/mod.rs +++ b/tasks/coverage/src/runtime/mod.rs @@ -138,8 +138,8 @@ impl Case for CodegenRuntimeTest262Case { let source_type = SourceType::default().with_module(is_module); let allocator = Allocator::default(); let program = Parser::new(&allocator, source_text, source_type).parse().program; - let mut text = - Codegen::::new(source_text.len(), CodegenOptions).build(&program); + let mut text = Codegen::::new(source_text.len(), CodegenOptions::default()) + .build(&program); if is_only_strict { text = format!("\"use strict\";\n{text}"); } diff --git a/tasks/coverage/src/suite.rs b/tasks/coverage/src/suite.rs index cd71244fa..99a9b64c1 100644 --- a/tasks/coverage/src/suite.rs +++ b/tasks/coverage/src/suite.rs @@ -34,6 +34,7 @@ pub enum TestResult { ParseError(String, /* panicked */ bool), CorrectError(String, /* panicked */ bool), RuntimeError(String), + CodegenError(/* reason */ &'static str), } pub struct CoverageReport<'a, T> { @@ -380,7 +381,12 @@ pub trait Case: Sized + Sync + Send + UnwindSafe { format!("Expect Syntax Error: {:?}\n", normalize_path(self.path())).as_bytes(), )?; } - _ => {} + TestResult::CodegenError(reason) => { + writer.write_all( + format!("{reason} failed: {:?}\n", normalize_path(self.path())).as_bytes(), + )?; + } + TestResult::Passed | TestResult::ToBeRun | TestResult::CorrectError(..) => {} } Ok(()) } diff --git a/tasks/minsize/src/lib.rs b/tasks/minsize/src/lib.rs index 0e9db56d3..ff5df23ca 100644 --- a/tasks/minsize/src/lib.rs +++ b/tasks/minsize/src/lib.rs @@ -73,7 +73,7 @@ fn minify(source_text: &str, source_type: SourceType, options: MinifierOptions) let program = Parser::new(&allocator, source_text, source_type).parse().program; let program = allocator.alloc(program); Minifier::new(options).build(&allocator, program); - Codegen::::new(source_text.len(), CodegenOptions).build(program) + Codegen::::new(source_text.len(), CodegenOptions::default()).build(program) } fn gzip_size(s: &str) -> usize { diff --git a/tasks/transform_conformance/src/test_case.rs b/tasks/transform_conformance/src/test_case.rs index 4e60ec707..c67c5cb0c 100644 --- a/tasks/transform_conformance/src/test_case.rs +++ b/tasks/transform_conformance/src/test_case.rs @@ -173,7 +173,8 @@ pub trait TestCase { .build(transformed_program); result.map(|()| { - Codegen::::new(source_text.len(), CodegenOptions).build(transformed_program) + Codegen::::new(source_text.len(), CodegenOptions::default()) + .build(transformed_program) }) } } @@ -241,7 +242,8 @@ impl TestCase for ConformanceTestCase { let mut actual_errors = String::new(); let result = transformer.build(program); if result.is_ok() { - transformed_code = Codegen::::new(input.len(), CodegenOptions).build(program); + transformed_code = + Codegen::::new(input.len(), CodegenOptions::default()).build(program); } else { actual_errors = result.err().unwrap().iter().map(std::string::ToString::to_string).collect(); @@ -257,12 +259,12 @@ impl TestCase for ConformanceTestCase { } // The transformation should be equal to input.js If output.js does not exist. let program = Parser::new(&allocator, &input, source_type).parse().program; - Codegen::::new(input.len(), CodegenOptions).build(&program) + Codegen::::new(input.len(), CodegenOptions::default()).build(&program) }, |output| { // Get expected code by parsing the source text, so we can get the same code generated result. let program = Parser::new(&allocator, &output, source_type).parse().program; - Codegen::::new(output.len(), CodegenOptions).build(&program) + Codegen::::new(output.len(), CodegenOptions::default()).build(&program) }, ); @@ -322,8 +324,8 @@ impl ExecTestCase { let source_type = SourceType::from_path(&target_path).unwrap(); let transformed_program = Parser::new(&allocator, &source_text, source_type).parse().program; - let result = - Codegen::::new(source_text.len(), CodegenOptions).build(&transformed_program); + let result = Codegen::::new(source_text.len(), CodegenOptions::default()) + .build(&transformed_program); fs::write(&target_path, result).unwrap(); diff --git a/tasks/transform_conformance/src/ts_fixtures.rs b/tasks/transform_conformance/src/ts_fixtures.rs index e49455ef3..f2a8eb8aa 100644 --- a/tasks/transform_conformance/src/ts_fixtures.rs +++ b/tasks/transform_conformance/src/ts_fixtures.rs @@ -126,7 +126,8 @@ impl TypeScriptFixtures { result .map(|()| { - Codegen::::new(source_text.len(), CodegenOptions).build(transformed_program) + Codegen::::new(source_text.len(), CodegenOptions::default()) + .build(transformed_program) }) .map_err(|e| e.iter().map(ToString::to_string).collect()) }