The general opinion about variable shadowing is that it is frowned upon for code readability and comprehension.
What would be a use case for programming languages to allow variable shadowing?
public SomeObject(String aField) { this.aField = aField; }
aField = aField;