• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pomsky-lang / pomsky / 9142134100

18 May 2024 07:23PM UTC coverage: 82.949% (-1.3%) from 84.258%
9142134100

push

github

Aloso
fix e2e tests

1 of 1 new or added line in 1 file covered. (100.0%)

271 existing lines in 24 files now uncovered.

4242 of 5114 relevant lines covered (82.95%)

420176.26 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

66.67
/pomsky-syntax/src/exprs/reference.rs
1
//! Implements ([relative](https://www.regular-expressions.info/backrefrel.html))
2
//! [backreferences](https://www.regular-expressions.info/backref.html),
3
//! [forward references](https://www.regular-expressions.info/backref2.html#forward) and
4
//! [named references](https://www.regular-expressions.info/named.html).
5

6
use crate::Span;
7

8
#[derive(Debug, Clone, PartialEq, Eq)]
9
#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
10
pub struct Reference {
11
    pub target: ReferenceTarget,
12
    pub span: Span,
13
}
14

15
#[derive(Debug, Clone, PartialEq, Eq)]
16
pub enum ReferenceTarget {
17
    Named(String),
18
    Number(u32),
19
    Relative(i32),
20
}
21

22
impl Reference {
23
    pub(crate) fn new(target: ReferenceTarget, span: Span) -> Self {
61✔
24
        Reference { target, span }
61✔
25
    }
61✔
26

27
    #[cfg(feature = "dbg")]
28
    pub(super) fn pretty_print(&self, buf: &mut crate::PrettyPrinter) {
1✔
29
        buf.push_str("::");
1✔
30
        match &self.target {
1✔
31
            ReferenceTarget::Named(n) => buf.write(n),
1✔
32
            ReferenceTarget::Number(i) => buf.write_fmt(i),
×
33
            &ReferenceTarget::Relative(o) => {
×
34
                buf.push(if o < 0 { '-' } else { '+' });
×
UNCOV
35
                buf.write_fmt(o);
×
36
            }
37
        }
38
    }
1✔
39
}
40

41
#[cfg(feature = "arbitrary")]
42
impl arbitrary::Arbitrary<'_> for ReferenceTarget {
43
    fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result<Self> {
44
        Ok(match u.int_in_range(0u8..=2)? {
45
            0 => ReferenceTarget::Named(super::arbitrary::Ident::create(u)?),
46
            1 => ReferenceTarget::Number(u.int_in_range(0u8..=15)? as u32),
47
            _ => ReferenceTarget::Relative(u.int_in_range(-15i8..=15)? as i32),
48
        })
49
    }
50

51
    fn size_hint(depth: usize) -> (usize, Option<usize>) {
52
        arbitrary::size_hint::and(super::arbitrary::Ident::size_hint(depth), (3, Some(3)))
53
    }
54
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc