For #46477.
Change-Id: Ia3558f9d2bf43fdd9e3618bd9f800d268e13b367
Reviewed-on: https://go-review.googlesource.com/c/go/+/586956
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Robert Griesemer <gri@google.com>
"cmd/compile/internal/syntax"
"fmt"
"go/constant"
+ "internal/buildcfg"
. "internal/types/errors"
)
// handle type parameters even if not allowed (Alias type is supported)
if tparam0 != nil {
+ if !versionErr && !buildcfg.Experiment.AliasTypeParams {
+ check.error(tdecl, UnsupportedFeature, "generic type alias requires GOEXPERIMENT=aliastypeparams")
+ versionErr = true
+ }
check.openScope(tdecl, "type parameters")
defer check.closeScope()
check.collectTypeParams(&alias.tparams, tdecl.TParamList)
"go/ast"
"go/constant"
"go/token"
+ "internal/buildcfg"
. "internal/types/errors"
)
// handle type parameters even if not allowed (Alias type is supported)
if tparam0 != nil {
+ if !versionErr && !buildcfg.Experiment.AliasTypeParams {
+ check.error(tdecl, UnsupportedFeature, "generic type alias requires GOEXPERIMENT=aliastypeparams")
+ versionErr = true
+ }
check.openScope(tdecl, "type parameters")
defer check.closeScope()
check.collectTypeParams(&alias.tparams, tdecl.TypeParams)
-// -lang=go1.23 -gotypesalias=1
+// -lang=go1.23 -gotypesalias=1 -goexperiment=aliastypeparams
// Copyright 2024 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style