@@ -1293,27 +1293,27 @@ macro __dot__(x)
1293
1293
esc (__dot__ (x))
1294
1294
end
1295
1295
1296
- @inline broadcasted_kwsyntax (f, args... ; kwargs... ) = broadcasted ((args... )-> f (args... ; kwargs... ), args... )
1297
- @inline function broadcasted (f, args... )
1296
+ @inline broadcasted_kwsyntax (f:: F , args... ; kwargs... ) where {F} = broadcasted ((args... )-> f (args... ; kwargs... ), args... )
1297
+ @inline function broadcasted (f:: F , args... ) where {F}
1298
1298
args′ = map (broadcastable, args)
1299
1299
broadcasted (combine_styles (args′... ), f, args′... )
1300
1300
end
1301
1301
# Due to the current Type{T}/DataType specialization heuristics within Tuples,
1302
1302
# the totally generic varargs broadcasted(f, args...) method above loses Type{T}s in
1303
1303
# mapping broadcastable across the args. These additional methods with explicit
1304
1304
# arguments ensure we preserve Type{T}s in the first or second argument position.
1305
- @inline function broadcasted (f, arg1, args... )
1305
+ @inline function broadcasted (f:: F , arg1:: T1 , args... ) where {F, T1}
1306
1306
arg1′ = broadcastable (arg1)
1307
1307
args′ = map (broadcastable, args)
1308
1308
broadcasted (combine_styles (arg1′, args′... ), f, arg1′, args′... )
1309
1309
end
1310
- @inline function broadcasted (f, arg1, arg2, args... )
1310
+ @inline function broadcasted (f:: F , arg1:: T1 , arg2:: T2 , args... ) where {F, T1, T2}
1311
1311
arg1′ = broadcastable (arg1)
1312
1312
arg2′ = broadcastable (arg2)
1313
1313
args′ = map (broadcastable, args)
1314
1314
broadcasted (combine_styles (arg1′, arg2′, args′... ), f, arg1′, arg2′, args′... )
1315
1315
end
1316
- @inline broadcasted (:: S , f, args... ) where S<: BroadcastStyle = Broadcasted {S} (f, args)
1316
+ @inline broadcasted (:: S , f:: F , args... ) where { S<: BroadcastStyle , F} = Broadcasted {S} (f, args)
1317
1317
1318
1318
"""
1319
1319
BroadcastFunction{F} <: Function
0 commit comments