Skip to content

Commit e5337be

Browse files
authored
Merge pull request #92 from JuliaArrays/fix-macro-inline-bug
Bugfix: Avoid emitting Expr(:meta, :inline) in a macro (!)
2 parents 726b18b + 1717d18 commit e5337be

File tree

6 files changed

+0
-40
lines changed

6 files changed

+0
-40
lines changed

src/MArray.jl

-7
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,6 @@ macro MArray(ex)
209209
end
210210

211211
return quote
212-
$(Expr(:meta, :inline))
213212
$(esc(f_expr))
214213
$(esc(Expr(:call, Expr(:curly, :MArray, (rng_lengths...)), Expr(:tuple, exprs...))))
215214
end
@@ -249,7 +248,6 @@ macro MArray(ex)
249248
end
250249

251250
return quote
252-
$(Expr(:meta, :inline))
253251
$(esc(f_expr))
254252
$(esc(Expr(:call, Expr(:curly, :MArray, (rng_lengths...), T), Expr(:tuple, exprs...))))
255253
end
@@ -259,7 +257,6 @@ macro MArray(ex)
259257
error("@MArray got bad expression: $(ex.args[1])()")
260258
else
261259
return quote
262-
$(Expr(:meta, :inline))
263260
if isa($(esc(ex.args[2])), DataType)
264261
$(ex.args[1])($(esc(Expr(:curly, MArray, Expr(:tuple, ex.args[3:end]...), ex.args[2]))))
265262
else
@@ -274,20 +271,17 @@ macro MArray(ex)
274271
error("@MArray got bad expression: $(ex.args[1])($(ex.args[2]))")
275272
else
276273
return quote
277-
$(Expr(:meta, :inline))
278274
$(esc(ex.args[1]))($(esc(ex.args[2])), MArray{$(esc(Expr(:tuple, ex.args[3:end]...)))})
279275
end
280276
end
281277
elseif ex.args[1] == :eye
282278
if length(ex.args) == 2
283279
return quote
284-
$(Expr(:meta, :inline))
285280
eye(MArray{($(esc(ex.args[2])), $(esc(ex.args[2])))})
286281
end
287282
elseif length(ex.args) == 3
288283
# We need a branch, depending if the first argument is a type or a size.
289284
return quote
290-
$(Expr(:meta, :inline))
291285
if isa($(esc(ex.args[2])), DataType)
292286
eye(MArray{($(esc(ex.args[3])), $(esc(ex.args[3]))), $(esc(ex.args[2]))})
293287
else
@@ -296,7 +290,6 @@ macro MArray(ex)
296290
end
297291
elseif length(ex.args) == 4
298292
return quote
299-
$(Expr(:meta, :inline))
300293
eye(MArray{($(esc(ex.args[3])), $(esc(ex.args[4]))), $(esc(ex.args[2]))})
301294
end
302295
else

src/MMatrix.jl

-8
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,6 @@ macro MMatrix(ex)
206206
exprs = [:($f($j1, $j2)) for j1 in rng1, j2 in rng2]
207207

208208
return quote
209-
$(Expr(:meta, :inline))
210209
$(esc(f_expr))
211210
$(esc(Expr(:call, Expr(:curly, :MMatrix, length(rng1), length(rng2)), Expr(:tuple, exprs...))))
212211
end
@@ -227,20 +226,17 @@ macro MMatrix(ex)
227226
exprs = [:($f($j1, $j2)) for j1 in rng1, j2 in rng2]
228227

229228
return quote
230-
$(Expr(:meta, :inline))
231229
$(esc(f_expr))
232230
$(esc(Expr(:call, Expr(:curly, :MMatrix, length(rng1), length(rng2), T), Expr(:tuple, exprs...))))
233231
end
234232
elseif isa(ex, Expr) && ex.head == :call
235233
if ex.args[1] == :zeros || ex.args[1] == :ones || ex.args[1] == :rand || ex.args[1] == :randn
236234
if length(ex.args) == 3
237235
return quote
238-
$(Expr(:meta, :inline))
239236
$(ex.args[1])(MMatrix{$(esc(ex.args[2])),$(esc(ex.args[3]))})
240237
end
241238
elseif length(ex.args) == 4
242239
return quote
243-
$(Expr(:meta, :inline))
244240
$(ex.args[1])(MMatrix{$(esc(ex.args[3])), $(esc(ex.args[4])), $(esc(ex.args[2]))})
245241
end
246242
else
@@ -249,7 +245,6 @@ macro MMatrix(ex)
249245
elseif ex.args[1] == :fill
250246
if length(ex.args) == 4
251247
return quote
252-
$(Expr(:meta, :inline))
253248
$(esc(ex.args[1]))($(esc(ex.args[2])), MMatrix{$(esc(ex.args[3])), $(esc(ex.args[4]))})
254249
end
255250
else
@@ -258,13 +253,11 @@ macro MMatrix(ex)
258253
elseif ex.args[1] == :eye
259254
if length(ex.args) == 2
260255
return quote
261-
$(Expr(:meta, :inline))
262256
eye(MMatrix{$(esc(ex.args[2]))})
263257
end
264258
elseif length(ex.args) == 3
265259
# We need a branch, depending if the first argument is a type or a size.
266260
return quote
267-
$(Expr(:meta, :inline))
268261
if isa($(esc(ex.args[2])), DataType)
269262
eye(MMatrix{$(esc(ex.args[3])), $(esc(ex.args[3])), $(esc(ex.args[2]))})
270263
else
@@ -273,7 +266,6 @@ macro MMatrix(ex)
273266
end
274267
elseif length(ex.args) == 4
275268
return quote
276-
$(Expr(:meta, :inline))
277269
eye(MMatrix{$(esc(ex.args[3])), $(esc(ex.args[4])), $(esc(ex.args[2]))})
278270
end
279271
else

