diff --git a/base/tuple.jl b/base/tuple.jl index 4a8e26ca29b70..6197879a3aba7 100644 --- a/base/tuple.jl +++ b/base/tuple.jl @@ -38,7 +38,7 @@ start(t::Tuple) = 1 done(t::Tuple, i::Int) = (length(t) < i) next(t::Tuple, i::Int) = (t[i], i+1) -keys(t::Tuple) = 1:length(t) +keys(t::Tuple) = ntuple(identity, Val(length(t))) prevind(t::Tuple, i::Integer) = Int(i)-1 nextind(t::Tuple, i::Integer) = Int(i)+1 diff --git a/test/tuple.jl b/test/tuple.jl index 7fda7483c9572..de47a190f8caf 100644 --- a/test/tuple.jl +++ b/test/tuple.jl @@ -243,6 +243,8 @@ end @test reverse(()) === () @test reverse((1,2,3)) === (3,2,1) + + @test keys((1, 2.0, :c)) === (1, 2, 3) end # issue #21697 @test_throws ArgumentError ntuple(identity, -1)