Path: csiph.com!3.us.feeder.erje.net!feeder.erje.net!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail From: Grisha Levit Newsgroups: gnu.bash.bug Subject: Re: delcare -a on a nameref in a function modifies nameref instead of target Date: Mon, 6 Aug 2018 22:13:58 -0400 Lines: 53 Approved: bug-bash@gnu.org Message-ID: References: NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Trace: usenet.stanford.edu 1533608055 17667 208.118.235.17 (7 Aug 2018 02:14:15 GMT) X-Complaints-To: action@cs.stanford.edu Cc: bug-bash To: Chester Ramey Envelope-to: bug-bash@gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=EchjaQUDKM5u6coaXOB7YmYCDnCsoaSTlNA9Ua4E4BI=; b=calGRAn9uk3KcLqlHKCNTvIJ9rE9g5uVhey9HP8OA6AjwBJqYUaVywVtC+XewILMpz gdvWsu5qfqloMLOptIRZbn7ja7Z4gnqheuUorkk7nmsU+hXy0TrB2Lw+Lm3Tgqlu+lsT 9++vWvMYWmF/YRBuUlCl4hO0i9pJvn9baps+rkkq4DxOmvs0N7Xb74hf4RfBfUX8Y3XX 6ptbxBKID+7oWW1ttVmqcZDfERZfSZpKZAsfL716Cqhw1TrXLgxT84r/gEsNLKREBV9h 6Y2cwUctQK+LH9RuYR1bVU4jGnSlrvL3xTpglICuS3QvR0Md3Y58FzIg3bj4IhoLcuGe yOsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=EchjaQUDKM5u6coaXOB7YmYCDnCsoaSTlNA9Ua4E4BI=; b=f0mqNp597mXcbhxaeazkb5sHYH69Hsf02U69UAtEwgczrDk90WjfqTik/ilZjVOz85 P99lHQbUCwqOESgKuDOrnINTds4JL5k0O7ZWUsPbv3z43pgS5twvK30slxsZlIQBw+7H /buoobH/64j7hpMnMY3Ufq9FRrPIaWFeXJYwJsxG91rqvt9niLCN2eDXB9mZvERR64xG jwYYJzkKPxpQQ1kK+Ef75UsIRGlrrY8TX04fxoYjDn1kPhIDHuNR9Hy57JktjUAZSml/ u8w1k8CrSP7mpmzu7bw1Gb+BVL3kEXY15WeIe9WHvXLls2VhD5lkevznm5bklF7scdMD qerg== X-Gm-Message-State: AOUpUlELQlWIUbtWH2tr+zQ1pj/wq6oKIHcJrclMhy2/qiRFMKRdsw9b Q1hse1MOc2jJQ1YVid+2oBJhh5jdgXJnEfbkLKI= X-Google-Smtp-Source: AAOMgpdEy5iRjord+frVLQllnulHJHNkZTEQiFYykpl8OTxIRNN1SC3YoDHdubdbYOi3Y2jBMA9U/dVTjJiA4h/rrBI= X-Received: by 2002:a37:4f4b:: with SMTP id d72-v6mr15857918qkb.17.1533608050405; Mon, 06 Aug 2018 19:14:10 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::22c X-BeenThere: bug-bash@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Bug reports for the GNU Bourne Again SHell List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com gnu.bash.bug:14458 A few more problematic test cases in this vein (tested against latest devel snapshot 20180803). f() { local -n ref=var; local -A ref=([1]=); ref=([2]=); declare -p ref var; } unset ref var; f # declare -An ref=() # declare -A var=([1]="" ) declare -p ref # declare -a ref=([2]="") unset ref; var=0; f # declare -An ref=([1]="" ) # declare -- var="0" declare -p ref # declare -a ref=([2]="") f() { local -n ref=var; local -a ref=([1]=); ref=([2]=); declare -p ref var; } unset ref var; f # declare -an ref=() # declare -a var=([1]="") declare -p ref # declare -a ref=([2]="") unset ref; var=0; f # declare -an ref=([1]="") # declare -- var="0" declare -p ref # declare -a ref=([2]="") # same issues for `local -[iluctrx] ref=...' f() { local -n ref=var; local -i ref=([1]=); declare -p ref var; } unset var; f # declare -in ref="var" # declare -ai var=([1]="0") var=0; f # declare -in ref="var" # declare -a var=([1]="") # same issue for `local -[ilucAa] ref=...' f() { local -n ref=var; local ref=1; declare -p ref var; }; var=0; f var=0; f # bash: local: `1': invalid variable name for name reference # declare -n ref="var" # declare -- var="0"