code: func (v *evalVisitor) partialContext(node *ast.PartialStatement) reflect.Value {
  	if nb := len(node.Params); nb > 1 {
  		v.errorf("Unsupported number of partial arguments: %d", nb)
  	}
  
  	if (len(node.Params) > 0) && (node.Hash != nil) {
  		v.errorf("Passing both context and named parameters to a partial is not allowed")
  	}
  
  	if len(node.Params) == 1 {
  		return reflect.ValueOf(node.Params[0].Accept(v))
  	}
  
  	if node.Hash != nil {
  		hash, _ := node.Hash.Accept(v).(map[string]interface{})
  		return reflect.ValueOf(hash)
  	}
  
  	return zero
  }
docs: // partialContext computes partial context