mirror of
https://github.com/swc-project/swc.git
synced 2024-11-24 10:12:42 +03:00
Fix bugs (#193)
swc_ecma_parser: - fix lexer - better error reporting for jsx reference test swc_ecma_codegen: - Update references
This commit is contained in:
parent
fedfea4e09
commit
c647cf1bc0
@ -1,16 +1,13 @@
|
||||
{
|
||||
;
|
||||
}
|
||||
a();
|
||||
}a();
|
||||
{
|
||||
}
|
||||
;
|
||||
};
|
||||
{
|
||||
{
|
||||
}
|
||||
;
|
||||
}
|
||||
;
|
||||
};
|
||||
b();
|
||||
{
|
||||
}
|
||||
|
@ -1,4 +1,3 @@
|
||||
a.in;
|
||||
{
|
||||
}
|
||||
/foo/;
|
||||
}/foo/;
|
||||
|
@ -1,4 +1,3 @@
|
||||
a++;
|
||||
{
|
||||
}
|
||||
/foo/;
|
||||
}/foo/;
|
||||
|
@ -2,7 +2,6 @@
|
||||
{
|
||||
a;
|
||||
}
|
||||
}
|
||||
{
|
||||
}{
|
||||
b;
|
||||
}
|
||||
|
@ -1,3 +1,2 @@
|
||||
{
|
||||
}
|
||||
/foo/;
|
||||
}/foo/;
|
||||
|
@ -3,7 +3,6 @@ function a() {
|
||||
}
|
||||
a();
|
||||
{
|
||||
}
|
||||
function a() {
|
||||
}function a() {
|
||||
b.c('e');
|
||||
}
|
||||
|
@ -1,3 +1,2 @@
|
||||
{
|
||||
}
|
||||
/=/;
|
||||
}/=/;
|
||||
|
@ -1,4 +1,3 @@
|
||||
{
|
||||
[1];
|
||||
}
|
||||
/foo/;
|
||||
}/foo/;
|
||||
|
@ -99,7 +99,7 @@ impl<'a, I: Input> Lexer<'a, I> {
|
||||
impl<'a, I: Input> Iterator for Lexer<'a, I> {
|
||||
type Item = TokenAndSpan;
|
||||
fn next(&mut self) -> Option<Self::Item> {
|
||||
let start = self.cur_pos();
|
||||
let mut start = self.cur_pos();
|
||||
|
||||
let res = (|| -> Result<Option<_>, _> {
|
||||
if self.state.is_first {
|
||||
@ -119,6 +119,7 @@ impl<'a, I: Input> Iterator for Lexer<'a, I> {
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
start = self.input.cur_pos();
|
||||
};
|
||||
|
||||
let c = match self.input.cur() {
|
||||
@ -311,7 +312,7 @@ impl State {
|
||||
|
||||
// ${} in template
|
||||
if out == TokenContext::TplQuasi {
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
// expression cannot follow expression
|
||||
|
@ -904,6 +904,36 @@ fn empty() {
|
||||
assert_eq!(lex_tokens(::Syntax::default(), "",), vec![]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn issue_191() {
|
||||
assert_eq!(
|
||||
lex_tokens(
|
||||
::Syntax::Es(::EsConfig {
|
||||
jsx: true,
|
||||
..Default::default()
|
||||
}),
|
||||
"`${foo}<bar>`"
|
||||
),
|
||||
vec![
|
||||
tok!('`'),
|
||||
Token::Template {
|
||||
raw: "".into(),
|
||||
cooked: "".into(),
|
||||
has_escape: false,
|
||||
},
|
||||
tok!("${"),
|
||||
Token::Word(Word::Ident("foo".into())),
|
||||
tok!('}'),
|
||||
Token::Template {
|
||||
raw: "<bar>".into(),
|
||||
cooked: "<bar>".into(),
|
||||
has_escape: false,
|
||||
},
|
||||
tok!('`')
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn lex_colors_js(b: &mut Bencher) {
|
||||
b.bytes = include_str!("../../colors.js").len() as _;
|
||||
|
@ -153,7 +153,7 @@ fn reference_tests(tests: &mut Vec<TestDescAndFn>) -> Result<(), io::Error> {
|
||||
|
||||
let path = dir.join(&file_name);
|
||||
// Parse source
|
||||
let module = parse_module(cm, handler, &path).expect("should be parsed");
|
||||
let module = parse_module(cm, handler, &path)?;
|
||||
|
||||
if StdErr::from(format!("{:#?}", module))
|
||||
.compare_to_file(format!("{}.stdout", path.display()))
|
||||
|
@ -58,5 +58,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -104,5 +104,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -102,5 +102,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -147,5 +147,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -255,5 +255,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -122,5 +122,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -158,5 +158,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -101,5 +101,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -88,5 +88,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -136,5 +136,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -212,5 +212,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -121,5 +121,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -438,5 +438,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -194,5 +194,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -323,5 +323,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -251,5 +251,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -58,5 +58,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -86,5 +86,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -163,5 +163,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -209,5 +209,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -159,5 +159,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -0,0 +1 @@
|
||||
`${foo} <bar>`
|
@ -0,0 +1,131 @@
|
||||
Module {
|
||||
span: Span {
|
||||
lo: BytePos(
|
||||
0
|
||||
),
|
||||
hi: BytePos(
|
||||
14
|
||||
),
|
||||
ctxt: #0
|
||||
},
|
||||
body: [
|
||||
Stmt(
|
||||
Expr(
|
||||
Tpl(
|
||||
Tpl {
|
||||
span: Span {
|
||||
lo: BytePos(
|
||||
0
|
||||
),
|
||||
hi: BytePos(
|
||||
14
|
||||
),
|
||||
ctxt: #0
|
||||
},
|
||||
exprs: [
|
||||
Ident(
|
||||
Ident {
|
||||
sym: foo,
|
||||
span: Span {
|
||||
lo: BytePos(
|
||||
3
|
||||
),
|
||||
hi: BytePos(
|
||||
6
|
||||
),
|
||||
ctxt: #0
|
||||
},
|
||||
type_ann: None,
|
||||
optional: false
|
||||
}
|
||||
)
|
||||
],
|
||||
quasis: [
|
||||
TplElement {
|
||||
span: Span {
|
||||
lo: BytePos(
|
||||
1
|
||||
),
|
||||
hi: BytePos(
|
||||
1
|
||||
),
|
||||
ctxt: #0
|
||||
},
|
||||
tail: false,
|
||||
cooked: Some(
|
||||
Str {
|
||||
span: Span {
|
||||
lo: BytePos(
|
||||
1
|
||||
),
|
||||
hi: BytePos(
|
||||
1
|
||||
),
|
||||
ctxt: #0
|
||||
},
|
||||
value: Atom('' type=static),
|
||||
has_escape: false
|
||||
}
|
||||
),
|
||||
raw: Str {
|
||||
span: Span {
|
||||
lo: BytePos(
|
||||
1
|
||||
),
|
||||
hi: BytePos(
|
||||
1
|
||||
),
|
||||
ctxt: #0
|
||||
},
|
||||
value: Atom('' type=static),
|
||||
has_escape: false
|
||||
}
|
||||
},
|
||||
TplElement {
|
||||
span: Span {
|
||||
lo: BytePos(
|
||||
7
|
||||
),
|
||||
hi: BytePos(
|
||||
13
|
||||
),
|
||||
ctxt: #0
|
||||
},
|
||||
tail: true,
|
||||
cooked: Some(
|
||||
Str {
|
||||
span: Span {
|
||||
lo: BytePos(
|
||||
7
|
||||
),
|
||||
hi: BytePos(
|
||||
13
|
||||
),
|
||||
ctxt: #0
|
||||
},
|
||||
value: Atom(' <bar>' type=inline),
|
||||
has_escape: false
|
||||
}
|
||||
),
|
||||
raw: Str {
|
||||
span: Span {
|
||||
lo: BytePos(
|
||||
7
|
||||
),
|
||||
hi: BytePos(
|
||||
13
|
||||
),
|
||||
ctxt: #0
|
||||
},
|
||||
value: Atom(' <bar>' type=inline),
|
||||
has_escape: false
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
)
|
||||
)
|
||||
)
|
||||
],
|
||||
shebang: None
|
||||
}
|
1
ecmascript/parser/tests/jsx/basic/custom/tpl/input.js
Normal file
1
ecmascript/parser/tests/jsx/basic/custom/tpl/input.js
Normal file
@ -0,0 +1 @@
|
||||
`${foo}<bar>`
|
@ -693,5 +693,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -667,5 +667,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -104,5 +104,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -102,5 +102,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -49,5 +49,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -65,5 +65,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -293,5 +293,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -223,5 +223,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -253,5 +253,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -177,5 +177,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -86,5 +86,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -183,5 +183,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -102,5 +102,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -102,5 +102,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -155,5 +155,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -118,5 +118,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -102,5 +102,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -170,5 +170,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -191,5 +191,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -141,5 +141,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -141,5 +141,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -118,5 +118,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -122,5 +122,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -111,5 +111,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -191,5 +191,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -191,5 +191,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -118,5 +118,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -158,5 +158,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -316,5 +316,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -90,5 +90,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -128,5 +128,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -117,5 +117,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -290,5 +290,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -72,5 +72,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -106,5 +106,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -74,5 +74,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -74,5 +74,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -63,5 +63,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -74,5 +74,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -42,5 +42,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -86,5 +86,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -101,5 +101,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -86,5 +86,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -56,5 +56,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -29,5 +29,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -201,5 +201,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -269,5 +269,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -430,5 +430,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -370,5 +370,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -442,5 +442,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -260,5 +260,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -186,5 +186,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -286,5 +286,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -219,5 +219,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -128,5 +128,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -184,5 +184,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -170,5 +170,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -141,5 +141,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -221,5 +221,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -384,5 +384,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -131,5 +131,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -275,5 +275,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -583,5 +583,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -181,5 +181,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
@ -142,5 +142,6 @@ Module {
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
shebang: None
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user