Skip to content

Commit

Permalink
Remove setproperties_namedtuple dispatch
Browse files Browse the repository at this point in the history
  • Loading branch information
serenity4 committed Jul 28, 2024
1 parent 1b8840b commit d13e05f
Showing 1 changed file with 2 additions and 27 deletions.
29 changes: 2 additions & 27 deletions src/ConstructionBase.jl
Original file line number Diff line number Diff line change
Expand Up @@ -136,25 +136,9 @@ end

setproperties(obj , patch::Tuple ) = setproperties_object(obj , patch )
setproperties(obj , patch::NamedTuple ) = setproperties_object(obj , patch )
setproperties(obj::NamedTuple , patch::Tuple ) = setproperties_namedtuple(obj , patch )
setproperties(obj::NamedTuple , patch::NamedTuple ) = setproperties_namedtuple(obj , patch )
setproperties(obj::Tuple , patch::Tuple ) = setproperties_tuple(obj , patch )
setproperties(obj::Tuple , patch::NamedTuple ) = setproperties_tuple(obj , patch )

setproperties_namedtuple(obj, patch::Tuple{}) = obj
@noinline function setproperties_namedtuple(obj, patch::Tuple)
msg = """
setproperties(obj::NamedTuple, patch::Tuple) only allowed for empty Tuple. Got:
obj = $obj
patch = $patch
"""
throw(ArgumentError(msg))
end
function setproperties_namedtuple(obj, patch)
res = merge(obj, patch)
check_patch_properties_exist(res, obj, obj, patch)
res
end
@generated function check_patch_fields_exist(obj, patch)
fnames = fieldnames(obj)
pnames = fieldnames(patch)
Expand All @@ -168,17 +152,8 @@ end
end
:(nothing)
end
function check_patch_properties_exist(
nt_new::NamedTuple{fields}, nt_old::NamedTuple{fields}, obj, patch) where {fields}
nothing
end
@noinline function check_patch_properties_exist(nt_new, nt_old, obj, patch)
msg = """
Failed to assign properties $(propertynames(patch)) to object with properties $(propertynames(obj)).
"""
throw(ArgumentError(msg))
end
function setproperties_namedtuple(obj::NamedTuple{fields}, patch::NamedTuple{fields}) where {fields}

function setproperties(obj::NamedTuple{fields}, patch::NamedTuple{fields}) where {fields}
patch
end

Expand Down

0 comments on commit d13e05f

Please sign in to comment.