service/dap: variables response must not have null variables array (#2592)
Co-authored-by: Polina Sokolova <polinasok@users.noreply.github.com>
This commit is contained in:
parent
890cde3d4c
commit
9df8f1499f
@ -1716,7 +1716,7 @@ func (s *Server) onVariablesRequest(request *dap.VariablesRequest) {
|
||||
}
|
||||
}
|
||||
|
||||
var children []dap.Variable
|
||||
children := []dap.Variable{} // must return empty array, not null, if no children
|
||||
if request.Arguments.Filter == "named" || request.Arguments.Filter == "" {
|
||||
named, err := s.metadataToDAPVariables(v)
|
||||
if err != nil {
|
||||
@ -1769,7 +1769,7 @@ func (s *Server) childrenToDAPVariables(v *fullyQualifiedVariable) ([]dap.Variab
|
||||
// TODO(polina): consider convertVariableToString instead of convertVariable
|
||||
// and avoid unnecessary creation of variable handles when this is called to
|
||||
// compute evaluate names when this is called from onSetVariableRequest.
|
||||
var children []dap.Variable
|
||||
children := []dap.Variable{} // must return empty array, not null, if no children
|
||||
|
||||
switch v.Kind {
|
||||
case reflect.Map:
|
||||
@ -1917,7 +1917,7 @@ func getNamedVariableCount(v *proc.Variable) int {
|
||||
// metadataToDAPVariables returns the DAP presentation of the referenced variable's metadata.
|
||||
// These are included as named variables
|
||||
func (s *Server) metadataToDAPVariables(v *fullyQualifiedVariable) ([]dap.Variable, error) {
|
||||
var children []dap.Variable
|
||||
children := []dap.Variable{} // must return empty array, not null, if no children
|
||||
|
||||
if isListOfBytesOrRunes(v.Variable) {
|
||||
// Return the string value of []byte or []rune.
|
||||
|
@ -658,6 +658,9 @@ func checkScope(t *testing.T, got *dap.ScopesResponse, i int, name string, varRe
|
||||
// numChildren - number of variables/fields/elements of this variable
|
||||
func checkChildren(t *testing.T, got *dap.VariablesResponse, parentName string, numChildren int) {
|
||||
t.Helper()
|
||||
if got.Body.Variables == nil {
|
||||
t.Errorf("\ngot %s children=%#v want []", parentName, got.Body.Variables)
|
||||
}
|
||||
if len(got.Body.Variables) != numChildren {
|
||||
t.Errorf("\ngot len(%s)=%d (children=%#v)\nwant len=%d", parentName, len(got.Body.Variables), got.Body.Variables, numChildren)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user