You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#!/usr/bin/env bashPARENT () {
echo'ok'NESTED () {
echo'ok'
}
}
PARENT # SC2317 isn't triggered despite NESTED never being invoked (unless exit is specified on next line)
Here's a snippet or screenshot that shows the problem:
When PARENT function is exported:
PARENT () {
echo'ok'NESTED () {
echo'SC2317 ERROR triggered only for this line'
}
}
func=$(declare -f PARENT)$func# PARENT echo works
NESTED # NESTED echo works
When NESTED function definition is printed:
PARENT () {
echo'ok'NESTED () {
echo'SC2317 ERROR triggered only for this line'
}
}
func=$(PARENT &&declare -f NESTED)echo"$func"# Contents of NESTED are printed
When exported PARENT function is called in a new shell
PARENT () {
echo'ok'NESTED () {
echo'SC2317 ERROR triggered only for this line'
}
}
cmd="$(declare -f PARENT); PARENT; NESTED"
bash -c "${cmd}"# Both echo works#runuser --login "${USER}" --shell "/bin/bash" -- -c "${cmd}" # Another example
When PARENT function is called indirectly through a function argument (this pattern is commonly used for callback functions):
PARENT () {
echo'ok'NESTED () {
echo'SC2317 ERROR triggered only for this line'
}
}
HANDLER () {
$1# PARENT echo works
NESTED # NESTED echo works
}
HANDLER PARENT
Here's what shellcheck currently says:
www.shellcheck.net
SC2329 (info): This function is never invoked. Check usage (or ignored if invoked indirectly).
VSCode
Command appears to be unreachable. Check usage (or ignore if invoked indirectly). shellcheck(SC2329)
Here's what I wanted or expected to see:
Indirectly invoked NESTED function(s) shouldn't trigger SC2329 if the PARENT function isn't detected as unused
Summary
Looks like this false-positive is triggered for NESTED function(s) only when the PARENT function is called indirectly
The text was updated successfully, but these errors were encountered:
For bugs
0.10.0
Non-problematic code example
Here's a snippet or screenshot that shows the problem:
Here's what shellcheck currently says:
www.shellcheck.net
VSCode
Here's what I wanted or expected to see:
Indirectly invoked NESTED function(s) shouldn't trigger
SC2329
if the PARENT function isn't detected as unusedSummary
Looks like this false-positive is triggered for NESTED function(s) only when the PARENT function is called indirectly
The text was updated successfully, but these errors were encountered: