From 6b3f9cb909df162345d9f5a001abeb0d3df31ce9 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 22 Jul 2023 12:35:39 +0100 Subject: `*-into` always takes the destination as `$1` --- bos-mop-inheritance.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'bos-mop-inheritance.sh') diff --git a/bos-mop-inheritance.sh b/bos-mop-inheritance.sh index 551dd18..cc3d604 100644 --- a/bos-mop-inheritance.sh +++ b/bos-mop-inheritance.sh @@ -5,11 +5,11 @@ bos_5fbos_2fmop_2finheritance_5fmeta="bos-dispatch/invoke bos/mop/base 0" declare -a bos_5fbos_2fmop_2finheritance_5fmro=( "bos/mop/inheritance" "bos/mop/base" ) function bos/mop/inheritance/isa-for-into() { - bos-namespaces/store-array-for-into isa "$1" "$2" + bos-namespaces/store-array-for-into "$1" isa "$2" } function bos/mop/inheritance/set-superclasses-for() { - local isa_name; $self isa-for-into "$1" isa_name + local isa_name; $self isa-for-into isa_name "$1" local -n isa="$isa_name" shift @@ -19,9 +19,9 @@ function bos/mop/inheritance/set-superclasses-for() { } function bos/mop/inheritance/get-superclasses-for-into() { - local isa_name; $self isa-for-into "$1" isa_name + local -n dest="$1" + local isa_name; $self isa-for-into isa_name "$2" local -n isa="$isa_name" - local -n dest="$2" dest=( "${isa[@]}" ) @@ -32,19 +32,19 @@ function bos/mop/inheritance/get-superclasses-for-into() { # look into when resolving a method call for the given class, in order function bos/mop/inheritance/make-mro-for() { local class="$1" - local mro_name; $self mro-for-into "$class" mro_name + local mro_name; $self mro-for-into mro_name "$class" local -n mro="$mro_name" # TODO: use C3 and support multiple inheritance mro=( "$class" ) local -a nextclasses - $self get-superclasses-for-into "$class" nextclasses + $self get-superclasses-for-into nextclasses "$class" while [[ "${#nextclasses}" -gt 0 ]]; do mro+=( "${nextclasses[0]}" ) class="${nextclasses[0]}" - $self get-superclasses-for-into "$class" nextclasses + $self get-superclasses-for-into nextclasses "$class" done return 0 -- cgit v1.2.3