src/MVector.jl

-5
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ macro MVector(ex)
9797
exprs = [:($f($j)) for j in rng]
9898

9999
return quote
100-
$(Expr(:meta, :inline))
101100
$(esc(f_expr))
102101
$(esc(Expr(:call, Expr(:curly, :MVector, length(rng)), Expr(:tuple, exprs...))))
103102
end
@@ -117,20 +116,17 @@ macro MVector(ex)
117116
exprs = [:($f($j)) for j in rng]
118117

119118
return quote
120-
$(Expr(:meta, :inline))
121119
$(esc(f_expr))
122120
$(esc(Expr(:call, Expr(:curly, :MVector, length(rng), T), Expr(:tuple, exprs...))))
123121
end
124122
elseif isa(ex, Expr) && ex.head == :call
125123
if ex.args[1] == :zeros || ex.args[1] == :ones || ex.args[1] == :rand ||ex.args[1] == :randn
126124
if length(ex.args) == 2
127125
return quote
128-
$(Expr(:meta, :inline))
129126
$(esc(ex.args[1]))(MVector{$(esc(ex.args[2]))})
130127
end
131128
elseif length(ex.args) == 3
132129
return quote
133-
$(Expr(:meta, :inline))
134130
$(esc(ex.args[1]))(MVector{$(esc(ex.args[3])), $(esc(ex.args[2]))})
135131
end
136132
else
@@ -139,7 +135,6 @@ macro MVector(ex)
139135
elseif ex.args[1] == :fill
140136
if length(ex.args) == 3
141137
return quote
142-
$(Expr(:meta, :inline))
143138
$(esc(ex.args[1]))($(esc(ex.args[2])), MVector{$(esc(ex.args[3]))})
144139
end
145140
else

src/SArray.jl

-7
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ macro SArray(ex)
173173
end
174174

175175
return quote
176-
$(Expr(:meta, :inline))
177176
$(esc(f_expr))
178177
$(esc(Expr(:call, Expr(:curly, :SArray, (rng_lengths...)), Expr(:tuple, exprs...))))
179178
end
@@ -213,7 +212,6 @@ macro SArray(ex)
213212
end
214213

215214
return quote
216-
$(Expr(:meta, :inline))
217215
$(esc(f_expr))
218216
$(esc(Expr(:call, Expr(:curly, :SArray, (rng_lengths...), T), Expr(:tuple, exprs...))))
219217
end
@@ -223,7 +221,6 @@ macro SArray(ex)
223221
error("@SArray got bad expression: $(ex.args[1])()")
224222
else
225223
return quote
226-
$(Expr(:meta, :inline))
227224
if isa($(esc(ex.args[2])), DataType)
228225
$(ex.args[1])($(esc(Expr(:curly, SArray, Expr(:tuple, ex.args[3:end]...), ex.args[2]))))
229226
else
@@ -238,20 +235,17 @@ macro SArray(ex)
238235
error("@SArray got bad expression: $(ex.args[1])($(ex.args[2]))")
239236
else
240237
return quote
241-
$(Expr(:meta, :inline))
242238
$(esc(ex.args[1]))($(esc(ex.args[2])), SArray{$(esc(Expr(:tuple, ex.args[3:end]...)))})
243239
end
244240
end
245241
elseif ex.args[1] == :eye
246242
if length(ex.args) == 2
247243
return quote
248-
$(Expr(:meta, :inline))
249244
eye(SArray{($(esc(ex.args[2])), $(esc(ex.args[2])))})
250245
end
251246
elseif length(ex.args) == 3
252247
# We need a branch, depending if the first argument is a type or a size.
253248
return quote
254-
$(Expr(:meta, :inline))
255249
if isa($(esc(ex.args[2])), DataType)
256250
eye(SArray{($(esc(ex.args[3])), $(esc(ex.args[3]))), $(esc(ex.args[2]))})
257251
else
@@ -260,7 +254,6 @@ macro SArray(ex)
260254
end
261255
elseif length(ex.args) == 4
262256
return quote
263-
$(Expr(:meta, :inline))
264257
eye(SArray{($(esc(ex.args[3])), $(esc(ex.args[4]))), $(esc(ex.args[2]))})
265258
end
266259
else

