added 2 more test cases

This commit is contained in:
Andrew LeFevre
2020-08-18 17:17:34 -04:00
parent ccfb1f895a
commit beeb73cc56
3 changed files with 77 additions and 0 deletions
+1
View File
@@ -694,6 +694,7 @@ func (r *objReader) parseObject(prefix []byte, returnReader bool) (*goobj2.Reade
}
// Resolve missing inlined function names
// TODO: will this work when inline functions are from user/third party imports?
objReaders := make([]*goobj2.Reader, len(r.p.Packages)-1)
for _, inl := range inlFuncsToResolve {
if pkgIdx := inl.Func.PkgIdx; objReaders[pkgIdx-1] == nil {
+33
View File
@@ -0,0 +1,33 @@
package main
import (
"bytes"
"fmt"
"go/format"
"go/parser"
"go/token"
"log"
)
func main() {
const expr = "(6+2*3)/4"
// parser.ParseExpr parses the argument and returns the
// corresponding ast.Node.
node, err := parser.ParseExpr(expr)
if err != nil {
log.Fatal(err)
}
// Create a FileSet for node. Since the node does not come
// from a real source file, fset will be empty.
fset := token.NewFileSet()
var buf bytes.Buffer
err = format.Node(&buf, fset, node)
if err != nil {
log.Fatal(err)
}
fmt.Println(buf.String())
}
+43
View File
@@ -0,0 +1,43 @@
package main
import (
"bytes"
"encoding/json"
"fmt"
"reflect"
)
func main() {
typ := reflect.StructOf([]reflect.StructField{
{
Name: "Height",
Type: reflect.TypeOf(float64(0)),
Tag: `json:"height"`,
},
{
Name: "Age",
Type: reflect.TypeOf(int(0)),
Tag: `json:"age"`,
},
})
v := reflect.New(typ).Elem()
v.Field(0).SetFloat(0.4)
v.Field(1).SetInt(2)
s := v.Addr().Interface()
w := new(bytes.Buffer)
if err := json.NewEncoder(w).Encode(s); err != nil {
panic(err)
}
fmt.Printf("value: %+v\n", s)
fmt.Printf("json: %s", w.Bytes())
r := bytes.NewReader([]byte(`{"height":1.5,"age":10}`))
if err := json.NewDecoder(r).Decode(s); err != nil {
panic(err)
}
fmt.Printf("value: %+v\n", s)
}