crates.io / winnow / 1.0.4

winnow 1.0.4

Source
https://github.com/winnow-rs/winnow
Tag scanned
v1.0.4
Compared with
v1.0.3 (1 signals introduced since)
Files
124 scanned, 15 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 35 info
Scan time
0.5 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 20:59

Signals

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

  1. info unicode-mixed-script tests/testsuite/utf8.rs:129:21 new in this release

    identifier `Kxyz` mixes scripts: Other + Latin (in string/comment) (raw pass, confidence 0.40)

            InputError {
                input: "Kxyz",
            },
        ),
  2. info unicode-mixed-script src/ascii/tests.rs:949:18

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

        fn is_till_line_ending_str() {
            let f = "βèƒôřè\rÂßÇáƒƭèř";
            assert_parse!(
                till_line_ending.parse_peek(f),
  3. info unicode-mixed-script src/ascii/tests.rs:4111:18

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

        fn is_till_line_ending_str() {
            let f = "βèƒôřè\rÂßÇáƒƭèř";
            assert_parse!(
                till_line_ending.parse_peek(Partial::new(f)),
  4. info encoding-hex src/binary/mod.rs:284:50

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

    ///
    /// assert_eq!(parser.parse_peek(Partial::new(&b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15abcd"[..])), Ok((Partial::new(&b"abcd"[..]), 0x00010203040506070809101112131415)));
    /// assert_eq!(parser.parse_peek(Partial::new(&b"\x01"[..])), Err(ErrMode::Incomplete(Needed::new(15))));
    /// ```
  5. info encoding-hex src/binary/mod.rs:606:50

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

    ///
    /// assert_eq!(parser.parse_peek(Partial::new(&b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15abcd"[..])), Ok((Partial::new(&b"abcd"[..]), 0x00010203040506070809101112131415)));
    /// assert_eq!(parser.parse_peek(Partial::new(&b"\x01"[..])), Err(ErrMode::Incomplete(Needed::new(15))));
    /// ```
  6. info encoding-hex src/binary/mod.rs:873:50

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

    ///
    /// assert_eq!(parser.parse_peek(Partial::new(&b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15abcd"[..])), Ok((Partial::new(&b"abcd"[..]), 0x15141312111009080706050403020100)));
    /// assert_eq!(parser.parse_peek(Partial::new(&b"\x01"[..])), Err(ErrMode::Incomplete(Needed::new(15))));
    /// ```
  7. info encoding-hex src/binary/mod.rs:1194:50

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

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

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

        fn utf8() {
            let input = "βèƒôřè";
            assert_eq!(input.len(), 12);
            let cases = [
  9. info unicode-mixed-script tests/testsuite/utf8.rs:141:26

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

    fn take_succeed_str() {
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
    
        assert_parse!(
  10. info unicode-mixed-script tests/testsuite/utf8.rs:149:10

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

            "áƒƭèř",
            "βèƒôřèÂßÇ",
        ),
    )
  11. info unicode-mixed-script tests/testsuite/utf8.rs:162:26

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

    
        const INPUT: &str = "βèƒôřèÂßÇá";
    
        assert_parse!(
  12. info unicode-mixed-script tests/testsuite/utf8.rs:180:26

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

    fn take_until_succeed_str() {
        const INPUT: &str = "βèƒôřèÂßÇ∂áƒƭèř";
        const FIND: &str = "ÂßÇ∂";
  13. info unicode-mixed-script tests/testsuite/utf8.rs:189:10

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

            "ÂßÇ∂áƒƭèř",
            "βèƒôřè",
        ),
    )
  14. info unicode-mixed-script tests/testsuite/utf8.rs:202:26

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

    
        const INPUT: &str = "βèƒôřè";
        const FIND: &str = "βèƒôřèÂßÇ";
  15. info unicode-mixed-script tests/testsuite/utf8.rs:203:25

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

        const INPUT: &str = "βèƒôřè";
        const FIND: &str = "βèƒôřèÂßÇ";
    
        assert_parse!(
  16. info unicode-mixed-script tests/testsuite/utf8.rs:223:26

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

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

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

        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const FIND: &str = "Ráñδô₥";
    
        assert_parse!(
  18. info unicode-mixed-script tests/testsuite/utf8.rs:322:26

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

    
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        fn while_s(c: char) -> bool {
            c == '9'
  19. info unicode-mixed-script tests/testsuite/utf8.rs:334:10

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

        (
            "βèƒôřèÂßÇáƒƭèř",
            "",
        ),
  20. info unicode-mixed-script tests/testsuite/utf8.rs:348:26

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

    
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        fn while_s(c: char) -> bool {
            matches!(c, 'β' | 'è' | 'ƒ' | 'ô' | 'ř' | 'Â' | 'ß' | 'Ç')
  21. info unicode-mixed-script tests/testsuite/utf8.rs:361:10

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

            "áƒƭèř",
            "βèƒôřèÂßÇ",
        ),
    )
  22. info unicode-mixed-script tests/testsuite/utf8.rs:447:26

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

    
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        fn while1_s(c: char) -> bool {
            matches!(c, 'β' | 'è' | 'ƒ' | 'ô' | 'ř' | 'Â' | 'ß' | 'Ç')
  23. info unicode-mixed-script tests/testsuite/utf8.rs:460:10

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

            "áƒƭèř",
            "βèƒôřèÂßÇ",
        ),
    )
  24. info unicode-mixed-script tests/testsuite/utf8.rs:471:26

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

    fn take_while1_set_succeed_str() {
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const MATCH: &[char] = &['β', 'è', 'ƒ', 'ô', 'ř', 'è', 'Â', 'ß', 'Ç'];
        fn test<'i>(input: &mut &'i str) -> TestResult<&'i str, &'i str> {
  25. info unicode-mixed-script tests/testsuite/utf8.rs:482:10

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

            "áƒƭèř",
            "βèƒôřèÂßÇ",
        ),
    )
  26. info unicode-mixed-script tests/testsuite/utf8.rs:495: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'
  27. info unicode-mixed-script tests/testsuite/utf8.rs:508:21

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

            InputError {
                input: "βèƒôřèÂßÇáƒƭèř",
            },
        ),
  28. info unicode-mixed-script tests/testsuite/utf8.rs:520:26

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

    fn take_while1_set_fail_str() {
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const MATCH: &[char] = &['Û', 'ñ', 'ℓ', 'ú', 'ç', 'ƙ', '¥'];
        fn test<'i>(input: &mut &'i str) -> TestResult<&'i str, &'i str> {
  29. info unicode-mixed-script tests/testsuite/utf8.rs:531:21

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

            InputError {
                input: "βèƒôřèÂßÇáƒƭèř",
            },
        ),
  30. info unicode-mixed-script tests/testsuite/utf8.rs:543:26

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

    fn take_till0_succeed_str() {
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        fn till_s(c: char) -> bool {
            c == 'á'
  31. info unicode-mixed-script tests/testsuite/utf8.rs:556:10

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

            "áƒƭèř",
            "βèƒôřèÂßÇ",
        ),
    )
  32. info unicode-mixed-script tests/testsuite/utf8.rs:567:26

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

    fn take_till1_succeed_str() {
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const AVOID: &[char] = &['£', 'ú', 'ç', 'ƙ', '¥', 'á'];
        fn test<'i>(input: &mut &'i str) -> TestResult<&'i str, &'i str> {
  33. info unicode-mixed-script tests/testsuite/utf8.rs:578:10

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

            "áƒƭèř",
            "βèƒôřèÂßÇ",
        ),
    )
  34. info unicode-mixed-script tests/testsuite/utf8.rs:589:26

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

    fn take_till1_failed_str() {
        const INPUT: &str = "βèƒôřèÂßÇáƒƭèř";
        const AVOID: &[char] = &['β', 'ú', 'ç', 'ƙ', '¥'];
        fn test<'i>(input: &mut &'i str) -> TestResult<&'i str, &'i str> {
  35. info unicode-mixed-script tests/testsuite/utf8.rs:600:21

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

            InputError {
                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/winnow-rs/winnow winnow && cd winnow
git checkout v1.0.4
disclude scan --severity info --diff v1.0.3 .