aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/construct/code_fenced.rs6
-rw-r--r--src/construct/html_flow.rs1
-rw-r--r--src/subtokenize.rs3
-rw-r--r--src/tokenizer.rs4
4 files changed, 5 insertions, 9 deletions
diff --git a/src/construct/code_fenced.rs b/src/construct/code_fenced.rs
index 3b220b9..5b1426c 100644
--- a/src/construct/code_fenced.rs
+++ b/src/construct/code_fenced.rs
@@ -224,13 +224,12 @@ fn before_sequence_open(tokenizer: &mut Tokenizer, code: Code) -> StateFnResult
/// console.log(1);
/// ~~~
/// ```
-fn sequence_open(tokenizer: &mut Tokenizer, code: Code, info: Info) -> StateFnResult {
+fn sequence_open(tokenizer: &mut Tokenizer, code: Code, mut info: Info) -> StateFnResult {
match code {
Code::Char(char) if char == info.kind.as_char() => {
tokenizer.consume(code);
(
State::Fn(Box::new(|t, c| {
- let mut info = info;
info.size += 1;
sequence_open(t, c, info)
})),
@@ -277,7 +276,7 @@ fn info_inside(
tokenizer: &mut Tokenizer,
code: Code,
info: Info,
- codes: Vec<Code>,
+ mut codes: Vec<Code>,
) -> StateFnResult {
match code {
Code::None | Code::CarriageReturnLineFeed | Code::Char('\n' | '\r') => {
@@ -293,7 +292,6 @@ fn info_inside(
}
Code::Char(char) if char == '`' && info.kind == Kind::GraveAccent => (State::Nok, None),
Code::Char(_) => {
- let mut codes = codes;
codes.push(code);
tokenizer.consume(code);
(
diff --git a/src/construct/html_flow.rs b/src/construct/html_flow.rs
index bb7457d..d0e0558 100644
--- a/src/construct/html_flow.rs
+++ b/src/construct/html_flow.rs
@@ -219,6 +219,7 @@ fn open(tokenizer: &mut Tokenizer, code: Code) -> StateFnResult {
let mut info = Info {
// Assume basic.
kind: Kind::Basic,
+ // Assume closing tag (or no tag).
start_tag: false,
buffer: vec![],
index: 0,
diff --git a/src/subtokenize.rs b/src/subtokenize.rs
index 1702387..4ee2242 100644
--- a/src/subtokenize.rs
+++ b/src/subtokenize.rs
@@ -57,8 +57,7 @@ pub fn link(events: &mut [Event], index: usize) {
/// Parse linked events.
///
/// Supposed to be called repeatedly, returns `1: true` when done.
-pub fn subtokenize(events: Vec<Event>, codes: &[Code]) -> (Vec<Event>, bool) {
- let mut events = events;
+pub fn subtokenize(mut events: Vec<Event>, codes: &[Code]) -> (Vec<Event>, bool) {
let mut index = 0;
// Map of first chunks to their tokenizer.
let mut head_to_tokenizer: HashMap<usize, Tokenizer> = HashMap::new();
diff --git a/src/tokenizer.rs b/src/tokenizer.rs
index f76a0f8..7b71308 100644
--- a/src/tokenizer.rs
+++ b/src/tokenizer.rs
@@ -1651,12 +1651,10 @@ impl Tokenizer {
/// Used in [`Tokenizer::attempt`][Tokenizer::attempt] and [`Tokenizer::check`][Tokenizer::check].
fn attempt_impl(
state: impl FnOnce(&mut Tokenizer, Code) -> StateFnResult + 'static,
- codes: Vec<Code>,
+ mut codes: Vec<Code>,
done: impl FnOnce((Vec<Code>, Vec<Code>), bool, &mut Tokenizer) -> StateFnResult + 'static,
) -> Box<StateFn> {
Box::new(|tokenizer, code| {
- let mut codes = codes;
-
let (next, remainder) = check_statefn_result(state(tokenizer, code));
match code {