@@ -102,15 +102,18 @@ end
102
102
# These next are identical to the above
103
103
@test methinvs. method == m
104
104
@test methinvs. reason === :inserting
105
- root = only (methinvs. backedges)
106
- @test root. mi == mi3
107
- @test SnoopCompile. getroot (root) === root
108
- @test root. depth == 0
109
- child = only (root. children)
110
- @test child. mi == mi1
111
- @test SnoopCompile. getroot (child) === root
112
- @test child. depth == 1
113
- if isempty (child. children)
105
+ have_backedges = ! isempty (methinvs. backedges)
106
+ if have_backedges
107
+ root = only (methinvs. backedges)
108
+ @test root. mi == mi3
109
+ @test SnoopCompile. getroot (root) === root
110
+ @test root. depth == 0
111
+ child = only (root. children)
112
+ @test child. mi == mi1
113
+ @test SnoopCompile. getroot (child) === root
114
+ @test child. depth == 1
115
+ end
116
+ if isempty (methinvs. backedges) || isempty (child. children)
114
117
# the mt_backedges got invalidated first
115
118
sig, root = only (methinvs. mt_backedges)
116
119
@test sig === Tuple{typeof (Main. SnooprTests. f), Any}
132
135
print (io, methinvs)
133
136
str = String (take! (io))
134
137
@test startswith (str, " inserting f(::Float32)" )
135
- @test occursin (" backedges: 1: superseding f(::AbstractFloat)" , str)
136
- @test occursin (" with MethodInstance for $(prefix) f(::AbstractFloat) ($targetdepth children)" , str)
138
+ if ! isempty (methinvs. backedges)
139
+ @test occursin (" backedges: 1: superseding f(::AbstractFloat)" , str)
140
+ @test occursin (" with MethodInstance for $(prefix) f(::AbstractFloat) ($targetdepth children)" , str)
141
+ else
142
+ @test occursin (" signature Tuple{typeof($(prefix) f), Any} triggered" , str)
143
+ @test occursin (" for $(prefix) applyf(::Vector{Any}) ($targetdepth children)" , str)
144
+ end
137
145
138
146
show (io, root; minchildren= 1 )
139
147
str = String (take! (io))
@@ -153,10 +161,15 @@ end
153
161
" MethodInstance for $(prefix) applyf(::$(Vector{Any}) ) (1 children)" )
154
162
@test lines[2 ] == " ⋮"
155
163
156
- ftrees = filtermod (@__MODULE__ , trees)
157
- ftree = only (ftrees)
158
- @test ftree. backedges == methinvs. backedges
159
- @test isempty (ftree. mt_backedges)
164
+ if have_backedges
165
+ ftrees = filtermod (@__MODULE__ , trees)
166
+ ftree = only (ftrees)
167
+ @test ftree. backedges == methinvs. backedges
168
+ @test isempty (ftree. mt_backedges)
169
+ else
170
+ ftrees = filtermod (SnooprTests, trees)
171
+ @test ftrees == trees
172
+ end
160
173
161
174
cai = Any[1 ]
162
175
cas = Any[:sym ]
201
214
@test occursin (" Invalidations %" , str)
202
215
203
216
trees = invalidation_trees (invs)
204
- @test length (trees) = = 3
217
+ @test length (trees) > = 3
205
218
io = IOBuffer ()
206
219
show (io, trees)
207
220
str = String (take! (io))
0 commit comments