You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CL 10821 added generation of nil pointers to terminate recursive structures.
However, the following still does not terminate:
package main
import (
"reflect""testing/quick"
)
typeRstruct {
N []*R
}
funcmain() {
quick.Value(reflect.TypeOf(&R{}), nil)
}
The problem with slices (or maps) is the competition between expansion by a factor 'complexSize' and termination with probability '1/complexSize'. Some sort of automatic shrinking of the expansion factor would tip the weight in favour of termination.
To cover all problematic combinations of recursive types one should probably test a monster like the following:
CL 10821 added generation of nil pointers to terminate recursive structures.
However, the following still does not terminate:
The problem with slices (or maps) is the competition between expansion by a factor 'complexSize' and termination with probability '1/complexSize'. Some sort of automatic shrinking of the expansion factor would tip the weight in favour of termination.
To cover all problematic combinations of recursive types one should probably test a monster like the following:
The text was updated successfully, but these errors were encountered: