contract

package
v0.0.0-...-bb13fef Latest Latest
Warning

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

Go to latest
Published: May 18, 2019 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package contract provides contract related objects

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Ensures

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

Ensures is a @ensures clause of a contract

func NewEnsures

func NewEnsures(expr string) Ensures

NewEnsures creates a Ensures object @ensures expr != ""

func (Ensures) ExpandedExpression

func (r Ensures) ExpandedExpression() string

ExpandedExpression yields the expanded ensures' expression

func (Ensures) String

func (r Ensures) String() string

type FuncContract

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

FuncContract represents a contract associated to a function

func NewFuncContract

func NewFuncContract(target *ast.FuncDecl) (c FuncContract)

NewFuncContract creates a FuncContract @requires target != nil @ensures c.target == target @ensures len(c.requires) == 0 @ensures len(c.ensures) == 0 @ensures len(c.imports) == 0

func (*FuncContract) AddEnsures

func (c *FuncContract) AddEnsures(e Ensures)

AddEnsures adds a ensures to this contract @ensures len(c.ensures) == len(@old(c.ensures)) + 1 @ensures c.ensures[len(c.ensures)-1] == e

func (*FuncContract) AddImport

func (c *FuncContract) AddImport(path string)

AddImport adds an import to this contract

func (*FuncContract) AddRequires

func (c *FuncContract) AddRequires(r Requires)

AddRequires adds a requires to this contract @ensures len(c.requires) == len(@old(c.requires)) + 1 @ensures c.requires[len(c.requires)-1] == r

func (*FuncContract) Ensures

func (c *FuncContract) Ensures() (r []Ensures)

Ensures yields ensures clauses of this contract @ensures len(r) == len(c.ensures)

func (*FuncContract) Imports

func (c *FuncContract) Imports() map[string]struct{}

Imports returns imports required by this contract

func (*FuncContract) Requires

func (c *FuncContract) Requires() (r []Requires)

Requires yields requires clauses of this contract @ensures len(r) == len(c.requires)

func (*FuncContract) Target

func (c *FuncContract) Target() (t *ast.FuncDecl)

Target yields the function declaration to which this contract is attached to @ensures t == c.target

type Requires

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

Requires is a @requires clause of a contract

func NewRequires

func NewRequires(expr string) Requires

NewRequires creates a Requires object @requires expr != ""

func (Requires) ExpandedExpression

func (r Requires) ExpandedExpression() string

ExpandedExpression yields the expanded requires' expression

func (Requires) String

func (r Requires) String() string

Directories

Path Synopsis
Package parser implements contract parsing
Package parser implements contract parsing

Jump to

Keyboard shortcuts

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