Versions in this module Expand all Collapse all v1 v1.2.1 Mar 21, 2017 v1.2.0 Mar 21, 2017 Changes in this version + var EmptyIntInterval = IntInterval + var NInfinity = Z + var PInfinity = Z + func NewConstraint(y ssa.Value) aConstraint + func VertexString(v *Vertex) string + type ArraySliceConstraint struct + Lower ssa.Value + Upper ssa.Value + X ssa.Value + func (c *ArraySliceConstraint) Eval(g *Graph) Range + func (c *ArraySliceConstraint) Operands() []ssa.Value + func (c *ArraySliceConstraint) String() string + func (c ArraySliceConstraint) Y() ssa.Value + type ChannelChangeTypeConstraint struct + X ssa.Value + func (c *ChannelChangeTypeConstraint) Eval(g *Graph) Range + func (c *ChannelChangeTypeConstraint) Operands() []ssa.Value + func (c *ChannelChangeTypeConstraint) String() string + func (c ChannelChangeTypeConstraint) Y() ssa.Value + type ChannelInterval struct + Size IntInterval + func (c ChannelInterval) IsKnown() bool + func (c ChannelInterval) String() string + func (c ChannelInterval) Union(other Range) Range + type Constraint interface + Eval func(*Graph) Range + Operands func() []ssa.Value + String func() string + Y func() ssa.Value + func NewArraySliceConstraint(x, lower, upper, y ssa.Value) Constraint + func NewChannelChangeTypeConstraint(x, y ssa.Value) Constraint + func NewCopyConstraint(x, y ssa.Value) Constraint + func NewIntAddConstraint(a, b, y ssa.Value) Constraint + func NewIntConversionConstraint(x, y ssa.Value) Constraint + func NewIntIntersectionConstraint(a, b ssa.Value, op token.Token, ranges Ranges, y ssa.Value) Constraint + func NewIntIntervalConstraint(i IntInterval, y ssa.Value) Constraint + func NewIntMulConstraint(a, b, y ssa.Value) Constraint + func NewIntSubConstraint(a, b, y ssa.Value) Constraint + func NewMakeChannelConstraint(buffer, y ssa.Value) Constraint + func NewMakeSliceConstraint(size, y ssa.Value) Constraint + func NewPhiConstraint(vars []ssa.Value, y ssa.Value) Constraint + func NewSliceAppendConstraint(a, b, y ssa.Value) Constraint + func NewSliceIntersectionConstraint(x ssa.Value, i IntInterval, y ssa.Value) Constraint + func NewSliceIntervalConstraint(i IntInterval, y ssa.Value) Constraint + func NewSliceLengthConstraint(x, y ssa.Value) Constraint + func NewSliceSliceConstraint(x, lower, upper, y ssa.Value) Constraint + func NewStringConcatConstraint(a, b, y ssa.Value) Constraint + func NewStringIntersectionConstraint(a, b ssa.Value, op token.Token, ranges Ranges, y ssa.Value) Constraint + func NewStringIntervalConstraint(i IntInterval, y ssa.Value) Constraint + func NewStringLengthConstraint(x ssa.Value, y ssa.Value) Constraint + func NewStringSliceConstraint(x, lower, upper, y ssa.Value) Constraint + type CopyConstraint struct + X ssa.Value + func (c *CopyConstraint) Eval(g *Graph) Range + func (c *CopyConstraint) Operands() []ssa.Value + func (c *CopyConstraint) String() string + func (c CopyConstraint) Y() ssa.Value + type Edge struct + From *Vertex + To *Vertex + func (e Edge) String() string + type Future interface + Futures func() []ssa.Value + IsKnown func() bool + IsResolved func() bool + MarkResolved func() + MarkUnresolved func() + Resolve func() + type Graph struct + Edges []Edge + SCCs [][]*Vertex + Vertices map[interface{}]*Vertex + func BuildGraph(f *ssa.Function) *Graph + func (g *Graph) AddEdge(from, to interface{}, ctrl bool) + func (g *Graph) FindSCCs() + func (g *Graph) Range(x ssa.Value) Range + func (g *Graph) SetRange(x ssa.Value, r Range) + func (g *Graph) Solve() Ranges + func (g Graph) Graphviz() string + type IntAddConstraint struct + func (c IntAddConstraint) Y() ssa.Value + type IntArithmeticConstraint struct + A ssa.Value + B ssa.Value + Fn func(IntInterval, IntInterval) IntInterval + Op token.Token + func NewIntArithmeticConstraint(a, b, y ssa.Value, op token.Token, ...) *IntArithmeticConstraint + func (c *IntArithmeticConstraint) Eval(g *Graph) Range + func (c *IntArithmeticConstraint) Operands() []ssa.Value + func (c *IntArithmeticConstraint) String() string + func (c IntArithmeticConstraint) Y() ssa.Value + type IntConversionConstraint struct + X ssa.Value + func (c *IntConversionConstraint) Eval(g *Graph) Range + func (c *IntConversionConstraint) Operands() []ssa.Value + func (c *IntConversionConstraint) String() string + func (c IntConversionConstraint) Y() ssa.Value + type IntIntersectionConstraint struct + A ssa.Value + B ssa.Value + I IntInterval + Op token.Token + func (c *IntIntersectionConstraint) Eval(g *Graph) Range + func (c *IntIntersectionConstraint) Futures() []ssa.Value + func (c *IntIntersectionConstraint) IsKnown() bool + func (c *IntIntersectionConstraint) IsResolved() bool + func (c *IntIntersectionConstraint) MarkResolved() + func (c *IntIntersectionConstraint) MarkUnresolved() + func (c *IntIntersectionConstraint) Operands() []ssa.Value + func (c *IntIntersectionConstraint) Resolve() + func (c *IntIntersectionConstraint) String() string + func (c IntIntersectionConstraint) Y() ssa.Value + type IntInterval struct + Lower Z + Upper Z + func InfinityFor(v ssa.Value) IntInterval + func NewIntInterval(l, u Z) IntInterval + func (i IntInterval) Empty() bool + func (i IntInterval) IsKnown() bool + func (i IntInterval) IsMaxRange() bool + func (i1 IntInterval) Add(i2 IntInterval) IntInterval + func (i1 IntInterval) Intersection(i2 IntInterval) IntInterval + func (i1 IntInterval) Mul(i2 IntInterval) IntInterval + func (i1 IntInterval) String() string + func (i1 IntInterval) Sub(i2 IntInterval) IntInterval + func (i1 IntInterval) Union(other Range) Range + type IntIntervalConstraint struct + I IntInterval + func (c *IntIntervalConstraint) Eval(*Graph) Range + func (c *IntIntervalConstraint) String() string + func (c IntIntervalConstraint) Y() ssa.Value + func (s *IntIntervalConstraint) Operands() []ssa.Value + type IntMulConstraint struct + func (c IntMulConstraint) Y() ssa.Value + type IntSubConstraint struct + func (c IntSubConstraint) Y() ssa.Value + type MakeChannelConstraint struct + Buffer ssa.Value + func (c *MakeChannelConstraint) Eval(g *Graph) Range + func (c *MakeChannelConstraint) Operands() []ssa.Value + func (c *MakeChannelConstraint) String() string + func (c MakeChannelConstraint) Y() ssa.Value + type MakeSliceConstraint struct + Size ssa.Value + func (c *MakeSliceConstraint) Eval(g *Graph) Range + func (c *MakeSliceConstraint) Operands() []ssa.Value + func (c *MakeSliceConstraint) String() string + func (c MakeSliceConstraint) Y() ssa.Value + type PhiConstraint struct + Vars []ssa.Value + func (c *PhiConstraint) Eval(g *Graph) Range + func (c *PhiConstraint) Operands() []ssa.Value + func (c *PhiConstraint) String() string + func (c PhiConstraint) Y() ssa.Value + type Range interface + IsKnown func() bool + Union func(other Range) Range + type Ranges map[ssa.Value]Range + func (r Ranges) Get(x ssa.Value) Range + type SliceAppendConstraint struct + A ssa.Value + B ssa.Value + func (c *SliceAppendConstraint) Eval(g *Graph) Range + func (c *SliceAppendConstraint) Operands() []ssa.Value + func (c *SliceAppendConstraint) String() string + func (c SliceAppendConstraint) Y() ssa.Value + type SliceIntersectionConstraint struct + I IntInterval + X ssa.Value + func (c *SliceIntersectionConstraint) Eval(g *Graph) Range + func (c *SliceIntersectionConstraint) Operands() []ssa.Value + func (c *SliceIntersectionConstraint) String() string + func (c SliceIntersectionConstraint) Y() ssa.Value + type SliceInterval struct + Length IntInterval + func (s SliceInterval) IsKnown() bool + func (s SliceInterval) String() string + func (s SliceInterval) Union(other Range) Range + type SliceIntervalConstraint struct + I IntInterval + func (c *SliceIntervalConstraint) Eval(*Graph) Range + func (c *SliceIntervalConstraint) String() string + func (c SliceIntervalConstraint) Y() ssa.Value + func (s *SliceIntervalConstraint) Operands() []ssa.Value + type SliceLengthConstraint struct + X ssa.Value + func (c *SliceLengthConstraint) Eval(g *Graph) Range + func (c *SliceLengthConstraint) Operands() []ssa.Value + func (c *SliceLengthConstraint) String() string + func (c SliceLengthConstraint) Y() ssa.Value + type SliceSliceConstraint struct + Lower ssa.Value + Upper ssa.Value + X ssa.Value + func (c *SliceSliceConstraint) Eval(g *Graph) Range + func (c *SliceSliceConstraint) Operands() []ssa.Value + func (c *SliceSliceConstraint) String() string + func (c SliceSliceConstraint) Y() ssa.Value + type StringConcatConstraint struct + A ssa.Value + B ssa.Value + func (c StringConcatConstraint) Eval(g *Graph) Range + func (c StringConcatConstraint) Operands() []ssa.Value + func (c StringConcatConstraint) String() string + func (c StringConcatConstraint) Y() ssa.Value + type StringIntersectionConstraint struct + A ssa.Value + B ssa.Value + I IntInterval + Op token.Token + func (c *StringIntersectionConstraint) Eval(g *Graph) Range + func (c *StringIntersectionConstraint) Futures() []ssa.Value + func (c *StringIntersectionConstraint) IsKnown() bool + func (c *StringIntersectionConstraint) IsResolved() bool + func (c *StringIntersectionConstraint) MarkResolved() + func (c *StringIntersectionConstraint) MarkUnresolved() + func (c *StringIntersectionConstraint) Operands() []ssa.Value + func (c *StringIntersectionConstraint) Resolve() + func (c *StringIntersectionConstraint) String() string + func (c StringIntersectionConstraint) Y() ssa.Value + type StringInterval struct + Length IntInterval + func (s StringInterval) IsKnown() bool + func (s StringInterval) String() string + func (s StringInterval) Union(other Range) Range + type StringIntervalConstraint struct + I IntInterval + func (c *StringIntervalConstraint) Eval(*Graph) Range + func (c *StringIntervalConstraint) String() string + func (c StringIntervalConstraint) Y() ssa.Value + func (s *StringIntervalConstraint) Operands() []ssa.Value + type StringLengthConstraint struct + X ssa.Value + func (c *StringLengthConstraint) Eval(g *Graph) Range + func (c *StringLengthConstraint) Operands() []ssa.Value + func (c *StringLengthConstraint) String() string + func (c StringLengthConstraint) Y() ssa.Value + type StringSliceConstraint struct + Lower ssa.Value + Upper ssa.Value + X ssa.Value + func (c *StringSliceConstraint) Eval(g *Graph) Range + func (c *StringSliceConstraint) Operands() []ssa.Value + func (c *StringSliceConstraint) String() string + func (c StringSliceConstraint) Y() ssa.Value + type Vertex struct + SCC int + Succs []Edge + Value interface{} + type Z struct + func ConstantToZ(c constant.Value) Z + func MaxZ(zs ...Z) Z + func MinZ(zs ...Z) Z + func NewBigZ(n *big.Int) Z + func NewZ(n int64) Z + func (z1 Z) Add(z2 Z) Z + func (z1 Z) Cmp(z2 Z) int + func (z1 Z) Infinite() bool + func (z1 Z) Mul(z2 Z) Z + func (z1 Z) Negate() Z + func (z1 Z) Sign() int + func (z1 Z) String() string + func (z1 Z) Sub(z2 Z) Z + type Zs []Z + func (zs Zs) Len() int + func (zs Zs) Less(i int, j int) bool + func (zs Zs) Swap(i int, j int) Incompatible versions in this module v2.0.11+incompatible Sep 9, 2018 v2.0.10+incompatible Sep 6, 2018 v2.0.9+incompatible Sep 6, 2018 v2.0.8+incompatible Sep 5, 2018 v2.0.7+incompatible Aug 29, 2018 v2.0.6+incompatible Jun 25, 2018 v2.0.5+incompatible Feb 16, 2018 v2.0.4+incompatible Feb 14, 2018 v2.0.3+incompatible Jan 9, 2018 v2.0.2+incompatible Dec 7, 2017 v2.0.1+incompatible Dec 5, 2017 v2.0.0+incompatible Dec 5, 2017