Skip to content

Commit f8608b7

Browse files
adonovangopherbot
authored andcommitted
internal/typesinternal: implement VarKind compatibility shim
For golang/go#70250 Change-Id: Ib7700c2516cf84f17d351e5580de752a9ec44c5b Reviewed-on: https://go-review.googlesource.com/c/tools/+/710616 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Madeline Kalil <mkalil@google.com> Auto-Submit: Alan Donovan <adonovan@google.com>
1 parent f1d1a69 commit f8608b7

File tree

2 files changed

+50
-28
lines changed

2 files changed

+50
-28
lines changed

internal/typesinternal/varkind.go

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,22 @@
22
// Use of this source code is governed by a BSD-style
33
// license that can be found in the LICENSE file.
44

5-
package typesinternal
5+
//go:build go1.25
66

7-
// TODO(adonovan): when CL 645115 lands, define the go1.25 version of
8-
// this API that actually does something.
7+
package typesinternal
98

109
import "go/types"
1110

12-
type VarKind uint8
11+
type VarKind = types.VarKind
1312

1413
const (
15-
_ VarKind = iota // (not meaningful)
16-
PackageVar // a package-level variable
17-
LocalVar // a local variable
18-
RecvVar // a method receiver variable
19-
ParamVar // a function parameter variable
20-
ResultVar // a function result variable
21-
FieldVar // a struct field
14+
PackageVar = types.PackageVar
15+
LocalVar = types.LocalVar
16+
RecvVar = types.RecvVar
17+
ParamVar = types.ParamVar
18+
ResultVar = types.ResultVar
19+
FieldVar = types.FieldVar
2220
)
2321

24-
func (kind VarKind) String() string {
25-
return [...]string{
26-
0: "VarKind(0)",
27-
PackageVar: "PackageVar",
28-
LocalVar: "LocalVar",
29-
RecvVar: "RecvVar",
30-
ParamVar: "ParamVar",
31-
ResultVar: "ResultVar",
32-
FieldVar: "FieldVar",
33-
}[kind]
34-
}
35-
36-
// GetVarKind returns an invalid VarKind.
37-
func GetVarKind(v *types.Var) VarKind { return 0 }
38-
39-
// SetVarKind has no effect.
40-
func SetVarKind(v *types.Var, kind VarKind) {}
22+
func GetVarKind(v *types.Var) VarKind { return v.Kind() }
23+
func SetVarKind(v *types.Var, kind VarKind) { v.SetKind(kind) }
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// Copyright 2024 The Go Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style
3+
// license that can be found in the LICENSE file.
4+
5+
//go:build !go1.25
6+
7+
package typesinternal
8+
9+
import "go/types"
10+
11+
type VarKind uint8
12+
13+
const (
14+
_ VarKind = iota // (not meaningful)
15+
PackageVar // a package-level variable
16+
LocalVar // a local variable
17+
RecvVar // a method receiver variable
18+
ParamVar // a function parameter variable
19+
ResultVar // a function result variable
20+
FieldVar // a struct field
21+
)
22+
23+
func (kind VarKind) String() string {
24+
return [...]string{
25+
0: "VarKind(0)",
26+
PackageVar: "PackageVar",
27+
LocalVar: "LocalVar",
28+
RecvVar: "RecvVar",
29+
ParamVar: "ParamVar",
30+
ResultVar: "ResultVar",
31+
FieldVar: "FieldVar",
32+
}[kind]
33+
}
34+
35+
// GetVarKind returns an invalid VarKind.
36+
func GetVarKind(v *types.Var) VarKind { return 0 }
37+
38+
// SetVarKind has no effect.
39+
func SetVarKind(v *types.Var, kind VarKind) {}

0 commit comments

Comments
 (0)