package b

import "a"
import . "c"

func f() {
	a.One() // want `cannot inline call to a.One because body refers to non-exported one`

	new(a.T).Two() // 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.In1 // 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 = in2 // want `Constant in2 should be inlined`

	x = in3 // 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.A // want `Type alias a\.A should be inlined`
var _ a.B // want `Type alias a\.B should be inlined`
var _ a.C // want `Type alias a\.C should be inlined`
var _ R   // 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