src/SMatrix.jl

-8
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,6 @@ macro SMatrix(ex)
188188
exprs = [:($f($j1, $j2)) for j1 in rng1, j2 in rng2]
189189

190190
return quote
191-
$(Expr(:meta, :inline))
192191
$(esc(f_expr))
193192
$(esc(Expr(:call, Expr(:curly, :SMatrix, length(rng1), length(rng2)), Expr(:tuple, exprs...))))
194193
end
@@ -209,20 +208,17 @@ macro SMatrix(ex)
209208
exprs = [:($f($j1, $j2)) for j1 in rng1, j2 in rng2]
210209

211210
return quote
212-
$(Expr(:meta, :inline))
213211
$(esc(f_expr))
214212
$(esc(Expr(:call, Expr(:curly, :SMatrix, length(rng1), length(rng2), T), Expr(:tuple, exprs...))))
215213
end
216214
elseif isa(ex, Expr) && ex.head == :call
217215
if ex.args[1] == :zeros || ex.args[1] == :ones || ex.args[1] == :rand || ex.args[1] == :randn
218216
if length(ex.args) == 3
219217
return quote
220-
$(Expr(:meta, :inline))
221218
$(ex.args[1])(SMatrix{$(esc(ex.args[2])),$(esc(ex.args[3]))})
222219
end
223220
elseif length(ex.args) == 4
224221
return quote
225-
$(Expr(:meta, :inline))
226222
$(ex.args[1])(SMatrix{$(esc(ex.args[3])), $(esc(ex.args[4])), $(esc(ex.args[2]))})
227223
end
228224
else
@@ -231,7 +227,6 @@ macro SMatrix(ex)
231227
elseif ex.args[1] == :fill
232228
if length(ex.args) == 4
233229
return quote
234-
$(Expr(:meta, :inline))
235230
$(esc(ex.args[1]))($(esc(ex.args[2])), SMatrix{$(esc(ex.args[3])), $(esc(ex.args[4]))})
236231
end
237232
else
@@ -240,13 +235,11 @@ macro SMatrix(ex)
240235
elseif ex.args[1] == :eye
241236
if length(ex.args) == 2
242237
return quote
243-
$(Expr(:meta, :inline))
244238
eye(SMatrix{$(esc(ex.args[2]))})
245239
end
246240
elseif length(ex.args) == 3
247241
# We need a branch, depending if the first argument is a type or a size.
248242
return quote
249-
$(Expr(:meta, :inline))
250243
if isa($(esc(ex.args[2])), DataType)
251244
eye(SMatrix{$(esc(ex.args[3])), $(esc(ex.args[3])), $(esc(ex.args[2]))})
252245
else
@@ -255,7 +248,6 @@ macro SMatrix(ex)
255248
end
256249
elseif length(ex.args) == 4
257250
return quote
258-
$(Expr(:meta, :inline))
259251
eye(SMatrix{$(esc(ex.args[3])), $(esc(ex.args[4])), $(esc(ex.args[2]))})
260252
end
261253
else

src/SVector.jl

-5
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ macro SVector(ex)
8181
exprs = [:($f($j)) for j in rng]
8282

8383
return quote
84-
$(Expr(:meta, :inline))
8584
$(esc(f_expr))
8685
$(esc(Expr(:call, Expr(:curly, :SVector, length(rng)), Expr(:tuple, exprs...))))
8786
end
@@ -101,20 +100,17 @@ macro SVector(ex)
101100
exprs = [:($f($j)) for j in rng]
102101

103102
return quote
104-
$(Expr(:meta, :inline))
105103
$(esc(f_expr))
106104
$(esc(Expr(:call, Expr(:curly, :SVector, length(rng), T), Expr(:tuple, exprs...))))
107105
end
108106
elseif isa(ex, Expr) && ex.head == :call
109107
if ex.args[1] == :zeros || ex.args[1] == :ones || ex.args[1] == :rand ||ex.args[1] == :randn
110108
if length(ex.args) == 2
111109
return quote
112-
$(Expr(:meta, :inline))
113110
$(esc(ex.args[1]))(SVector{$(esc(ex.args[2]))})
114111
end
115112
elseif length(ex.args) == 3
116113
return quote
117-
$(Expr(:meta, :inline))
118114
$(esc(ex.args[1]))(SVector{$(esc(ex.args[3])), $(esc(ex.args[2]))})
119115
end
120116
else
@@ -123,7 +119,6 @@ macro SVector(ex)
123119
elseif ex.args[1] == :fill
124120
if length(ex.args) == 3
125121
return quote
126-
$(Expr(:meta, :inline))
127122
$(esc(ex.args[1]))($(esc(ex.args[2])), SVector{$(esc(ex.args[3]))})
128123
end
129124
else

0 commit comments

Comments
 (0)