style: 自动格式化

This commit is contained in:
2026-10-16 13:50:03 +00:00
parent 88cf730bfa
commit 84900dc4a1
+42 -56
View File
@@ -116,7 +116,11 @@ fn tokenize(src: &str) -> Option<Vec<Tok>> {
if c == b'"' || c == b'\'' {
let s = i;
i = scan_string(b, i)?;
toks.push(Tok { kind: Kind::Str, start: s, end: i });
toks.push(Tok {
kind: Kind::Str,
start: s,
end: i,
});
continue;
}
@@ -124,7 +128,11 @@ fn tokenize(src: &str) -> Option<Vec<Tok>> {
if c == b'`' {
let s = i;
i = scan_template(b, i)?;
toks.push(Tok { kind: Kind::Template, start: s, end: i });
toks.push(Tok {
kind: Kind::Template,
start: s,
end: i,
});
continue;
}
@@ -132,7 +140,11 @@ fn tokenize(src: &str) -> Option<Vec<Tok>> {
if c == b'/' && can_start_regex(&toks, src) {
let s = i;
i = scan_regex(b, i)?;
toks.push(Tok { kind: Kind::Punct, start: s, end: i });
toks.push(Tok {
kind: Kind::Punct,
start: s,
end: i,
});
continue;
}
@@ -140,7 +152,11 @@ fn tokenize(src: &str) -> Option<Vec<Tok>> {
if c.is_ascii_digit() || (c == b'.' && i + 1 < n && b[i + 1].is_ascii_digit()) {
let s = i;
i = scan_number(b, i);
toks.push(Tok { kind: Kind::Num, start: s, end: i });
toks.push(Tok {
kind: Kind::Num,
start: s,
end: i,
});
continue;
}
@@ -150,7 +166,11 @@ fn tokenize(src: &str) -> Option<Vec<Tok>> {
while i < n && (b[i].is_ascii_alphanumeric() || b[i] == b'_' || b[i] == b'$') {
i += 1;
}
toks.push(Tok { kind: Kind::Ident, start: s, end: i });
toks.push(Tok {
kind: Kind::Ident,
start: s,
end: i,
});
continue;
}
@@ -161,7 +181,11 @@ fn tokenize(src: &str) -> Option<Vec<Tok>> {
}
let s = i;
i += len;
toks.push(Tok { kind: Kind::Punct, start: s, end: i });
toks.push(Tok {
kind: Kind::Punct,
start: s,
end: i,
});
}
Some(toks)
@@ -572,10 +596,7 @@ fn function_body_open(toks: &[Tok], src: &str, i: usize) -> Option<usize> {
if j < toks.len() && toks[j].kind == Kind::Ident {
j += 1;
}
if j < toks.len()
&& toks[j].kind == Kind::Punct
&& tok_val(src, &toks[j]) == "*"
{
if j < toks.len() && toks[j].kind == Kind::Punct && tok_val(src, &toks[j]) == "*" {
j += 1;
}
if j >= toks.len() || toks[j].kind != Kind::Punct || tok_val(src, &toks[j]) != "(" {
@@ -608,10 +629,7 @@ fn is_for_stmt_start(toks: &[Tok], src: &str, i: usize) -> bool {
if is_stmt_start(toks, src, i) {
return true;
}
i >= 2
&& toks[i - 1].kind == Kind::Punct
&& tok_val(src, &toks[i - 1]) == ":"
&& toks[i - 2].kind == Kind::Ident
i >= 2 && toks[i - 1].kind == Kind::Punct && tok_val(src, &toks[i - 1]) == ":" && toks[i - 2].kind == Kind::Ident
}
fn in_strict_region(pos: usize, regions: &[(usize, usize)]) -> bool {
@@ -619,11 +637,7 @@ fn in_strict_region(pos: usize, regions: &[(usize, usize)]) -> bool {
}
/// 扫描全部语句起始位,收集改写区间 (起始字节, 结束字节, 替换文本)。
fn scan_rewrites(
toks: &[Tok],
src: &str,
strict_regions: &[(usize, usize)],
) -> Vec<(usize, usize, String)> {
fn scan_rewrites(toks: &[Tok], src: &str, strict_regions: &[(usize, usize)]) -> Vec<(usize, usize, String)> {
let mut rewrites = Vec::new();
let mut i = 0usize;
@@ -672,11 +686,7 @@ fn scan_rewrites(
/// 判定 `i` 处的 `IDENT ( ARGS )` 后接赋值/更新运算符并收集整句改写。
/// 逻辑赋值 `&&=` `||=` `??=` 与比较/箭头等 `=` 形运算符不改写。
fn try_call_assign(
toks: &[Tok],
src: &str,
i: usize,
) -> Option<(usize, usize, usize, String)> {
fn try_call_assign(toks: &[Tok], src: &str, i: usize) -> Option<(usize, usize, usize, String)> {
let name = &toks[i];
let p = toks.get(i + 1)?;
if p.kind != Kind::Punct || tok_val(src, p) != "(" {
@@ -691,19 +701,14 @@ fn try_call_assign(
let opv = tok_val(src, op);
let is_target = matches!(
opv,
"=" | "+=" | "-=" | "*=" | "/=" | "%=" | "**=" | "<<=" | ">>=" | ">>>=" | "&=" | "^="
| "|=" | "++" | "--"
"=" | "+=" | "-=" | "*=" | "/=" | "%=" | "**=" | "<<=" | ">>=" | ">>>=" | "&=" | "^=" | "|=" | "++" | "--"
);
if !is_target {
return None;
}
let (end_tok, include) = find_stmt_end(toks, src, close + 1)?;
let end = if include {
toks[end_tok].end
} else {
toks[end_tok].start
};
let end = if include { toks[end_tok].end } else { toks[end_tok].start };
let call = &src[name.start..toks[close].end];
// 后接 `++`/`--` 为更新表达式,用 increment/decrement 文案;其余为赋值。
let msg = if matches!(opv, "++" | "--") {
@@ -716,11 +721,7 @@ fn try_call_assign(
}
/// 判定 `i` 处的 `++`/`--` 后接 `IDENT ( ARGS )`(前缀更新)并收集整句改写。
fn try_prefix_update(
toks: &[Tok],
src: &str,
i: usize,
) -> Option<(usize, usize, usize, String)> {
fn try_prefix_update(toks: &[Tok], src: &str, i: usize) -> Option<(usize, usize, usize, String)> {
let name = toks.get(i + 1)?;
if name.kind != Kind::Ident {
return None;
@@ -732,25 +733,16 @@ fn try_prefix_update(
let close = match_paren(toks, src, i + 2)?;
let (end_tok, include) = find_stmt_end(toks, src, close + 1)?;
let end = if include {
toks[end_tok].end
} else {
toks[end_tok].start
};
let end = if include { toks[end_tok].end } else { toks[end_tok].start };
let call = &src[name.start..toks[close].end];
let repl = format!(
"{call}; throw new ReferenceError(\"Invalid left-hand side in increment/decrement\");"
);
let repl = format!("{call}; throw new ReferenceError(\"Invalid left-hand side in increment/decrement\");");
Some((toks[i].start, end, end_tok + 1, repl))
}
/// 判定 `i` 处的 `for (IDENT ( ARGS ) in/of …)` 并收集整句改写(含标签前缀)。
fn try_for_stmt(toks: &[Tok], src: &str, i: usize) -> Option<(usize, usize, usize, String)> {
let mut j = i + 1;
if j < toks.len()
&& toks[j].kind == Kind::Ident
&& tok_val(src, &toks[j]) == "await"
{
if j < toks.len() && toks[j].kind == Kind::Ident && tok_val(src, &toks[j]) == "await" {
j += 1;
}
let for_open = toks.get(j)?;
@@ -782,16 +774,11 @@ fn try_for_stmt(toks: &[Tok], src: &str, i: usize) -> Option<(usize, usize, usiz
} else {
find_stmt_end(toks, src, for_close + 1)?
};
let end = if include {
toks[end_tok].end
} else {
toks[end_tok].start
};
let end = if include { toks[end_tok].end } else { toks[end_tok].start };
// 标签前缀:L: for(…) → L: { … }(块语句保标签合法)
let call = &src[name.start..toks[lhs_close].end];
let inner =
format!("{call}; throw new ReferenceError(\"Invalid left-hand side in for-in loop\");");
let inner = format!("{call}; throw new ReferenceError(\"Invalid left-hand side in for-in loop\");");
let (start, repl) = if i >= 2
&& toks[i - 1].kind == Kind::Punct
&& tok_val(src, &toks[i - 1]) == ":"
@@ -913,7 +900,6 @@ mod tests {
}
}
#[cfg(test)]
mod probe {
use super::*;