mode := syntax.CheckBranches
if supportsGenerics {
- mode |= syntax.AllowGenerics | syntax.AllowTypeSets
+ mode |= syntax.AllowGenerics
}
// Limit the number of simultaneously open files.
var mode Mode
if strings.HasSuffix(filename, ".go2") {
- mode = AllowGenerics | AllowTypeSets
+ mode = AllowGenerics
}
ParseFile(filename, func(err error) {
e, ok := err.(Error)
}
// type set notation is ok in type parameter lists
- typeSetsOk := p.mode&AllowTypeSets != 0 && follow == _Rbrack
+ typeSetsOk := follow == _Rbrack
pos := p.pos()
if name != nil {
)
func TestParse(t *testing.T) {
- ParseFile(*src_, func(err error) { t.Error(err) }, nil, AllowGenerics|AllowTypeSets)
+ ParseFile(*src_, func(err error) { t.Error(err) }, nil, AllowGenerics)
}
func TestVerify(t *testing.T) {
- ast, err := ParseFile(*src_, func(err error) { t.Error(err) }, nil, AllowGenerics|AllowTypeSets)
+ ast, err := ParseFile(*src_, func(err error) { t.Error(err) }, nil, AllowGenerics)
if err != nil {
return // error already reported
}
for _, fi := range list {
name := fi.Name()
if !fi.IsDir() && !strings.HasPrefix(name, ".") {
- ParseFile(filepath.Join(dir, name), func(err error) { t.Error(err) }, nil, AllowGenerics|AllowTypeSets)
+ ParseFile(filepath.Join(dir, name), func(err error) { t.Error(err) }, nil, AllowGenerics)
}
}
}
"package p; func (*R[A, B, C]) _()",
"package p; func (_ *R[A, B, C]) _()",
- // type constraint literals with elided interfaces (only if AllowTypeSets is set)
+ // type constraint literals with elided interfaces
"package p; func _[P ~int, Q int | string]() {}",
"package p; func _[P struct{f int}, Q *P]() {}",
func TestPrintString(t *testing.T) {
for _, want := range stringTests {
- ast, err := Parse(nil, strings.NewReader(want), nil, nil, AllowGenerics|AllowTypeSets)
+ ast, err := Parse(nil, strings.NewReader(want), nil, nil, AllowGenerics)
if err != nil {
t.Error(err)
continue
const (
CheckBranches Mode = 1 << iota // check correct use of labels, break, continue, and goto statements
AllowGenerics
- AllowTypeSets // requires AllowGenerics; remove once #48424 is decided
)
// Error describes a syntax error. Error implements the error interface.
var mode syntax.Mode
if strings.HasSuffix(filenames[0], ".go2") {
- mode |= syntax.AllowGenerics | syntax.AllowTypeSets
+ mode |= syntax.AllowGenerics
}
// parse files and collect parser errors
files, errlist := parseFiles(t, filenames, mode)