warning: unused imports: `LineNumber`, `Numbering`
--> src/parsers/mod.rs:21:46
|
21 | use chomp::types::numbering::{InputPosition, LineNumber, Numbering};
| ^^^^^^^^^^ ^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
warning: unused import: `chomp::parsers::SimpleResult`
--> src/parsers/mod.rs:25:5
|
25 | use chomp::parsers::SimpleResult;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: unnecessary parentheses around block return value
--> src/june_2016/section_11.rs:732:9
|
732 | (b'0' <= c && c <= b'9')
| ^ ^
|
= note: `#[warn(unused_parens)]` on by default
help: remove these parentheses
|
732 - (b'0' <= c && c <= b'9')
732 + b'0' <= c && c <= b'9'
|
warning: unnecessary parentheses around block return value
--> src/june_2016/section_11.rs:751:9
|
751 | (b'1' <= c && c <= b'9')
| ^ ^
|
help: remove these parentheses
|
751 - (b'1' <= c && c <= b'9')
751 + b'1' <= c && c <= b'9'
|
warning: variant `e` should have an upper camel case name
--> src/june_2016/section_11.rs:778:5
|
778 | e,
| ^ help: convert the identifier to upper camel case: `E`
|
= note: `#[warn(non_camel_case_types)]` on by default
warning: unnecessary parentheses around block return value
--> src/june_2016/section_11.rs:873:9
|
873 | (b'0' <= c && c <= b'1')
| ^ ^
|
help: remove these parentheses
|
873 - (b'0' <= c && c <= b'1')
873 + b'0' <= c && c <= b'1'
|
warning: unnecessary parentheses around block return value
--> src/june_2016/section_11.rs:925:9
|
925 | (b'0' <= c && c <= b'7')
| ^ ^
|
help: remove these parentheses
|
925 - (b'0' <= c && c <= b'7')
925 + b'0' <= c && c <= b'7'
|
warning: unused imports: `many1`, `parse_utf8_char`, `string_till`
--> src/june_2016/section_12.rs:13:47
|
13 | use parsers::{ESParseResult, ESInput, string, parse_utf8_char, on_error, many, many1, string_till,
| ^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^
warning: unnecessary trailing semicolon
--> src/june_2016/section_12.rs:2461:6
|
2461 | };
| ^ help: remove this semicolon
|
= note: `#[warn(redundant_semicolons)]` on by default
warning: unused imports: `Initializer`, `initializer`
--> src/june_2016/section_14.rs:16:25
|
16 | use super::section_12::{initializer, Initializer, binding_identifier, BindingIdentifier,
| ^^^^^^^^^^^ ^^^^^^^^^^^
warning: `#[inline]` is ignored on function prototypes
--> src/parsers/mod.rs:499:5
|
499 | #[inline]
| ^^^^^^^^^
|
= note: `#[warn(unused_attributes)]` on by default
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_12.rs:1064:5
|
1064 | #[inline]
| ^^^^^^^^^
1065 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
1066 | |
1067 | | parse!{i;
1068 | |
... |
1080 | | }
1081 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_12.rs:1194:5
|
1194 | #[inline]
| ^^^^^^^^^
1195 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
1196 | |
1197 | | let is_initial = {
1198 | | accumulator.borrow().is_initial()
... |
1273 | | }
1274 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_12.rs:1520:5
|
1520 | #[inline]
| ^^^^^^^^^
1521 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
1522 | |
1523 | | let is_initial = {
1524 | | accumulator.borrow().is_initial()
... |
1591 | |
1592 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_12.rs:1761:5
|
1761 | #[inline]
| ^^^^^^^^^
1762 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
1763 | |
1764 | | option(i,
1765 | | |i| {
... |
1781 | | })
1782 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_12.rs:2108:5
|
2108 | #[inline]
| ^^^^^^^^^
2109 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
2110 | | parse!{i;
2111 | | let rhs = exponentiation_expression(¶ms);
2112 | | ret {
... |
2116 | | }
2117 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_12.rs:2242:5
|
2242 | #[inline]
| ^^^^^^^^^
2243 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
2244 | | parse!{i;
2245 | | let rhs = multiplicative_expression(¶ms);
2246 | | ret {
... |
2250 | | }
2251 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_12.rs:2354:5
|
2354 | #[inline]
| ^^^^^^^^^
2355 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
2356 | | parse!{i;
2357 | | let rhs = additive_expression(¶ms);
2358 | | ret {
... |
2362 | | }
2363 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_12.rs:2491:5
|
2491 | #[inline]
| ^^^^^^^^^
2492 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
2493 | | parse!{i;
2494 | | let rhs = shift_expression(&shift_params);
2495 | | ret {
... |
2499 | | }
2500 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_12.rs:2610:5
|
2610 | #[inline]
| ^^^^^^^^^
2611 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
2612 | | parse!{i;
2613 | | let rhs = relational_expression(params);
2614 | | ret {
... |
2618 | | }
2619 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_12.rs:2707:5
|
2707 | #[inline]
| ^^^^^^^^^
2708 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
2709 | | parse!{i;
2710 | | let rhs = equality_expression(params);
2711 | | ret {
... |
2715 | | }
2716 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_12.rs:2802:5
|
2802 | #[inline]
| ^^^^^^^^^
2803 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
2804 | | parse!{i;
2805 | | let rhs = bitwise_and_expression(params);
2806 | | ret {
... |
2810 | | }
2811 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_12.rs:2897:5
|
2897 | #[inline]
| ^^^^^^^^^
2898 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
2899 | | parse!{i;
2900 | | let rhs = bitwise_xor_expression(params);
2901 | | ret {
... |
2905 | | }
2906 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_12.rs:2993:5
|
2993 | #[inline]
| ^^^^^^^^^
2994 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
2995 | | parse!{i;
2996 | | let rhs = bitwise_or_expression(params);
2997 | | ret {
... |
3001 | | }
3002 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_12.rs:3090:5
|
3090 | #[inline]
| ^^^^^^^^^
3091 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
3092 | | parse!{i;
3093 | | let rhs = logical_and_expression(params);
3094 | | ret {
... |
3098 | | }
3099 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_13.rs:264:5
|
264 | #[inline]
| ^^^^^^^^^
265 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
266 | | statement_list_item(i, ¶ms).bind(|i, rhs| {
267 | | accumulator.borrow_mut().add_item(rhs);
268 | | i.ret(())
269 | | })
270 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_13.rs:429:5
|
429 | #[inline]
| ^^^^^^^^^
430 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
431 | | lexical_binding(i, ¶ms).bind(|i, rhs| {
432 | | accumulator.borrow_mut().add_item(rhs);
433 | | i.ret(())
434 | | })
435 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_13.rs:634:5
|
634 | #[inline]
| ^^^^^^^^^
635 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
636 | | variable_declaration(i, ¶ms).bind(|i, rhs| {
637 | | accumulator.borrow_mut().add_item(rhs);
638 | | i.ret(())
639 | | })
640 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_13.rs:991:5
|
991 | #[inline]
| ^^^^^^^^^
992 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
993 | | binding_property(i, ¶ms).bind(|i, rhs| {
994 | | accumulator.borrow_mut().add_item(rhs);
995 | | i.ret(())
996 | | })
997 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_13.rs:1085:5
|
1085 | #[inline]
| ^^^^^^^^^
1086 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
1087 | | binding_elision_element(i, ¶ms).bind(|i, rhs| {
1088 | | accumulator.borrow_mut().add_item(rhs);
1089 | | i.ret(())
1090 | | })
1091 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_13.rs:2722:5
|
2722 | #[inline]
| ^^^^^^^^^
2723 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
2724 | | case_clause(i, ¶ms).bind(|i, rhs| {
2725 | | accumulator.borrow_mut().add_item(rhs);
2726 | | i.ret(())
2727 | | })
2728 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_14.rs:498:5
|
498 | #[inline]
| ^^^^^^^^^
499 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
500 | | formal_parameter(i, ¶ms).bind(|i, rhs| {
501 | | accumulator.borrow_mut().add_item(rhs);
502 | | i.ret(())
503 | | })
504 | | };
| |______- not a function or closure
error[E0518]: attribute should be applied to function or closure
--> src/june_2016/section_14.rs:1320:5
|
1320 | #[inline]
| ^^^^^^^^^
1321 | / let reducer = |i: ESInput<I>, accumulator: Accumulator| -> ESParseResult<I, ()> {
1322 | | class_element(i, ¶ms).bind(|i, rhs| {
1323 | | accumulator.borrow_mut().add_item(rhs);
1324 | | i.ret(())
1325 | | })
1326 | | };
| |______- not a function or closure
error[E0554]: `#![feature]` may not be used on the stable release channel
--> src/lib.rs:2:12
|
2 | #![feature(unicode)]
| ^^^^^^^
error[E0635]: unknown feature `unicode`
--> src/lib.rs:2:12
|
2 | #![feature(unicode)]
| ^^^^^^^
warning: trait objects without an explicit `dyn` are deprecated
--> src/parsers/mod.rs:171:18
|
171 | current: Box<::std::error::Error>,
| ^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(bare_trait_objects)]` on by default
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
help: use `dyn`
|
171 | current: Box<dyn (::std::error::Error)>,
| +++++ +
warning: trait objects without an explicit `dyn` are deprecated
--> src/parsers/mod.rs:235:42
|
235 | struct ErrorChainIter<'a>(pub Option<&'a ::std::error::Error>);
| ^^^^^^^^^^^^^^^^^^^
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
help: use `dyn`
|
235 | struct ErrorChainIter<'a>(pub Option<&'a dyn (::std::error::Error)>);
| +++++ +
warning: trait objects without an explicit `dyn` are deprecated
--> src/june_2016/section_15.rs:25:16
|
25 | Custom(Box<ScriptTrait>),
| ^^^^^^^^^^^
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
help: use `dyn`
|
25 - Custom(Box<ScriptTrait>),
25 + Custom(Box<dyn ScriptTrait>),
|
warning: trait objects without an explicit `dyn` are deprecated
--> src/parsers/mod.rs:62:32
|
62 | fn cause(&self) -> Option<&::std::error::Error> {
| ^^^^^^^^^^^^^^^^^^^
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
help: use `dyn`
|
62 | fn cause(&self) -> Option<&dyn (::std::error::Error)> {
| +++++ +
warning: trait objects without an explicit `dyn` are deprecated
--> src/parsers/mod.rs:136:32
|
136 | fn cause(&self) -> Option<&::std::error::Error> {
| ^^^^^^^^^^^^^^^^^^^
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
help: use `dyn`
|
136 | fn cause(&self) -> Option<&dyn (::std::error::Error)> {
| +++++ +
warning: trait objects without an explicit `dyn` are deprecated
--> src/parsers/mod.rs:210:32
|
210 | fn cause(&self) -> Option<&::std::error::Error> {
| ^^^^^^^^^^^^^^^^^^^
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
help: use `dyn`
|
210 | fn cause(&self) -> Option<&dyn (::std::error::Error)> {
| +++++ +
warning: trait objects without an explicit `dyn` are deprecated
--> src/parsers/mod.rs:238:21
|
238 | type Item = &'a ::std::error::Error;
| ^^^^^^^^^^^^^^^^^^^
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
help: use `dyn`
|
238 | type Item = &'a dyn (::std::error::Error);
| +++++ +
warning: trait objects without an explicit `dyn` are deprecated
--> src/parsers/mod.rs:240:45
|
240 | fn next<'b>(&'b mut self) -> Option<&'a ::std::error::Error> {
| ^^^^^^^^^^^^^^^^^^^
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
help: use `dyn`
|
240 | fn next<'b>(&'b mut self) -> Option<&'a dyn (::std::error::Error)> {
| +++++ +
warning: trait objects without an explicit `dyn` are deprecated
--> src/june_2016/section_15.rs:28:33
|
28 | type ScriptTraitParser<I> = Box<FnMut(ESInput<I>) -> ESParseResult<I, Box<ScriptTrait>>>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
help: use `dyn`
|
28 - type ScriptTraitParser<I> = Box<FnMut(ESInput<I>) -> ESParseResult<I, Box<ScriptTrait>>>;
28 + type ScriptTraitParser<I> = Box<dyn FnMut(ESInput<I>) -> ESParseResult<I, Box<ScriptTrait>>>;
|
warning: trait objects without an explicit `dyn` are deprecated
--> src/june_2016/section_15.rs:28:75
|
28 | type ScriptTraitParser<I> = Box<FnMut(ESInput<I>) -> ESParseResult<I, Box<ScriptTrait>>>;
| ^^^^^^^^^^^
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
help: use `dyn`
|
28 - type ScriptTraitParser<I> = Box<FnMut(ESInput<I>) -> ESParseResult<I, Box<ScriptTrait>>>;
28 + type ScriptTraitParser<I> = Box<FnMut(ESInput<I>) -> ESParseResult<I, Box<dyn ScriptTrait>>>;
|
warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
--> src/parsers/mod.rs:57:51
|
57 | ESParseError::Failure(ref err) => err.description(),
| ^^^^^^^^^^^
|
= note: `#[warn(deprecated)]` on by default
warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
--> src/parsers/mod.rs:58:49
|
58 | ESParseError::Error(ref err) => err.description(),
| ^^^^^^^^^^^
warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
--> src/parsers/mod.rs:64:51
|
64 | ESParseError::Failure(ref err) => err.cause(),
| ^^^^^
warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
--> src/parsers/mod.rs:65:49
|
65 | ESParseError::Error(ref err) => err.cause(),
| ^^^^^
warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
--> src/parsers/mod.rs:132:68
|
132 | ESError::SyntaxError(ref syntax_error) => syntax_error.description(),
| ^^^^^^^^^^^
warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
--> src/parsers/mod.rs:138:68
|
138 | ESError::SyntaxError(ref syntax_error) => syntax_error.cause(),
| ^^^^^
warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
--> src/parsers/mod.rs:207:22
|
207 | self.current.description()
| ^^^^^^^^^^^
warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
--> src/parsers/mod.rs:213:34
|
213 | None => self.current.cause(),
| ^^^^^
warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
--> src/parsers/mod.rs:243:28
|
243 | self.0 = e.cause();
| ^^^^^
warning: unreachable statement
--> src/parsers/mod.rs:813:9
|
791 | / match ::std::str::from_utf8(&internal_buf) {
792 | | Err(_) => {
793 | | // not valid_utf8
794 | | result = None;
... |
810 | | }
811 | | }
| |_________- any code following this `match` expression is unreachable, as all arms diverge
812 |
813 | unreachable!();
| ^^^^^^^^^^^^^^ unreachable statement
|
= note: `#[warn(unreachable_code)]` on by default
= note: this warning originates in the macro `unreachable` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0599]: no method named `is_xid_start` found for type `char` in the current scope
--> src/june_2016/section_11.rs:399:14
|
399 | if c.is_xid_start() {
| ^^^^^^^^^^^^ method not found in `char`
error[E0599]: no method named `is_xid_continue` found for type `char` in the current scope
--> src/june_2016/section_11.rs:454:14
|
454 | if c.is_xid_continue() {
| ^^^^^^^^^^^^^^^ method not found in `char`
warning: unused import: `Buffer`
--> src/parsers/mod.rs:22:20
|
22 | use chomp::types::{Buffer, Input, ParseResult, U8Input};
| ^^^^^^
Some errors have detailed explanations: E0518, E0554, E0599, E0635.
For more information about an error, try `rustc --explain E0518`.
warning: `esparser` (lib) generated 32 warnings
error: could not compile `esparser` due to 26 previous errors; 32 warnings emitted
Running cargo build --release on rust 1.62