Skip to content

Commit 242d33c

Browse files
committed
Fix type inference on earlier Julia
1 parent 93802ff commit 242d33c

File tree

2 files changed

+4
-8
lines changed

2 files changed

+4
-8
lines changed

src/BaseType.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ For example,
2020
]
2121
```
2222
"""
23-
function base_numeric_type(::Type{T}) where {T}
23+
@generated function base_numeric_type(::Type{T}) where {T}
2424
params = T isa UnionAll ? T.body.parameters : T.parameters
25-
return isempty(params) ? T : first(params)
25+
return isempty(params) ? :($T) : :($(first(params)))
2626
end
2727
base_numeric_type(x) = base_numeric_type(typeof(x))
2828

test/unittests.jl

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,8 @@ expected_type_pairs = [
2525
for (x, y) in expected_type_pairs
2626
@eval @test base_numeric_type($x) == $y
2727
# Make sure compiler can inline it:
28-
if VERSION >= v"1.10"
29-
@eval @inferred $y base_numeric_type($x)
30-
end
28+
@eval @inferred $y base_numeric_type($x)
3129
end
3230

3331
@test base_numeric_type(1.5DynamicQuantities.u"km/s") == base_numeric_type(typeof(1.5DynamicQuantities.u"km/s"))
34-
if VERSION >= v"1.10"
35-
@inferred base_numeric_type(1.5DynamicQuantities.u"km/s")
36-
end
32+
@inferred base_numeric_type(1.5DynamicQuantities.u"km/s")

0 commit comments

Comments
 (0)