aboutsummaryrefslogtreecommitdiff
path: root/vendor/honnef.co/go/tools/staticcheck/vrp/channel.go
diff options
context:
space:
mode:
authorJoseph Richey <joerichey@google.com>2018-08-30 13:41:49 -0700
committerGitHub <noreply@github.com>2018-08-30 13:41:49 -0700
commit0f451a722918f39fa07bd9337e4a14ca154b13ae (patch)
tree9868ffed8cb74357a06e63b88c56d71b13b415af /vendor/honnef.co/go/tools/staticcheck/vrp/channel.go
parent1e1b67dae6c3ae3b5acb5ce377b01b286c3e676b (diff)
parent1c9bafdec78b8f238a82314b6d9c566a951486c2 (diff)
Merge pull request #107 from google/mod
Use Go Modules and support Go 1.11 building
Diffstat (limited to 'vendor/honnef.co/go/tools/staticcheck/vrp/channel.go')
-rw-r--r--vendor/honnef.co/go/tools/staticcheck/vrp/channel.go73
1 files changed, 0 insertions, 73 deletions
diff --git a/vendor/honnef.co/go/tools/staticcheck/vrp/channel.go b/vendor/honnef.co/go/tools/staticcheck/vrp/channel.go
deleted file mode 100644
index c8fbacb..0000000
--- a/vendor/honnef.co/go/tools/staticcheck/vrp/channel.go
+++ /dev/null
@@ -1,73 +0,0 @@
-package vrp
-
-import (
- "fmt"
-
- "honnef.co/go/tools/ssa"
-)
-
-type ChannelInterval struct {
- Size IntInterval
-}
-
-func (c ChannelInterval) Union(other Range) Range {
- i, ok := other.(ChannelInterval)
- if !ok {
- i = ChannelInterval{EmptyIntInterval}
- }
- if c.Size.Empty() || !c.Size.IsKnown() {
- return i
- }
- if i.Size.Empty() || !i.Size.IsKnown() {
- return c
- }
- return ChannelInterval{
- Size: c.Size.Union(i.Size).(IntInterval),
- }
-}
-
-func (c ChannelInterval) String() string {
- return c.Size.String()
-}
-
-func (c ChannelInterval) IsKnown() bool {
- return c.Size.IsKnown()
-}
-
-type MakeChannelConstraint struct {
- aConstraint
- Buffer ssa.Value
-}
-type ChannelChangeTypeConstraint struct {
- aConstraint
- X ssa.Value
-}
-
-func NewMakeChannelConstraint(buffer, y ssa.Value) Constraint {
- return &MakeChannelConstraint{NewConstraint(y), buffer}
-}
-func NewChannelChangeTypeConstraint(x, y ssa.Value) Constraint {
- return &ChannelChangeTypeConstraint{NewConstraint(y), x}
-}
-
-func (c *MakeChannelConstraint) Operands() []ssa.Value { return []ssa.Value{c.Buffer} }
-func (c *ChannelChangeTypeConstraint) Operands() []ssa.Value { return []ssa.Value{c.X} }
-
-func (c *MakeChannelConstraint) String() string {
- return fmt.Sprintf("%s = make(chan, %s)", c.Y().Name, c.Buffer.Name())
-}
-func (c *ChannelChangeTypeConstraint) String() string {
- return fmt.Sprintf("%s = changetype(%s)", c.Y().Name, c.X.Name())
-}
-
-func (c *MakeChannelConstraint) Eval(g *Graph) Range {
- i, ok := g.Range(c.Buffer).(IntInterval)
- if !ok {
- return ChannelInterval{NewIntInterval(NewZ(0), PInfinity)}
- }
- if i.Lower.Sign() == -1 {
- i.Lower = NewZ(0)
- }
- return ChannelInterval{i}
-}
-func (c *ChannelChangeTypeConstraint) Eval(g *Graph) Range { return g.Range(c.X) }