Handle pointer types in reflectutil.Convert()
This commit is contained in:
		@@ -36,6 +36,18 @@ func Convert(in reflect.Value, toType reflect.Type) (reflect.Value, error) {
 | 
				
			|||||||
		return in, nil
 | 
							return in, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// If the output type is a pointer to the input type
 | 
				
			||||||
 | 
						if reflect.PtrTo(inType) == toType {
 | 
				
			||||||
 | 
							// Return pointer to input
 | 
				
			||||||
 | 
							return in.Addr(), nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// If input is a pointer pointing to the output type
 | 
				
			||||||
 | 
						if inType.Kind() == reflect.Ptr && inType.Elem() == toType {
 | 
				
			||||||
 | 
							// Return value being pointed at by input
 | 
				
			||||||
 | 
							return reflect.Indirect(in), nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// If input can be converted to desired type, convert and return
 | 
						// If input can be converted to desired type, convert and return
 | 
				
			||||||
	if in.CanConvert(toType) {
 | 
						if in.CanConvert(toType) {
 | 
				
			||||||
		return in.Convert(toType), nil
 | 
							return in.Convert(toType), nil
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user