37
37
function Base. to_indices (
38
38
a:: AnyAbstractBlockSparseArray , inds, I:: Tuple{UnitRange{<:Integer},Vararg{Any}}
39
39
)
40
- return @interface BlockSparseArrayInterface ( ) to_indices (a, inds, I)
40
+ return @interface interface (a ) to_indices (a, inds, I)
41
41
end
42
42
43
43
function Base. to_indices (
44
44
a:: AnyAbstractBlockSparseArray , inds, I:: Tuple{AbstractArray{Bool},Vararg{Any}}
45
45
)
46
- return @interface BlockSparseArrayInterface ( ) to_indices (a, inds, I)
46
+ return @interface interface (a ) to_indices (a, inds, I)
47
47
end
48
48
# Fix ambiguity error with Base for logical indexing in Julia 1.10.
49
49
# TODO : Delete this once we drop support for Julia 1.10.
50
50
function Base. to_indices (
51
51
a:: AnyAbstractBlockSparseArray , inds, I:: Union{Tuple{BitArray{N}},Tuple{Array{Bool,N}}}
52
52
) where {N}
53
- return @interface BlockSparseArrayInterface ( ) to_indices (a, inds, I)
53
+ return @interface interface (a ) to_indices (a, inds, I)
54
54
end
55
55
56
56
# a[[Block(2), Block(1)], [Block(2), Block(1)]]
57
57
function Base. to_indices (
58
58
a:: AnyAbstractBlockSparseArray , inds, I:: Tuple{Vector{<:Block{1}},Vararg{Any}}
59
59
)
60
- return @interface BlockSparseArrayInterface ( ) to_indices (a, inds, I)
60
+ return @interface interface (a ) to_indices (a, inds, I)
61
61
end
62
62
63
63
# a[BlockVector([Block(2), Block(1)], [2]), BlockVector([Block(2), Block(1)], [2])]
@@ -67,7 +67,7 @@ function Base.to_indices(
67
67
inds,
68
68
I:: Tuple{AbstractBlockVector{<:Block{1}},Vararg{Any}} ,
69
69
)
70
- return @interface BlockSparseArrayInterface ( ) to_indices (a, inds, I)
70
+ return @interface interface (a ) to_indices (a, inds, I)
71
71
end
72
72
73
73
# a[mortar([Block(1)[1:2], Block(2)[1:3]])]
@@ -76,7 +76,7 @@ function Base.to_indices(
76
76
inds,
77
77
I:: Tuple {BlockVector{<: BlockIndex{1} ,<: Vector{<:BlockIndexRange{1}} },Vararg{Any}},
78
78
)
79
- return @interface BlockSparseArrayInterface ( ) to_indices (a, inds, I)
79
+ return @interface interface (a ) to_indices (a, inds, I)
80
80
end
81
81
82
82
# a[[Block(1)[1:2], Block(2)[1:2]], [Block(1)[1:2], Block(2)[1:2]]]
88
88
89
89
# BlockArrays `AbstractBlockArray` interface
90
90
function BlockArrays. blocks (a:: AnyAbstractBlockSparseArray )
91
- @interface BlockSparseArrayInterface ( ) blocks (a)
91
+ @interface interface (a ) blocks (a)
92
92
end
93
93
94
94
# Fix ambiguity error with `BlockArrays`
95
95
using BlockArrays: BlockSlice
96
96
function BlockArrays. blocks (
97
97
a:: SubArray{<:Any,<:Any,<:AbstractBlockSparseArray,<:Tuple{Vararg{BlockSlice}}}
98
98
)
99
- return @interface BlockSparseArrayInterface ( ) blocks (a)
99
+ return @interface interface (a ) blocks (a)
100
100
end
101
101
102
102
using TypeParameterAccessors: parenttype
@@ -129,7 +129,7 @@ function Base.getindex(a::AnyAbstractBlockSparseArray{<:Any,0})
129
129
return ArrayLayouts. layout_getindex (a)
130
130
end
131
131
132
- # TODO : Define `@interface BlockSparseArrayInterface( ) isassigned`.
132
+ # TODO : Define `@interface interface(a ) isassigned`.
133
133
function Base. isassigned (
134
134
a:: AnyAbstractBlockSparseArray{<:Any,N} , index:: Vararg{Block{1},N}
135
135
) where {N}
@@ -145,7 +145,7 @@ function Base.isassigned(a::AnyAbstractBlockSparseArray{<:Any,N}, index::Block{N
145
145
return isassigned (a, Tuple (index)... )
146
146
end
147
147
148
- # TODO : Define `@interface BlockSparseArrayInterface( ) isassigned`.
148
+ # TODO : Define `@interface interface(a ) isassigned`.
149
149
function Base. isassigned (
150
150
a:: AnyAbstractBlockSparseArray{<:Any,N} , index:: Vararg{BlockIndex{1},N}
151
151
) where {N}
@@ -157,13 +157,13 @@ function Base.setindex!(
157
157
a:: AnyAbstractBlockSparseArray{<:Any,N} , value, I:: BlockIndex{N}
158
158
) where {N}
159
159
# TODO : Use `@interface interface(a) setindex!(...)`.
160
- @interface BlockSparseArrayInterface ( ) setindex! (a, value, I)
160
+ @interface interface (a ) setindex! (a, value, I)
161
161
return a
162
162
end
163
163
# Fixes ambiguity error with BlockArrays.jl
164
164
function Base. setindex! (a:: AnyAbstractBlockSparseArray{<:Any,1} , value, I:: BlockIndex{1} )
165
165
# TODO : Use `@interface interface(a) setindex!(...)`.
166
- @interface BlockSparseArrayInterface ( ) setindex! (a, value, I)
166
+ @interface interface (a ) setindex! (a, value, I)
167
167
return a
168
168
end
169
169
@@ -269,29 +269,29 @@ end
269
269
end
270
270
271
271
# Needed by `BlockArrays` matrix multiplication interface
272
- # TODO : Define a `@interface BlockSparseArrayInterface( ) similar` function.
272
+ # TODO : Define a `@interface interface(a ) similar` function.
273
273
function Base. similar (
274
274
arraytype:: Type{<:AnyAbstractBlockSparseArray} ,
275
275
elt:: Type ,
276
276
axes:: Tuple{Vararg{AbstractUnitRange{<:Integer}}} ,
277
277
)
278
- return @interface BlockSparseArrayInterface ( ) similar (arraytype, elt, axes)
278
+ return @interface interface (arraytype ) similar (arraytype, elt, axes)
279
279
end
280
280
281
- # TODO : Define a `@interface BlockSparseArrayInterface( ) similar` function.
281
+ # TODO : Define a `@interface interface(a ) similar` function.
282
282
function Base. similar (
283
283
a:: AnyAbstractBlockSparseArray ,
284
284
elt:: Type ,
285
285
axes:: Tuple{Vararg{AbstractUnitRange{<:Integer}}} ,
286
286
)
287
287
# TODO : Use `@interface interface(a) similar(...)`.
288
- return @interface BlockSparseArrayInterface ( ) similar (a, elt, axes)
288
+ return @interface interface (a ) similar (a, elt, axes)
289
289
end
290
290
291
291
# Fixes ambiguity error.
292
292
function Base. similar (a:: AnyAbstractBlockSparseArray , elt:: Type , axes:: Tuple{} )
293
293
# TODO : Use `@interface interface(a) similar(...)`.
294
- return @interface BlockSparseArrayInterface ( ) similar (a, elt, axes)
294
+ return @interface interface (a ) similar (a, elt, axes)
295
295
end
296
296
297
297
# Fixes ambiguity error with `BlockArrays`.
@@ -303,7 +303,7 @@ function Base.similar(
303
303
},
304
304
)
305
305
# TODO : Use `@interface interface(a) similar(...)`.
306
- return @interface BlockSparseArrayInterface ( ) similar (a, elt, axes)
306
+ return @interface interface (a ) similar (a, elt, axes)
307
307
end
308
308
309
309
# Fixes ambiguity error with `OffsetArrays`.
@@ -313,7 +313,7 @@ function Base.similar(
313
313
axes:: Tuple{AbstractUnitRange{<:Integer},Vararg{AbstractUnitRange{<:Integer}}} ,
314
314
)
315
315
# TODO : Use `@interface interface(a) similar(...)`.
316
- return @interface BlockSparseArrayInterface ( ) similar (a, elt, axes)
316
+ return @interface interface (a ) similar (a, elt, axes)
317
317
end
318
318
319
319
# Fixes ambiguity error with `BlockArrays`.
@@ -323,7 +323,7 @@ function Base.similar(
323
323
axes:: Tuple{AbstractBlockedUnitRange{<:Integer},Vararg{AbstractUnitRange{<:Integer}}} ,
324
324
)
325
325
# TODO : Use `@interface interface(a) similar(...)`.
326
- return @interface BlockSparseArrayInterface ( ) similar (a, elt, axes)
326
+ return @interface interface (a ) similar (a, elt, axes)
327
327
end
328
328
329
329
# Fixes ambiguity errors with BlockArrays.
@@ -337,15 +337,15 @@ function Base.similar(
337
337
},
338
338
)
339
339
# TODO : Use `@interface interface(a) similar(...)`.
340
- return @interface BlockSparseArrayInterface ( ) similar (a, elt, axes)
340
+ return @interface interface (a ) similar (a, elt, axes)
341
341
end
342
342
343
343
# Fixes ambiguity error with `StaticArrays`.
344
344
function Base. similar (
345
345
a:: AnyAbstractBlockSparseArray , elt:: Type , axes:: Tuple{Base.OneTo,Vararg{Base.OneTo}}
346
346
)
347
347
# TODO : Use `@interface interface(a) similar(...)`.
348
- return @interface BlockSparseArrayInterface ( ) similar (a, elt, axes)
348
+ return @interface interface (a ) similar (a, elt, axes)
349
349
end
350
350
351
351
struct BlockType{T} end
0 commit comments