checker

package
v0.2.3 Latest Latest
Warning

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

Go to latest
Published: Aug 13, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package checker resolves names, infers local declaration types, validates assignments/returns, and records a type for every portable expression.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Attempt added in v0.2.0

type Attempt struct {
	SuccessType types.Type
	ErrorType   types.Type
	ResultType  types.Type
	Result      ast.Expression
}

type CaseBinding

type CaseBinding struct {
	Name  string
	Field EnumField
}

type CaseNarrowing added in v0.2.3

type CaseNarrowing struct {
	Name     string
	Branches map[ast.Expression]types.Type
	Else     types.Type
}

type CasePattern

type CasePattern struct {
	Variant     EnumVariant
	Bindings    []CaseBinding
	PayloadEnum bool
	MatchType   types.Type
	TypeUnion   bool
}

type Checker

type Checker struct {
	// contains filtered or unexported fields
}

type CodecApplication

type CodecApplication struct {
	Operation string
	Schema    CodecSchema
}

type CodecField

type CodecField struct {
	Name     string
	WireName string
	Schema   *CodecSchema
}

type CodecRawValue added in v0.2.1

type CodecRawValue struct {
	Member string
	Raw    string
}

type CodecSchema

type CodecSchema struct {
	Type      types.Type
	Kind      string
	Module    string
	Reference *resolver.Binding
	Element   *CodecSchema
	Fields    []CodecField
	RawType   types.Type
	RawValues []CodecRawValue
}

type EnumCall added in v0.2.1

type EnumCall struct {
	EnumName  string
	Method    string
	Receiver  ast.Expression
	Reference *resolver.Binding
	Raw       *RawEnum
}

type EnumField

type EnumField struct {
	Name string
	Type types.Type
}

type EnumVariant

type EnumVariant struct {
	EnumName      string
	Name          string
	Fields        []EnumField
	TypeArguments []types.Type
	Reference     *resolver.Binding
}

type GenericApplication

type GenericApplication struct {
	Name             string
	Kind             string
	Owner            string
	TypeParameters   []string
	TypeArguments    []types.Type
	OwnerArguments   []types.Type
	Parameters       []types.Type
	ParameterBridges []string
	ReturnType       types.Type
	FailureType      types.Type
	Required         int
	Variadic         bool
}

type NativeEffectBridge added in v0.2.3

type NativeEffectBridge struct {
	Kind string
	Type types.Type
}

type Options added in v0.1.4

type Options struct {
	AllowUnusedImports    bool
	AllowUnhandledEffects bool
}

type RawEnum added in v0.2.1

type RawEnum struct {
	Type   types.Type
	Values map[string]RawEnumValue
}

type RawEnumValue added in v0.2.1

type RawEnumValue struct {
	Raw  string
	Type types.Type
}

type Result

type Result struct {
	Program             *ast.Program
	Expressions         map[ast.Expression]types.Type
	Conversions         map[ast.Expression]types.Type
	NativeEffectBridges map[ast.Expression]NativeEffectBridge
	Variables           map[*ast.VariableStatement]types.Type
	Iterations          map[*ast.IterationExpression]types.Type
	IterationBindings   map[*ast.IterationExpression][]types.Type
	LexicalBindings     map[*ast.Identifier]bool
	Constants           map[ast.Expression]string
	ConstantOwners      map[*ast.VariableStatement]string
	Resolution          resolver.Result
	References          map[ast.Expression]resolver.Binding
	EnumConstructors    map[*ast.CallExpression]EnumVariant
	CasePatterns        map[ast.Expression]CasePattern
	CaseNarrowings      map[*ast.CaseStatement]CaseNarrowing
	GenericApplications map[*ast.GenericExpression]GenericApplication
	CodecApplications   map[*ast.CallExpression]CodecApplication
	RawEnums            map[*ast.EnumStatement]RawEnum
	EnumCalls           map[*ast.CallExpression]EnumCall
	TypeAliases         map[*ast.TypeAliasStatement]TypeAlias
	Attempts            map[*ast.AttemptExpression]Attempt
	ExpressionEffects   map[ast.Expression]types.Type
	UnhandledEffects    map[ast.Expression]bool
	StructuredBlocks    map[*ast.CallExpression]StructuredBlock
	ExternalMembers     map[ast.Expression]declaration.Member
	ClassFieldAccesses  map[*ast.MemberExpression]bool
	UnionMemberAccesses map[*ast.MemberExpression][]UnionMemberAccess
	RuntimeDependencies map[string]*stdlib.Package
	ImportUses          map[*ast.ImportStatement]map[string]bool
}

func Check

func Check(program *ast.Program, resolution resolver.Result) (Result, []diagnostic.Diagnostic)

func CheckWithOptions added in v0.1.4

func CheckWithOptions(program *ast.Program, resolution resolver.Result, options Options) (Result, []diagnostic.Diagnostic)

type StructuredBlock added in v0.2.0

type StructuredBlock struct {
	Parameters []types.Type
	Return     types.Type
	Result     ast.Expression
}

type TypeAlias added in v0.2.0

type TypeAlias struct {
	Target   types.Type
	Variants []EnumVariant
}

type UnionMemberAccess added in v0.2.3

type UnionMemberAccess struct {
	Alternative types.Type
	Member      types.Type
}

Jump to

Keyboard shortcuts

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