mirror of
https://git.code.sf.net/p/zsh/code
synced 2026-04-18 06:53:35 -04:00
53782: Src/params.c, Test/K01nameref.ztst: changes to nameref base level:
- avoid changing base on assignment; - omit base level for up-scope references - do not follow reference chains for base level of new references
This commit is contained in:
committed by
Bart Schaefer
parent
1e0d2b0d7e
commit
e1fed5439c
@@ -1100,15 +1100,15 @@ F:previously this could create an infinite recursion and crash
|
||||
>h:1: rs= - ra= - rs1= - ra1=
|
||||
>h:2: rs= - ra= - rs1= - ra1=
|
||||
>i:1: rs= - ra= - rs1= - ra1=
|
||||
>i:2: rs=g - ra=g - rs1=g - ra1=g
|
||||
>j:1: rs=g - ra=g - rs1=g - ra1=g
|
||||
>j:2: rs=g - ra=g - rs1=g - ra1=g
|
||||
>i:3: rs=g - ra=g - rs1=g - ra1=g
|
||||
>k:1: rs=g - ra=g - rs1=g - ra1=g
|
||||
>k:2: rs=g - ra=g - rs1=g - ra1=g
|
||||
>h:3: rs=g - ra=g - rs1=g - ra1=g
|
||||
>k:1: rs=g - ra=g - rs1=g - ra1=g
|
||||
>k:2: rs=g - ra=g - rs1=g - ra1=g
|
||||
>i:2: rs=f - ra=f - rs1=f - ra1=f
|
||||
>j:1: rs=f - ra=f - rs1=f - ra1=f
|
||||
>j:2: rs=f - ra=f - rs1=f - ra1=f
|
||||
>i:3: rs=f - ra=f - rs1=f - ra1=f
|
||||
>k:1: rs=f - ra=f - rs1=f - ra1=f
|
||||
>k:2: rs=f - ra=f - rs1=f - ra1=f
|
||||
>h:3: rs=f - ra=f - rs1=f - ra1=f
|
||||
>k:1: rs=f - ra=f - rs1=f - ra1=f
|
||||
>k:2: rs=f - ra=f - rs1=f - ra1=f
|
||||
>g:3: rs=f - ra=f - rs1=f - ra1=f
|
||||
|
||||
e '' 6
|
||||
@@ -1237,4 +1237,39 @@ F:previously this could create an infinite recursion and crash
|
||||
?(eval):zsh/random:6: error when adding parameter `SRANDOM'
|
||||
?(eval):6: autoloading module zsh/random failed to define parameter: SRANDOM
|
||||
|
||||
() {
|
||||
typeset var1=var1
|
||||
typeset var2=var2
|
||||
typeset -n ref1=var1
|
||||
echo "ref1=$ref1";
|
||||
() {
|
||||
typeset -n ref1=var2
|
||||
typeset -n ref2=ref1
|
||||
echo "ref1=$ref1";
|
||||
echo "ref2=$ref2";
|
||||
}
|
||||
}
|
||||
0:regression: don't follow references when computing base scope - part 1
|
||||
>ref1=var1
|
||||
>ref1=var2
|
||||
>ref2=var2
|
||||
|
||||
() {
|
||||
typeset var1=var1
|
||||
typeset -n ref1=var1
|
||||
echo ref1=$ref1;
|
||||
() {
|
||||
typeset var2=var2
|
||||
typeset -n ref1
|
||||
typeset -n ref2=ref1
|
||||
ref1=var2
|
||||
echo ref1=$ref1;
|
||||
echo ref2=$ref2;
|
||||
}
|
||||
}
|
||||
0:regression: don't follow references when computing base scope - part 2
|
||||
>ref1=var1
|
||||
>ref1=var2
|
||||
>ref2=var2
|
||||
|
||||
%clean
|
||||
|
||||
Reference in New Issue
Block a user