| Test of failure to inline because callee references a |
| package-level decl that is shadowed by caller. |
| |
| Observe that the first call to f can be inlined because |
| the shadowing has not yet occurred; but the second call |
| to f is within the scope of the local constant v. |
| |
| -- go.mod -- |
| module testdata |
| go 1.12 |
| |
| -- a/a.go -- |
| package a |
| |
| func _() { |
| f() //@ inline(re"f", result) |
| const v = 1 |
| f() //@ inline(re"f", re"v.*shadowed.*by.*const.*line 5") |
| } |
| |
| func f() int { return v } |
| |
| var v int |
| |
| -- result -- |
| package a |
| |
| func _() { |
| _ = v //@ inline(re"f", result) |
| const v = 1 |
| f() //@ inline(re"f", re"v.*shadowed.*by.*const.*line 5") |
| } |
| |
| func f() int { return v } |
| |
| var v int |