func (p *Package) typeOf(e ast.Expr) types.Type {
	if T := p.info.TypeOf(e); T != nil {
		return T
	}
	panic(fmt.Sprintf("no type for %T @ %s",
		e, p.Prog.Fset.Position(e.Pos())))
}
func (p *Package) typeOf(e ast.Expr) types.Type {
	if T := p.info.TypeOf(e); T != nil {
		return T
	}
	panic(fmt.Sprintf("no type for %T @ %s",
		e, p.Prog.Fset.Position(e.Pos())))
}
func ( p * Package ) typeOf ( e ast . Expr ) types . Type { if T := p . info . TypeOf ( e ) ; T != nil { return T } panic ( fmt . Sprintf ( " " , e , p . Prog . Fset . Position ( e . Pos ( ) ) ) ) }
// Like TypeOf, but panics instead of returning nil.
// Only valid during p's create and build phases.
Like TypeOf but panics instead of returning nil . Only valid during p s create and build phases .