mirror of
https://github.com/danbulant/oxc
synced 2026-05-24 20:32:10 +00:00
fix(parser)!: drop TSImportEqualsDeclaration.is_export (#2654)
This is one point where Babel and TSESLint diverge. For linter purposes TSESLint structure makes more sense and that the reason of https://github.com/typescript-eslint/typescript-eslint/issues/4130 The remaining `is_export` was creating redundant information and made prettier (and the WIP oxc/prettier) print the AST of `export import X = Y` as `export export import X = Y`.
This commit is contained in:
parent
cc5be633f2
commit
776812315d
5 changed files with 2 additions and 11 deletions
|
|
@ -908,7 +908,6 @@ pub struct TSImportEqualsDeclaration<'a> {
|
||||||
pub span: Span,
|
pub span: Span,
|
||||||
pub id: BindingIdentifier<'a>,
|
pub id: BindingIdentifier<'a>,
|
||||||
pub module_reference: Box<'a, TSModuleReference<'a>>,
|
pub module_reference: Box<'a, TSModuleReference<'a>>,
|
||||||
pub is_export: bool,
|
|
||||||
pub import_kind: ImportOrExportKind,
|
pub import_kind: ImportOrExportKind,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1548,14 +1548,12 @@ impl<'a> AstBuilder<'a> {
|
||||||
span: Span,
|
span: Span,
|
||||||
id: BindingIdentifier<'a>,
|
id: BindingIdentifier<'a>,
|
||||||
module_reference: TSModuleReference<'a>,
|
module_reference: TSModuleReference<'a>,
|
||||||
is_export: bool,
|
|
||||||
import_kind: ImportOrExportKind,
|
import_kind: ImportOrExportKind,
|
||||||
) -> Declaration<'a> {
|
) -> Declaration<'a> {
|
||||||
Declaration::TSImportEqualsDeclaration(self.alloc(TSImportEqualsDeclaration {
|
Declaration::TSImportEqualsDeclaration(self.alloc(TSImportEqualsDeclaration {
|
||||||
span,
|
span,
|
||||||
id,
|
id,
|
||||||
module_reference: self.alloc(module_reference),
|
module_reference: self.alloc(module_reference),
|
||||||
is_export,
|
|
||||||
import_kind,
|
import_kind,
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ impl<'a> ParserImpl<'a> {
|
||||||
&& self.peek_kind().is_binding_identifier()
|
&& self.peek_kind().is_binding_identifier()
|
||||||
&& self.nth_at(2, Kind::Eq)))
|
&& self.nth_at(2, Kind::Eq)))
|
||||||
{
|
{
|
||||||
let decl = self.parse_ts_import_equals_declaration(span, false)?;
|
let decl = self.parse_ts_import_equals_declaration(span)?;
|
||||||
return Ok(Statement::Declaration(decl));
|
return Ok(Statement::Declaration(decl));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -301,7 +301,7 @@ impl<'a> ParserImpl<'a> {
|
||||||
.map(Declaration::ClassDeclaration),
|
.map(Declaration::ClassDeclaration),
|
||||||
Kind::Import => {
|
Kind::Import => {
|
||||||
self.bump_any();
|
self.bump_any();
|
||||||
self.parse_ts_import_equals_declaration(start_span, true)
|
self.parse_ts_import_equals_declaration(start_span)
|
||||||
}
|
}
|
||||||
kind if kind.is_variable_declaration() => self
|
kind if kind.is_variable_declaration() => self
|
||||||
.parse_variable_declaration(
|
.parse_variable_declaration(
|
||||||
|
|
@ -357,7 +357,6 @@ impl<'a> ParserImpl<'a> {
|
||||||
pub(crate) fn parse_ts_import_equals_declaration(
|
pub(crate) fn parse_ts_import_equals_declaration(
|
||||||
&mut self,
|
&mut self,
|
||||||
span: Span,
|
span: Span,
|
||||||
is_export: bool,
|
|
||||||
) -> Result<Declaration<'a>> {
|
) -> Result<Declaration<'a>> {
|
||||||
let import_kind = if !self.peek_at(Kind::Eq) && self.eat(Kind::Type) {
|
let import_kind = if !self.peek_at(Kind::Eq) && self.eat(Kind::Type) {
|
||||||
ImportOrExportKind::Type
|
ImportOrExportKind::Type
|
||||||
|
|
@ -388,7 +387,6 @@ impl<'a> ParserImpl<'a> {
|
||||||
self.end_span(span),
|
self.end_span(span),
|
||||||
id,
|
id,
|
||||||
module_reference,
|
module_reference,
|
||||||
is_export,
|
|
||||||
import_kind,
|
import_kind,
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -934,10 +934,6 @@ impl<'a> Format<'a> for TSImportEqualsDeclaration<'a> {
|
||||||
fn format(&self, p: &mut Prettier<'a>) -> Doc<'a> {
|
fn format(&self, p: &mut Prettier<'a>) -> Doc<'a> {
|
||||||
let mut parts = p.vec();
|
let mut parts = p.vec();
|
||||||
|
|
||||||
if self.is_export {
|
|
||||||
parts.push(ss!("export "));
|
|
||||||
}
|
|
||||||
|
|
||||||
parts.push(ss!("import "));
|
parts.push(ss!("import "));
|
||||||
|
|
||||||
if self.import_kind == ImportOrExportKind::Type {
|
if self.import_kind == ImportOrExportKind::Type {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue