fish-shell/tests/function.in
Kurtis Rader cfefaaf4ee revert the --shadow-builtin flag
Implementing the --shadow-builtin flag has proven to be highly controversial.
Revert the introduction of that flag to the `function` command. If someone
shoots themselves in the foot by redefining a builtin as a function that's
their problem and not our responsibility to protect them from doing so.

Fixes #3319
2016-08-24 22:56:19 -07:00

46 lines
1 KiB
Fish

# vim: set filetype=fish:
#
# Test the `function` builtin
# utility function
function show_ary -a name --no-scope-shadowing
set -l count (count $$name)
echo "\$$name: ($count)"
if test $count -gt 0
for i in (seq $count)
echo "$i: '$$name[1][$i]'"
end
end
end
# Test the -V flag
set -g foo 'global foo'
set -l foo 'local foo'
set bar one 'two 2' \t '' 3
set baz
function frob -V foo -V bar -V baz
show_ary foo
show_ary bar
show_ary baz
end
echo "Testing -V"
frob
echo "Testing -V with changed variables"
set foo 'bad foo'
set bar 'bad bar'
set baz 'bad baz'
frob
# Test that -a does not mix up the function name with arguments
# See #2068
function name1 -a arg1 arg2 ; end
function -a arg1 arg2 name2 ; end
function name3 --argument-names arg1 arg2 ; end
function --argument-names arg1 arg2 name4 ; end
for i in (seq 4)
if functions -q name$i
echo "Function name$i found"
else
echo "Function name$i not found, but should have been"
end
end