@@ -73,6 +73,47 @@ struct InvalidScope <: AbstractScope
73
73
y:: AbstractScope
74
74
end
75
75
76
+ # Show methods
77
+
78
+ function Base. show (io:: IO , scope:: UnionScope )
79
+ indent = io isa IOContext ? get (io, :indent , 0 ) : 0
80
+ println (io, " UnionScope:" )
81
+ indent += 2
82
+ inner_io = IOContext (io, :indent => indent)
83
+ if length (scope. scopes) == 0
84
+ print (io, " " ^ indent, " empty" )
85
+ return
86
+ end
87
+ for (idx, inner_scope) in enumerate (scope. scopes)
88
+ print (io, " " ^ indent); print (inner_io, inner_scope)
89
+ idx < length (scope. scopes) && println (io)
90
+ end
91
+ end
92
+ function Base. show (io:: IO , scope:: TaintScope )
93
+ indent = io isa IOContext ? get (io, :indent , 0 ) : 0
94
+ println (io, " TaintScope:" )
95
+ indent += 2
96
+ inner_io = IOContext (io, :indent => indent)
97
+ print (io, " " ^ indent, " scope: " ); println (inner_io, scope. scope)
98
+ if length (scope. taints) == 0
99
+ print (io, " " ^ indent, " no taints" )
100
+ return
101
+ end
102
+ println (io, " " ^ indent, " taints: " )
103
+ indent += 4
104
+ inner_io = IOContext (io, :indent => indent)
105
+ for (idx, taint) in enumerate (scope. taints)
106
+ print (io, " " ^ indent); print (inner_io, taint)
107
+ idx < length (scope. taints) && println (io)
108
+ end
109
+ end
110
+ Base. show (io:: IO , scope:: NodeScope ) =
111
+ print (io, " NodeScope: node == $(scope. uuid) " )
112
+ Base. show (io:: IO , scope:: ProcessScope ) =
113
+ print (io, " ProcessScope: worker == $(scope. wid) " )
114
+ Base. show (io:: IO , scope:: ExactScope ) =
115
+ print (io, " ExactScope: processor == $(scope. processor) " )
116
+
76
117
# Comparisons and constraint checking
77
118
78
119
constrain (x, y) = x < y ? constrain (y, x) : throw (MethodError (constrain, x, y))
0 commit comments