| package b |
| |
| import a0 "a" |
| |
| import "io" |
| |
| import "a" |
| import . "c" |
| |
| func f() { |
| a.One() // want `cannot inline call to a.One because body refers to non-exported one` |
| |
| _ = 2 // want `Call of \(a.T\).Two should be inlined` |
| } |
| |
| //go:fix inline |
| const in2 = a.Uno |
| |
| //go:fix inline |
| const in3 = C // c.C, by dot import |
| |
| func g() { |
| x := a.Uno // want `Constant a\.In1 should be inlined` |
| |
| a := 1 |
| // Although the package identifier "a" is shadowed here, |
| // a second import of "a" will be added with a new package identifer. |
| x = a0.Uno // want `Constant in2 should be inlined` |
| |
| x = C // want `Constant in3 should be inlined` |
| |
| _ = a |
| _ = x |
| } |
| |
| const d = a.D // nope: a.D refers to a constant in a package that is not visible here. |
| |
| var _ a.T // want `Type alias a\.A should be inlined` |
| var _ []a.T // want `Type alias a\.B should be inlined` |
| var _ map[*string][]error // want `Type alias a\.C should be inlined` |
| var _ map[io.Reader]io.Reader // want `Type alias R should be inlined` |
| |
| var _ a.G // nope: a.G refers to a type in a package that is not visible here |