Round-trip parsing and output generation causes difference in parsed result
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza ejecutando el reproductor de Rust del issue y compara las dos listas de tokens para la entrada mostrada. Sigue las rutas de análisis de tokens y serialización ToCss implicadas; el fix está completo cuando analizar el string generado conserva el resultado analizado original y la regresión está cubierta por un test.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Found this while fuzzing.
extern crate cssparser;
use cssparser::ToCss;
fn main() {
let input = "\\\n3:\'\\\x0c";
println!("input:\n\t{:?}", input);
let mut parser_input = cssparser::ParserInput::new(input);
let mut parser = cssparser::Parser::new(&mut parser_input);
let tokens = parser
.next_including_whitespace_and_comments()
.into_iter()
.collect::<Vec<_>>();
println!("tokens:\n\t{:?}", tokens);
let str2 = tokens.iter().map(|t| t.to_css_string()).collect::<String>();
println!("tokens to string:\n\t{:?}", str2);
let mut parser_input = cssparser::ParserInput::new(&str2);
let mut parser = cssparser::Parser::new(&mut parser_input);
let tokens2 = parser
.next_including_whitespace_and_comments()
.into_iter()
.collect::<Vec<_>>();
println!("tokens to string to tokens:\n\t{:?}", tokens2);
}
input:
"\\\n3:\'\\\u{c}"
tokens:
[Delim('\\')]
tokens to string:
"\\"
tokens to string to tokens:
[Ident("�")]
- Lenguaje dominante
- Rust
- Estrellas
- 871
- Forks
- 152
- Merge medio
- 1 d 1 h
- PR fusionados (30 d)
- 6
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de servo/rust-cssparser
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
servo/rust-cssparser#440 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
servo/rust-cssparser#439 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
servo/rust-cssparser#434 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
servo/rust-cssparser#438 · 3 comentarios · 1 reacción ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 28/100
servo/rust-cssparser#436 · 1 comentario ·
Todos los issues de servo/rust-cssparser
Issues similares
-
contribution
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
tree-sitter/tree-sitter#6005 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
-
`fetch()` / `batch()` with a heartbeat misses messages that arrive after the first heartbeatAbiertodefect
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
agent:triaged bug bughunt pm:pipenv priority:p1
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
SocketDev/socket-patch#744 · 1 comentario ·
Los mantenedores suelen responder en 1 día