diff --git a/base/abstractarray.jl b/base/abstractarray.jl index cb3956eb7c6d4..07f01fed1e0b3 100644 --- a/base/abstractarray.jl +++ b/base/abstractarray.jl @@ -942,9 +942,11 @@ end ## from general iterable to any array +function copyto! end + # This is `Experimental.@max_methods 1 function copyto! end`, which is not # defined at this point in bootstrap. -typeof(function copyto! end).name.max_methods = UInt8(1) +typeof(copyto!).name.max_methods = UInt8(1) function copyto!(dest::AbstractArray, src) destiter = eachindex(dest) diff --git a/base/namedtuple.jl b/base/namedtuple.jl index 320d068205a3d..df2eb5d19cd2d 100644 --- a/base/namedtuple.jl +++ b/base/namedtuple.jl @@ -324,7 +324,11 @@ julia> merge((a=1, b=2), (b=3, c=(d=1,)), (c=(d=2,),)) (a = 1, b = 3, c = (d = 2,)) ``` """ -function merge(a::NamedTuple{an}, b::NamedTuple{bn}) where {an, bn} +merge(a::NamedTuple, b::NamedTuple) = _merge_nt(a, b)::NamedTuple + +function _merge_nt end +typeof(_merge_nt).name.max_methods = UInt8(4) +function _merge_nt(a::NamedTuple{an}, b::NamedTuple{bn}) where {an, bn} if @generated names = merge_names(an, bn) types = merge_types(names, a, b) @@ -334,10 +338,9 @@ function merge(a::NamedTuple{an}, b::NamedTuple{bn}) where {an, bn} merge_fallback(a, b, an, bn) end end - -merge(a::NamedTuple, b::NamedTuple{()}) = a -merge(a::NamedTuple{()}, b::NamedTuple{()}) = a -merge(a::NamedTuple{()}, b::NamedTuple) = b +_merge_nt(a::NamedTuple, b::NamedTuple{()}) = a +_merge_nt(a::NamedTuple{()}, b::NamedTuple{()}) = a +_merge_nt(a::NamedTuple{()}, b::NamedTuple) = b merge(a::NamedTuple, b::Iterators.Pairs{<:Any,<:Any,<:Any,<:NamedTuple}) = merge(a, getfield(b, :data)) diff --git a/base/tuple.jl b/base/tuple.jl index 59fe2c1e531e1..e20fcc7251c02 100644 --- a/base/tuple.jl +++ b/base/tuple.jl @@ -249,7 +249,8 @@ end # @ tuple.jl:200 # [4] eltype(t::Type{<:Tuple}) # @ tuple.jl:209 -typeof(function eltype end).name.max_methods = UInt8(4) +function eltype end +typeof(eltype).name.max_methods = UInt8(4) # version of tail that doesn't throw on empty tuples (used in array indexing) safe_tail(t::Tuple) = tail(t)