crates.io / nom / 8.0.0

nom 8.0.0

Source
https://github.com/rust-bakery/nom
Tag scanned
8.0.0
Compared with
7.1.3 (4 signals introduced since)
Files
87 scanned, 11 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 47 info
Scan time
0.2 s
LLM review
LLM review by claude-haiku-5-5 (Anthropic): nothing at warn or critical to review.
Disclude version
4.0.0
Scanned (UTC)
2026-10-14 21:18

Signals

Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.

  1. info encoding-hex src/number/mod.rs:215:26 new in this release

    16 consecutive `\xNN` escapes (entropy 4.0 bits/byte) (in comment) (raw pass, confidence 0.39)

    ///
    /// assert_eq!(parser(&b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15abcd"[..]), Ok((&b"abcd"[..], 0x00010203040506070809101112131415)));
    /// assert_eq!(parser(&b"\x01"[..]), Err(Err::Incomplete(Needed::new(15))));
    /// ```
  2. info encoding-hex src/number/mod.rs:337:32 new in this release

    16 consecutive `\xNN` escapes (entropy 4.0 bits/byte) (in comment) (raw pass, confidence 0.39)

    ///
    /// assert_eq!(parser.parse(&b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15abcd"[..]), Ok((&b"abcd"[..], 0x00010203040506070809101112131415)));
    /// assert_eq!(parser.parse(&b"\x01"[..]), Err(Err::Incomplete(Needed::new(15))));
    /// ```
  3. info encoding-hex src/number/mod.rs:522:26 new in this release

    16 consecutive `\xNN` escapes (entropy 4.0 bits/byte) (in comment) (raw pass, confidence 0.39)

    ///
    /// assert_eq!(parser(&b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15abcd"[..]), Ok((&b"abcd"[..], 0x15141312111009080706050403020100)));
    /// assert_eq!(parser(&b"\x01"[..]), Err(Err::Incomplete(Needed::new(15))));
    /// ```
  4. info encoding-hex src/number/mod.rs:653:26 new in this release

    16 consecutive `\xNN` escapes (entropy 4.0 bits/byte) (in comment) (raw pass, confidence 0.39)

    ///
    /// assert_eq!(parser(&b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15abcd"[..]), Ok((&b"abcd"[..], 0x15141312111009080706050403020100)));
    /// assert_eq!(parser(&b"\x01"[..]), Err(Err::Incomplete(Needed::new(15))));
    /// ```
  5. line length 729 characters (raw pass, confidence 0.50)

    - **configurable endianness:** [`i16`]https://docs.rs/nom/latest/nom/number/complete/fn.i16.html, [`i32`]https://docs.rs/nom/latest/nom/number/complete/fn.i32.html, [`i64`]https://docs.rs/nom/latest/nom/number/complete/fn.i64.html, [`u16`]https://docs.rs/nom/latest/nom/number/complete/fn.u16.html, [`u32`](https
  6. info identifier-low-length doc/upgrading_to_nom_5.md:20:1

    [embedded rust] 19 of 43 non-conventional identifiers are single-character (44%) (token pass, confidence 0.50)

  7. info unicode-mixed-script src/character/complete.rs:1068:14

    identifier `βèƒôřè` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        let d = "βèƒôřè\nÂßÇáƒƭèř";
        assert_eq!(not_line_ending(d), Ok((&"\nÂßÇáƒƭèř"[..], &"βèƒôřè"[..])));
  8. info unicode-mixed-script src/character/complete.rs:1069:69

    identifier `βèƒôřè` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        let d = "βèƒôřè\nÂßÇáƒƭèř";
        assert_eq!(not_line_ending(d), Ok((&"\nÂßÇáƒƭèř"[..], &"βèƒôřè"[..])));
    
        let e = "βèƒôřè\r\nÂßÇáƒƭèř";
  9. info unicode-mixed-script src/character/complete.rs:1071:14

    identifier `βèƒôřè` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        let e = "βèƒôřè\r\nÂßÇáƒƭèř";
        assert_eq!(not_line_ending(e), Ok((&"\r\nÂßÇáƒƭèř"[..], &"βèƒôřè"[..])));
        */
  10. info unicode-mixed-script src/character/complete.rs:1072:71

    identifier `βèƒôřè` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        let e = "βèƒôřè\r\nÂßÇáƒƭèř";
        assert_eq!(not_line_ending(e), Ok((&"\r\nÂßÇáƒƭèř"[..], &"βèƒôřè"[..])));
        */
  11. info unicode-mixed-script src/character/complete.rs:1075:14

    identifier `βèƒôřè` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        let f = "βèƒôřè\rÂßÇáƒƭèř";
        assert_eq!(not_line_ending(f), Err(Err::Error((f, ErrorKind::Tag))));
  12. info unicode-mixed-script src/character/streaming.rs:1029:14

    identifier `βèƒôřè` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        let d = "βèƒôřè\nÂßÇáƒƭèř";
        assert_eq!(not_line_ending(d), Ok((&"\nÂßÇáƒƭèř"[..], &"βèƒôřè"[..])));
  13. info unicode-mixed-script src/character/streaming.rs:1030:69

    identifier `βèƒôřè` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        let d = "βèƒôřè\nÂßÇáƒƭèř";
        assert_eq!(not_line_ending(d), Ok((&"\nÂßÇáƒƭèř"[..], &"βèƒôřè"[..])));
    
        let e = "βèƒôřè\r\nÂßÇáƒƭèř";
  14. info unicode-mixed-script src/character/streaming.rs:1032:14

    identifier `βèƒôřè` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        let e = "βèƒôřè\r\nÂßÇáƒƭèř";
        assert_eq!(not_line_ending(e), Ok((&"\r\nÂßÇáƒƭèř"[..], &"βèƒôřè"[..])));
        */
  15. info unicode-mixed-script src/character/streaming.rs:1033:71

    identifier `βèƒôřè` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        let e = "βèƒôřè\r\nÂßÇáƒƭèř";
        assert_eq!(not_line_ending(e), Ok((&"\r\nÂßÇáƒƭèř"[..], &"βèƒôřè"[..])));
        */
  16. info unicode-mixed-script src/character/streaming.rs:1036:14

    identifier `βèƒôřè` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        let f = "βèƒôřè\rÂßÇáƒƭèř";
        assert_eq!(not_line_ending(f), Err(Err::Error((f, ErrorKind::Tag))));
  17. info encoding-hex src/number/streaming.rs:138:26

    16 consecutive `\xNN` escapes (entropy 4.0 bits/byte) (in comment) (raw pass, confidence 0.39)

    ///
    /// assert_eq!(parser(&b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15abcd"[..]), Ok((&b"abcd"[..], 0x00010203040506070809101112131415)));
    /// assert_eq!(parser(&b"\x01"[..]), Err(Err::Incomplete(Needed::new(15))));
    /// ```
  18. info encoding-hex src/number/streaming.rs:277:26

    16 consecutive `\xNN` escapes (entropy 4.0 bits/byte) (in comment) (raw pass, confidence 0.39)

    ///
    /// assert_eq!(parser(&b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15abcd"[..]), Ok((&b"abcd"[..], 0x00010203040506070809101112131415)));
    /// assert_eq!(parser(&b"\x01"[..]), Err(Err::Incomplete(Needed::new(15))));
    /// ```
  19. info encoding-hex src/number/streaming.rs:412:26

    16 consecutive `\xNN` escapes (entropy 4.0 bits/byte) (in comment) (raw pass, confidence 0.39)

    ///
    /// assert_eq!(parser(&b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15abcd"[..]), Ok((&b"abcd"[..], 0x15141312111009080706050403020100)));
    /// assert_eq!(parser(&b"\x01"[..]), Err(Err::Incomplete(Needed::new(15))));
    /// ```
  20. info encoding-hex src/number/streaming.rs:565:26

    16 consecutive `\xNN` escapes (entropy 4.0 bits/byte) (in comment) (raw pass, confidence 0.39)

    ///
    /// assert_eq!(parser(&b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15abcd"[..]), Ok((&b"abcd"[..], 0x15141312111009080706050403020100)));
    /// assert_eq!(parser(&b"\x01"[..]), Err(Err::Incomplete(Needed::new(15))));
    /// ```
  21. info unicode-mixed-script src/str.rs:77:26

    identifier `βèƒôřèÂßÇáƒƭèř` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

      fn take_s_succeed() {
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const CONSUMED: &str = "βèƒôřèÂßÇ";
        const LEFTOVER: &str = "áƒƭèř";
  22. info unicode-mixed-script src/str.rs:78:29

    identifier `βèƒôřèÂßÇ` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const CONSUMED: &str = "βèƒôřèÂßÇ";
        const LEFTOVER: &str = "áƒƭèř";
  23. info unicode-mixed-script src/str.rs:106:26

    identifier `βèƒôřèÂßÇ` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

      fn take_until_succeed() {
        const INPUT: &str = "βèƒôřèÂßÇ∂áƒƭèř";
        const FIND: &str = "ÂßÇ∂";
        const CONSUMED: &str = "βèƒôřè";
  24. info unicode-mixed-script src/str.rs:108:29

    identifier `βèƒôřè` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        const FIND: &str = "ÂßÇ∂";
        const CONSUMED: &str = "βèƒôřè";
        const LEFTOVER: &str = "ÂßÇ∂áƒƭèř";
  25. info unicode-mixed-script src/str.rs:140:26

    identifier `βèƒôřèÂßÇá` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        const INPUT: &str = "βèƒôřèÂßÇá";
    
        let res: IResult<_, _, (_, ErrorKind)> = take(13_usize)(INPUT);
  26. info unicode-mixed-script src/str.rs:200:26

    identifier `βèƒôřèÂßÇáƒƭèř` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

      fn take_till_s_succeed() {
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const CONSUMED: &str = "βèƒôřèÂßÇ";
        const LEFTOVER: &str = "áƒƭèř";
  27. info unicode-mixed-script src/str.rs:201:29

    identifier `βèƒôřèÂßÇ` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const CONSUMED: &str = "βèƒôřèÂßÇ";
        const LEFTOVER: &str = "áƒƭèř";
        fn till_s(c: char) -> bool {
  28. info unicode-mixed-script src/str.rs:235:26

    identifier `βèƒôřèÂßÇáƒƭèř` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const CONSUMED: &str = "";
        const LEFTOVER: &str = "βèƒôřèÂßÇáƒƭèř";
  29. info unicode-mixed-script src/str.rs:237:29

    identifier `βèƒôřèÂßÇáƒƭèř` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        const CONSUMED: &str = "";
        const LEFTOVER: &str = "βèƒôřèÂßÇáƒƭèř";
        fn while_s(c: char) -> bool {
          c == '9'
  30. info unicode-mixed-script src/str.rs:268:26

    identifier `βèƒôřèÂßÇáƒƭèř` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

      fn is_not_succeed() {
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const AVOID: &str = "£úçƙ¥á";
        const CONSUMED: &str = "βèƒôřèÂßÇ";
  31. info unicode-mixed-script src/str.rs:270:29

    identifier `βèƒôřèÂßÇ` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        const AVOID: &str = "£úçƙ¥á";
        const CONSUMED: &str = "βèƒôřèÂßÇ";
        const LEFTOVER: &str = "áƒƭèř";
        fn test(input: &str) -> IResult<&str, &str> {
  32. info unicode-mixed-script src/str.rs:301:26

    identifier `βèƒôřèÂßÇáƒƭèř` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const CONSUMED: &str = "βèƒôřèÂßÇ";
        const LEFTOVER: &str = "áƒƭèř";
  33. info unicode-mixed-script src/str.rs:302:29

    identifier `βèƒôřèÂßÇ` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const CONSUMED: &str = "βèƒôřèÂßÇ";
        const LEFTOVER: &str = "áƒƭèř";
        fn while_s(c: char) -> bool {
  34. info unicode-mixed-script src/str.rs:334:26

    identifier `βèƒôřèÂßÇáƒƭèř` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

      fn is_not_fail() {
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const AVOID: &str = "βúçƙ¥";
        fn test(input: &str) -> IResult<&str, &str> {
  35. info unicode-mixed-script src/str.rs:335:26

    identifier `βúçƙ` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const AVOID: &str = "βúçƙ¥";
        fn test(input: &str) -> IResult<&str, &str> {
          is_not(AVOID)(input)
  36. info unicode-mixed-script src/str.rs:352:26

    identifier `βèƒôřèÂßÇáƒƭèř` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const CONSUMED: &str = "βèƒôřèÂßÇ";
        const LEFTOVER: &str = "áƒƭèř";
  37. info unicode-mixed-script src/str.rs:353:29

    identifier `βèƒôřèÂßÇ` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const CONSUMED: &str = "βèƒôřèÂßÇ";
        const LEFTOVER: &str = "áƒƭèř";
        fn while1_s(c: char) -> bool {
  38. info unicode-mixed-script src/str.rs:387:26

    identifier `βèƒôřè` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        const INPUT: &str = "βèƒôřè";
        const FIND: &str = "βèƒôřèÂßÇ";
  39. info unicode-mixed-script src/str.rs:388:25

    identifier `βèƒôřèÂßÇ` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        const INPUT: &str = "βèƒôřè";
        const FIND: &str = "βèƒôřèÂßÇ";
    
        let res: IResult<_, _, (_, ErrorKind)> = take_until(FIND)(INPUT);
  40. info unicode-mixed-script src/str.rs:403:26

    identifier `βèƒôřèÂßÇáƒƭèř` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

      fn is_a_succeed() {
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const MATCH: &str = "βèƒôřèÂßÇ";
        const CONSUMED: &str = "βèƒôřèÂßÇ";
  41. info unicode-mixed-script src/str.rs:404:26

    identifier `βèƒôřèÂßÇ` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const MATCH: &str = "βèƒôřèÂßÇ";
        const CONSUMED: &str = "βèƒôřèÂßÇ";
        const LEFTOVER: &str = "áƒƭèř";
  42. info unicode-mixed-script src/str.rs:405:29

    identifier `βèƒôřèÂßÇ` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        const MATCH: &str = "βèƒôřèÂßÇ";
        const CONSUMED: &str = "βèƒôřèÂßÇ";
        const LEFTOVER: &str = "áƒƭèř";
        fn test(input: &str) -> IResult<&str, &str> {
  43. info unicode-mixed-script src/str.rs:436:26

    identifier `βèƒôřèÂßÇáƒƭèř` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        fn while1_s(c: char) -> bool {
          c == '9'
  44. info unicode-mixed-script src/str.rs:455:26

    identifier `βèƒôřèÂßÇáƒƭèř` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

      fn is_a_fail() {
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const MATCH: &str = "Ûñℓúçƙ¥";
        fn test(input: &str) -> IResult<&str, &str> {
  45. info unicode-mixed-script src/str.rs:456:26

    identifier `Ûñℓúçƙ` mixes scripts: Latin + Other (in string/comment) (raw pass, confidence 0.40)

        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const MATCH: &str = "Ûñℓúçƙ¥";
        fn test(input: &str) -> IResult<&str, &str> {
          is_a(MATCH)(input)
  46. info unicode-mixed-script src/str.rs:473:26

    identifier `βèƒôřèÂßÇáƒƭèř` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const FIND: &str = "Ráñδô₥";
  47. info unicode-mixed-script src/str.rs:474:25

    identifier `Ráñδô` mixes scripts: Latin + Greek (in string/comment) (raw pass, confidence 0.40)

        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const FIND: &str = "Ráñδô₥";
    
        let res: IResult<_, _, (_, ErrorKind)> = take_until(FIND)(INPUT);

Reproduce This Scan

Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.

cargo install disclude --version 4.0.0
git clone https://github.com/rust-bakery/nom nom && cd nom
git checkout 8.0.0
disclude scan --severity info --diff 7.1.3 .