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

JuliaLang / julia / 1554

08 Jan 2026 06:52PM UTC coverage: 76.664% (+0.04%) from 76.623%
1554

push

buildkite

web-flow
[JuliaLowering] Fix-up always-defined check in `is_valid_body_ir_argument` (#60602)

This was slightly mis-translated from the flisp side:
```scheme
    (define (valid-body-ir-argument? aval)
      (or (valid-ir-argument? aval)
          (and (symbol? aval) ; Arguments are always defined slots
               (or (memq aval (lam:args lam))
                   (let ((vi (get vinfo-table aval #f)))
                     (and vi (vinfo:never-undef vi)))))))
```

Noticed in
https://github.com/JuliaLang/julia/pull/60567#discussion_r2672556146

62618 of 81679 relevant lines covered (76.66%)

23088815.22 hits per line

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

97.78
/stdlib/Markdown/src/render/plain.jl
1
# This file is a part of Julia. License is MIT: https://julialang.org/license
2

3
plain(x) = sprint(plain, x)
81✔
4

5
function plain(io::IO, content::Vector)
1,701✔
6
    isempty(content) && return
1,701✔
7
    for md in content[1:end-1]
1,689✔
8
        plain(io, md)
915✔
9
        println(io)
915✔
10
    end
915✔
11
    plain(io, content[end])
1,689✔
12
end
13

14
plain(io::IO, md::MD) = plain(io, md.content)
1,467✔
15

16
function plain(io::IO, header::Header{l}) where l
297✔
17
    print(io, "#"^l*" ")
297✔
18
    plaininline(io, header.text)
297✔
19
    println(io)
297✔
20
end
21

22
function plain(io::IO, code::Code)
276✔
23
    # If the code includes a fenced block this will break parsing,
24
    # so it must be enclosed by a longer ````-sequence.
25
    n = mapreduce(m -> length(m.match), max, eachmatch(r"^`+"m, code.code); init=2) + 1
279✔
26
    println(io, "`" ^ n, code.language)
276✔
27
    println(io, code.code)
276✔
28
    println(io, "`" ^ n)
276✔
29
end
30

31
function plain(io::IO, p::Paragraph)
1,155✔
32
    plaininline(io, p.content)
1,155✔
33
    println(io)
1,155✔
34
end
35

36
function plain(io::IO, list::List)
93✔
37
    for (i, item) in enumerate(list.items)
93✔
38
        bullet = isordered(list) ? "$(i + list.ordered - 1). " : "  * "
174✔
39
        print(io, bullet)
174✔
40
        lines = split(rstrip(sprint(plain, item)), "\n")
174✔
41
        for (n, line) in enumerate(lines)
348✔
42
            print(io, (n == 1 || isempty(line)) ? "" : (" "^length(bullet)), line)
696✔
43
            n < length(lines) && println(io)
435✔
44
        end
696✔
45
        println(io)
174✔
46
    end
174✔
47
end
48

49
function plain(io::IO, q::BlockQuote)
12✔
50
    s = sprint(plain, q.content)
12✔
51
    for line in split(rstrip(s), "\n")
12✔
52
        println(io, isempty(line) ? ">" : "> ", line)
30✔
53
    end
30✔
54
    println(io)
12✔
55
end
56

57
function plain(io::IO, f::Footnote)
9✔
58
    print(io, "[^", f.id, "]:")
9✔
59
    s = sprint(plain, f.text)
9✔
60
    lines = split(rstrip(s), "\n")
9✔
61
    # Single line footnotes are printed on the same line as their label
62
    # rather than taking up an additional line.
63
    if length(lines) == 1
9✔
64
        println(io, " ", lines[1])
6✔
65
    else
66
        println(io)
3✔
67
        for line in lines
3✔
68
            println(io, isempty(line) ? "" : "    ", line)
33✔
69
        end
33✔
70
        println(io)
3✔
71
    end
72
end
73

74
function plain(io::IO, md::Admonition)
39✔
75
    s = sprint(plain, md.content)
39✔
76
    title = md.title == uppercasefirst(md.category) ? "" : " \"$(md.title)\""
51✔
77
    println(io, "!!! ", md.category, title)
39✔
78
    for line in split(rstrip(s), "\n")
39✔
79
        println(io, isempty(line) ? "" : "    ", line)
129✔
80
    end
129✔
81
    println(io)
39✔
82
end
83

84
function plain(io::IO, md::HorizontalRule)
3✔
85
    println(io, "-" ^ 3)
3✔
86
end
87

88
function plain(io::IO, l::LaTeX)
6✔
89
    println(io, '$', '$')
6✔
90
    println(io, l.formula)
6✔
91
    println(io, '$', '$')
6✔
92
end
93

94
function plain(io::IO, md)
9✔
95
    show(io,  MIME"text/plain"(), md)
9✔
96
    println(io)
9✔
97
end
98

99
# Inline elements
100

101
plaininline(x) = sprint(plaininline, x)
477✔
102

103
function plaininline(io::IO, md...)
456✔
104
    for el in md
456✔
105
        plaininline(io, el)
1,722✔
106
    end
1,680✔
107
end
108

109
plaininline(io::IO, md::Vector) = !isempty(md) && plaininline(io, md...)
1,581✔
110

111
plaininline(io::IO, f::Footnote) = print(io, "[^", f.id, "]")
6✔
112

113
plaininline(io::IO, link::Link) = plaininline(io, "[", link.text, "](", link.url, ")")
51✔
114

115
plaininline(io::IO, md::Image) = plaininline(io, "![", md.alt, "](", md.url, ")")
×
116

117
plaininline(io::IO, s::AbstractString) = print(io, s)
2,544✔
118

119
plaininline(io::IO, md::Bold) = plaininline(io, "**", md.text, "**")
3✔
120

121
plaininline(io::IO, md::Italic) = plaininline(io, "*", md.text, "*")
24✔
122

123
plaininline(io::IO, md::Strikethrough) = plaininline(io, "~~", md.text, "~~")
×
124

125
function plaininline(io::IO, md::Code)
549✔
126
    if occursin("`", md.code)
549✔
127
        n = maximum(length(m.match) for m in eachmatch(r"(`+)", md.code))
3✔
128
        s = "`"^((iseven(n) ? 1 : 2) + n)
3✔
129
        print(io, s, Base.startswith(md.code, "`") ? " " : "")
3✔
130
        print(io, md.code, endswith(md.code, "`") ? " " : "", s)
3✔
131
    else
132
        print(io, "`", md.code, "`")
546✔
133
    end
134
end
135

136
plaininline(io::IO, br::LineBreak) = println(io)
39✔
137

138
plaininline(io::IO, x) = show(io, MIME"text/plain"(), x)
15✔
139

140
# show
141

142
Base.show(io::IO, md::MD) = plain(io, md)
189✔
143
Base.show(io::IO, ::MIME"text/markdown", md::MD) = plain(io, md)
525✔
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