diff --git a/crates/oxc_isolated_declarations/src/inferrer.rs b/crates/oxc_isolated_declarations/src/inferrer.rs index faa382708..21856c09b 100644 --- a/crates/oxc_isolated_declarations/src/inferrer.rs +++ b/crates/oxc_isolated_declarations/src/inferrer.rs @@ -3,12 +3,10 @@ use oxc_ast::ast::{ ArrowFunctionExpression, BindingPatternKind, Expression, FormalParameter, Function, Statement, TSType, TSTypeAnnotation, UnaryExpression, }; -use oxc_span::{GetSpan, SPAN}; +use oxc_span::SPAN; use crate::{ - diagnostics::{ - array_inferred, inferred_type_of_class_expression, parameter_must_have_explicit_type, - }, + diagnostics::{array_inferred, inferred_type_of_class_expression}, return_type::FunctionReturnType, IsolatedDeclarations, }; @@ -101,12 +99,6 @@ impl<'a> IsolatedDeclarations<'a> { // SAFETY: `ast.copy` is unsound! We need to fix. Some(unsafe { self.ast.copy(&annotation.type_annotation) }) } else { - if let Expression::TSAsExpression(expr) = &pattern.right { - if !expr.type_annotation.is_keyword_or_literal() { - self.error(parameter_must_have_explicit_type(expr.type_annotation.span())); - } - } - self.infer_type_from_expression(&pattern.right) } } else { diff --git a/crates/oxc_isolated_declarations/tests/fixtures/function-parameters.ts b/crates/oxc_isolated_declarations/tests/fixtures/function-parameters.ts index 4e9efc68b..4d348e1cc 100644 --- a/crates/oxc_isolated_declarations/tests/fixtures/function-parameters.ts +++ b/crates/oxc_isolated_declarations/tests/fixtures/function-parameters.ts @@ -30,3 +30,5 @@ export const fooBad2 = ({a, b} = { a: 1, b: 2 }): number => { export function withAny(a: any = 1, b: string): void { } export function withUnknown(a: unknown = 1, b: string): void { } + +export function withTypeAssertion(a = /regular-repression-cannot-infer/ as any): void { } \ No newline at end of file diff --git a/crates/oxc_isolated_declarations/tests/snapshots/function-parameters.snap b/crates/oxc_isolated_declarations/tests/snapshots/function-parameters.snap index 4a017d85c..e5769c27b 100644 --- a/crates/oxc_isolated_declarations/tests/snapshots/function-parameters.snap +++ b/crates/oxc_isolated_declarations/tests/snapshots/function-parameters.snap @@ -17,6 +17,7 @@ export declare function fooBad(): number; export declare const fooBad2: () => number; export declare function withAny(a: any, b: string): void; export declare function withUnknown(a: unknown, b: string): void; +export declare function withTypeAssertion(a?: any): void; ==================== Errors ====================