aboutsummaryrefslogtreecommitdiffstats
path: root/prog/rand.go
diff options
context:
space:
mode:
authorNecip Fazil Yildiran <necip@google.com>2020-08-10 14:43:38 +0000
committerDmitry Vyukov <dvyukov@google.com>2020-08-13 13:50:25 +0200
commitf5442bde55872d703f184f8617329f706bad8149 (patch)
tree14e121020d6aacd857b80351f01546818f19a74b /prog/rand.go
parentee7cb8b69583db417b187b53f4765c3a403cd4cf (diff)
pkg, prog: add per-field direction attribute
Diffstat (limited to 'prog/rand.go')
-rw-r--r--prog/rand.go6
1 files changed, 3 insertions, 3 deletions
diff --git a/prog/rand.go b/prog/rand.go
index 4dfff97e5..05a9c30df 100644
--- a/prog/rand.go
+++ b/prog/rand.go
@@ -593,7 +593,7 @@ func (r *randGen) generateArgs(s *state, fields []Field, dir Dir) ([]Arg, []*Cal
// Generate all args. Size args have the default value 0 for now.
for i, field := range fields {
- arg, calls1 := r.generateArg(s, field.Type, dir)
+ arg, calls1 := r.generateArg(s, field.Type, field.Dir(dir))
if arg == nil {
panic(fmt.Sprintf("generated arg is nil for field '%v', fields: %+v", field.Type.Name(), fields))
}
@@ -784,8 +784,8 @@ func (a *StructType) generate(r *randGen, s *state, dir Dir) (arg Arg, calls []*
func (a *UnionType) generate(r *randGen, s *state, dir Dir) (arg Arg, calls []*Call) {
index := r.Intn(len(a.Fields))
- optType := a.Fields[index].Type
- opt, calls := r.generateArg(s, optType, dir)
+ optType, optDir := a.Fields[index].Type, a.Fields[index].Dir(dir)
+ opt, calls := r.generateArg(s, optType, optDir)
return MakeUnionArg(a, dir, opt, index), calls
}