Help us shape the future of Go! Take the 2026 Go Developer Survey

decls

package
v0.31.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 7, 2026 License: Apache-2.0, BSD-3-Clause Imports: 3 Imported by: 0

Documentation

Overview

Package decls provides helpers for creating variable and function declarations.

Index

Constants

This section is empty.

Variables

View Source
var (
	// Error type used to communicate issues during type-checking.
	Error = &exprpb.Type{
		TypeKind: &exprpb.Type_Error{
			Error: &emptypb.Empty{}}}

	// Dyn is a top-type used to represent any value.
	Dyn = &exprpb.Type{
		TypeKind: &exprpb.Type_Dyn{
			Dyn: &emptypb.Empty{}}}
)

Commonly used types.

Well-known types. TODO: Replace with an abstract type registry.

Functions

func NewAbstractType

func NewAbstractType(name string, paramTypes ...*exprpb.Type) *exprpb.Type

NewAbstractType creates an abstract type declaration which references a proto message name and may also include type parameters.

func NewConst added in v0.5.0

func NewConst(name string, t *exprpb.Type, v *exprpb.Constant) *exprpb.Decl

NewConst creates a constant identifier with a CEL constant literal value.

func NewFunction

func NewFunction(name string,
	overloads ...*exprpb.Decl_FunctionDecl_Overload) *exprpb.Decl

NewFunction creates a named function declaration with one or more overloads.

func NewFunctionType

func NewFunctionType(resultType *exprpb.Type,
	argTypes ...*exprpb.Type) *exprpb.Type

NewFunctionType creates a function invocation contract, typically only used by type-checking steps after overload resolution.

func NewFunctionWithDoc added in v0.25.0

func NewFunctionWithDoc(name, doc string,
	overloads ...*exprpb.Decl_FunctionDecl_Overload) *exprpb.Decl

NewFunctionWithDoc creates a named function declaration with a description and one or more overloads.

func NewIdent deprecated

func NewIdent(name string, t *exprpb.Type, v *exprpb.Constant) *exprpb.Decl

NewIdent creates a named identifier declaration with an optional literal value.

Literal values are typically only associated with enum identifiers.

Deprecated: Use NewVar or NewConst instead.

func NewInstanceOverload

func NewInstanceOverload(id string, argTypes []*exprpb.Type, resultType *exprpb.Type) *exprpb.Decl_FunctionDecl_Overload

NewInstanceOverload creates a instance function overload contract. First element of argTypes is instance.

func NewListType

func NewListType(elem *exprpb.Type) *exprpb.Type

NewListType generates a new list with elements of a certain type.

func NewMapType

func NewMapType(key *exprpb.Type, value *exprpb.Type) *exprpb.Type

NewMapType generates a new map with typed keys and values.

func NewObjectType

func NewObjectType(typeName string) *exprpb.Type

NewObjectType creates an object type for a qualified type name.

func NewOptionalType added in v0.13.0

func NewOptionalType(paramType *exprpb.Type) *exprpb.Type

NewOptionalType constructs an abstract type indicating that the parameterized type may be contained within the object.

func NewOverload

func NewOverload(id string, argTypes []*exprpb.Type, resultType *exprpb.Type) *exprpb.Decl_FunctionDecl_Overload

NewOverload creates a function overload declaration which contains a unique overload id as well as the expected argument and result types. Overloads must be aggregated within a Function declaration.

func NewParameterizedInstanceOverload

func NewParameterizedInstanceOverload(id string,
	argTypes []*exprpb.Type,
	resultType *exprpb.Type,
	typeParams []string) *exprpb.Decl_FunctionDecl_Overload

NewParameterizedInstanceOverload creates a parametric function instance overload type.

func NewParameterizedOverload

func NewParameterizedOverload(id string,
	argTypes []*exprpb.Type,
	resultType *exprpb.Type,
	typeParams []string) *exprpb.Decl_FunctionDecl_Overload

NewParameterizedOverload creates a parametric function overload type.

func NewPrimitiveType

func NewPrimitiveType(primitive exprpb.Type_PrimitiveType) *exprpb.Type

NewPrimitiveType creates a type for a primitive value. See the var declarations for Int, Uint, etc.

func NewTypeParamType

func NewTypeParamType(name string) *exprpb.Type

NewTypeParamType creates a type corresponding to a named, contextual parameter.

func NewTypeType

func NewTypeType(nested *exprpb.Type) *exprpb.Type

NewTypeType creates a new type designating a type.

func NewVar added in v0.5.0

func NewVar(name string, t *exprpb.Type) *exprpb.Decl

NewVar creates a variable identifier.

func NewVarWithDoc added in v0.25.0

func NewVarWithDoc(name string, t *exprpb.Type, desc string) *exprpb.Decl

NewVarWithDoc creates a variable identifier with a type and a description string.

func NewWellKnownType

func NewWellKnownType(wellKnown exprpb.Type_WellKnownType) *exprpb.Type

NewWellKnownType creates a type corresponding to a protobuf well-known type value.

func NewWrapperType

func NewWrapperType(wrapped *exprpb.Type) *exprpb.Type

NewWrapperType creates a wrapped primitive type instance. Wrapped types are roughly equivalent to a nullable, or optionally valued type.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL