From 9b70a62625f83c41e60788832c92e8922a204075 Mon Sep 17 00:00:00 2001 From: xushiwei Date: Fri, 8 Mar 2024 20:38:01 +0800 Subject: [PATCH 1/3] unused params --- ast.go | 6 +++--- c.go | 2 +- codebuild.go | 6 +++--- template.go | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ast.go b/ast.go index c2d306a9..30531ce0 100644 --- a/ast.go +++ b/ast.go @@ -789,7 +789,7 @@ func matchTypeCast(pkg *Package, typ types.Type, fn *internal.Elem, args []*inte o := t.Obj() if at := o.Pkg(); at != nil { tname := o.Name() - if checkUntypedOverflows(pkg, at.Scope(), tname, args[0]) { + if checkUntypedOverflows(at.Scope(), tname, args[0]) { src, pos := pkg.cb.loadExpr(args[0].Src) err = pkg.cb.newCodeError(pos, fmt.Sprintf("cannot convert %v (untyped int constant %v) to type %v", src, args[0].CVal, tname)) return @@ -815,7 +815,7 @@ func matchTypeCast(pkg *Package, typ types.Type, fn *internal.Elem, args []*inte name := tname + "_Cast" if cast := scope.Lookup(name); cast != nil { if len(args) == 1 && args[0].CVal != nil { - if checkUntypedOverflows(pkg, scope, tname, args[0]) { + if checkUntypedOverflows(scope, tname, args[0]) { src, pos := pkg.cb.loadExpr(args[0].Src) err = pkg.cb.newCodeError(pos, fmt.Sprintf("cannot convert %v (untyped int constant %v) to type %v", src, args[0].CVal, tname)) return @@ -1358,7 +1358,7 @@ func checkUntypedType(scope *types.Scope, tname string) bool { return false } -func checkUntypedOverflows(pkg *Package, scope *types.Scope, tname string, arg *internal.Elem) bool { +func checkUntypedOverflows(scope *types.Scope, tname string, arg *internal.Elem) bool { cmax, ok1 := scope.Lookup(tname + "_Max").(*types.Const) cmin, ok2 := scope.Lookup(tname + "_Min").(*types.Const) if ok1 || ok2 { diff --git a/c.go b/c.go index 088ca4d7..e994d2c7 100644 --- a/c.go +++ b/c.go @@ -201,7 +201,7 @@ func (p *UnionFields) Len() int { } func (p *UnionFields) getField( - cb *CodeBuilder, tfld *types.Named, name string, src ast.Node, ref bool) MemberKind { + cb *CodeBuilder, tfld *types.Named, name string, _ ast.Node, ref bool) MemberKind { for _, v := range p.flds { if v.Name == name { obj := cb.stk.Pop() diff --git a/codebuild.go b/codebuild.go index aca267c7..aa291a95 100644 --- a/codebuild.go +++ b/codebuild.go @@ -1659,7 +1659,7 @@ retry: return kind } case *types.Basic, *types.Slice, *types.Map, *types.Chan: - return p.btiMethod(p.getBuiltinTI(o), name, aliasName, flag, arg, srcExpr) + return p.btiMethod(p.getBuiltinTI(o), name, aliasName, flag, srcExpr) } return MemberInvalid } @@ -1752,7 +1752,7 @@ func (p *CodeBuilder) method( return MemberMethod } if t, ok := o.(*types.Named); ok { - kind = p.btiMethod(p.getBuiltinTI(t), name, aliasName, flag, arg, src) + kind = p.btiMethod(p.getBuiltinTI(t), name, aliasName, flag, src) } return } @@ -1768,7 +1768,7 @@ func isTypeConvert(otyp, typ types.Type) (string, bool) { } func (p *CodeBuilder) btiMethod( - o *builtinTI, name, aliasName string, flag MemberFlag, arg *Element, src ast.Node) MemberKind { + o *builtinTI, name, aliasName string, flag MemberFlag, src ast.Node) MemberKind { if o != nil { for i, n := 0, o.NumMethods(); i < n; i++ { method := o.Method(i) diff --git a/template.go b/template.go index cf06f3ba..2a544d80 100644 --- a/template.go +++ b/template.go @@ -375,7 +375,7 @@ func assignable(pkg *Package, v types.Type, t *types.Named, pv *internal.Elem) b } } if pv.CVal != nil { - if checkUntypedOverflows(pkg, scope, tname, pv) { + if checkUntypedOverflows(scope, tname, pv) { return false } } From 808a7578028a03e23bd76058ad998b7e25da7a39 Mon Sep 17 00:00:00 2001 From: xushiwei Date: Fri, 8 Mar 2024 20:48:25 +0800 Subject: [PATCH 2/3] don't define GopPackage for main package --- gop_test.go | 4 ++-- import.go | 2 +- package_test.go | 17 ++++++++--------- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/gop_test.go b/gop_test.go index aaa90b8c..bae0372e 100644 --- a/gop_test.go +++ b/gop_test.go @@ -54,10 +54,10 @@ func newGopMainPackage() *gox.Package { // ---------------------------------------------------------------------------- func TestGopoConst(t *testing.T) { - pkg := newMainPackage() + pkg := newPackage("foo") pkg.CB().NewConstStart(nil, "Gopo_x"). Val("Hello").EndInit(1) - domTest(t, pkg, `package main + domTest(t, pkg, `package foo const GopPackage = true const Gopo_x = "Hello" diff --git a/import.go b/import.go index a4906830..814db892 100644 --- a/import.go +++ b/import.go @@ -356,7 +356,7 @@ type expDeps struct { } func checkGopPkg(pkg *Package) (val ast.Expr, ok bool) { - if pkg.Types.Scope().Lookup(gopPackage) != nil { + if pkg.Types.Name() == "main" || pkg.Types.Scope().Lookup(gopPackage) != nil { return } ed := expDeps{pkg.Types, make(map[*types.Package]none), make(map[types.Type]none)} diff --git a/package_test.go b/package_test.go index 72547440..95360996 100644 --- a/package_test.go +++ b/package_test.go @@ -50,13 +50,16 @@ func ctxRef(pkg *gox.Package, name string) gox.Ref { type eventRecorder struct{} -func (p eventRecorder) Member(id ast.Node, obj types.Object) { -} -func (p eventRecorder) Call(fn ast.Node, obj types.Object) { -} +func (p eventRecorder) Member(id ast.Node, obj types.Object) {} +func (p eventRecorder) Call(fn ast.Node, obj types.Object) {} func newMainPackage( implicitCast ...func(pkg *gox.Package, V, T types.Type, pv *gox.Element) bool) *gox.Package { + return newPackage("main", implicitCast...) +} + +func newPackage( + name string, implicitCast ...func(pkg *gox.Package, V, T types.Type, pv *gox.Element) bool) *gox.Package { conf := &gox.Config{ Fset: gblFset, Importer: gblImp, @@ -71,7 +74,7 @@ func newMainPackage( conf.HandleErr = handleErr handleErr = nil } - return gox.NewPackage("", "main", conf) + return gox.NewPackage("", name, conf) } func domTest(t *testing.T, pkg *gox.Package, expected string) { @@ -1612,8 +1615,6 @@ func TestDefOverloadFunc(t *testing.T) { End() domTest(t, pkg, `package main -const GopPackage = true - func bar__0() { } `) @@ -1625,8 +1626,6 @@ func TestDefTemplateMethod(t *testing.T) { End() domTest(t, pkg, `package main -const GopPackage = true - func Gopt_bar() { } `) From 8d818e15fba97c12b6cf575caa1d282ab2f02b6c Mon Sep 17 00:00:00 2001 From: xushiwei Date: Fri, 8 Mar 2024 20:49:59 +0800 Subject: [PATCH 3/3] unused params --- typeparams.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/typeparams.go b/typeparams.go index eb58047a..2bd90a6b 100644 --- a/typeparams.go +++ b/typeparams.go @@ -257,7 +257,7 @@ func infer(pkg *Package, posn positioner, tparams []*types.TypeParam, targs []ty return } -func getParamsTypes(pkg *Package, tuple *types.Tuple, variadic bool) string { +func getParamsTypes(tuple *types.Tuple, variadic bool) string { n := tuple.Len() if n == 0 { return "" @@ -279,7 +279,7 @@ func checkInferArgs(pkg *Package, fn *internal.Elem, sig *types.Signature, args if nargs < nreq-1 { caller := types.ExprString(fn.Val) return nil, fmt.Errorf( - "not enough arguments in call to %s\n\thave (%v)\n\twant (%v)", caller, getTypes(args), getParamsTypes(pkg, sig.Params(), true)) + "not enough arguments in call to %s\n\thave (%v)\n\twant (%v)", caller, getTypes(args), getParamsTypes(sig.Params(), true)) } if flags&InstrFlagEllipsis != 0 { return args, nil @@ -307,7 +307,7 @@ func checkInferArgs(pkg *Package, fn *internal.Elem, sig *types.Signature, args } caller := types.ExprString(fn.Val) return nil, fmt.Errorf( - "%s arguments in call to %s\n\thave (%v)\n\twant (%v)", fewOrMany, caller, getTypes(args), getParamsTypes(pkg, sig.Params(), false)) + "%s arguments in call to %s\n\thave (%v)\n\twant (%v)", fewOrMany, caller, getTypes(args), getParamsTypes(sig.Params(), false)) } return args, nil }