本文整理汇总了Golang中go/types.Var.Name方法的典型用法代码示例。如果您正苦于以下问题:Golang Var.Name方法的具体用法?Golang Var.Name怎么用?Golang Var.Name使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类go/types.Var
的用法示例。
在下文中一共展示了Var.Name方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: genJNIField
func (g *javaGen) genJNIField(o *types.TypeName, f *types.Var) {
if t := f.Type(); !g.isSupported(t) {
g.Printf("// skipped field %s with unsupported type: %T\n\n", o.Name(), t)
return
}
// setter
g.Printf("JNIEXPORT void JNICALL\n")
g.Printf("Java_%s_%s_00024%s_set%s(JNIEnv *env, jobject this, %s v) {\n", g.jniPkgName(), g.className(), o.Name(), f.Name(), g.jniType(f.Type()))
g.Indent()
g.Printf("int32_t o = go_seq_to_refnum(env, this);\n")
g.genJavaToC("v", f.Type(), modeRetained)
g.Printf("proxy%s_%s_%s_Set(o, _v);\n", g.pkgPrefix, o.Name(), f.Name())
g.genRelease("v", f.Type(), modeRetained)
g.Outdent()
g.Printf("}\n\n")
// getter
g.Printf("JNIEXPORT %s JNICALL\n", g.jniType(f.Type()))
g.Printf("Java_%s_%s_00024%s_get%s(JNIEnv *env, jobject this) {\n", g.jniPkgName(), g.className(), o.Name(), f.Name())
g.Indent()
g.Printf("int32_t o = go_seq_to_refnum(env, this);\n")
g.Printf("%s r0 = ", g.cgoType(f.Type()))
g.Printf("proxy%s_%s_%s_Get(o);\n", g.pkgPrefix, o.Name(), f.Name())
g.genCToJava("_r0", "r0", f.Type(), modeRetained)
g.Printf("return _r0;\n")
g.Outdent()
g.Printf("}\n\n")
}
示例2: genVarM
func (g *ObjcGen) genVarM(o *types.Var) {
if t := o.Type(); !g.isSupported(t) {
g.Printf("// skipped variable %s with unsupported type: %T\n\n", o.Name(), t)
return
}
objcType := g.objcType(o.Type())
// setter
g.Printf("+ (void) set%s:(%s)v {\n", o.Name(), objcType)
g.Indent()
g.genWrite("v", o.Type(), modeRetained)
g.Printf("var_set%s_%s(_v);\n", g.pkgPrefix, o.Name())
g.genRelease("v", o.Type(), modeRetained)
g.Outdent()
g.Printf("}\n\n")
// getter
g.Printf("+ (%s) %s {\n", objcType, objcNameReplacer(lowerFirst(o.Name())))
g.Indent()
g.Printf("%s r0 = ", g.cgoType(o.Type()))
g.Printf("var_get%s_%s();\n", g.pkgPrefix, o.Name())
g.genRead("_r0", "r0", o.Type(), modeRetained)
g.Printf("return _r0;\n")
g.Outdent()
g.Printf("}\n\n")
}
示例3: field
func (p *exporter) field(f *types.Var) {
// anonymous fields have "" name
name := ""
if !f.Anonymous() {
name = f.Name()
}
// qualifiedName will always emit the field package for
// anonymous fields because "" is not an exported name.
p.qualifiedName(f.Pkg(), name)
p.typ(f.Type())
}
示例4: varPtrName
func (c *funcContext) varPtrName(o *types.Var) string {
if isPkgLevel(o) && o.Exported() {
return c.pkgVar(o.Pkg()) + "." + o.Name() + "$ptr"
}
name, ok := c.p.varPtrNames[o]
if !ok {
name = c.newVariableWithLevel(o.Name()+"$ptr", isPkgLevel(o))
c.p.varPtrNames[o] = name
}
return name
}
示例5: genSetter
func (g *ObjcGen) genSetter(oName string, f *types.Var) {
t := f.Type()
g.Printf("- (void)set%s:(%s)v {\n", f.Name(), g.objcType(t))
g.Indent()
g.Printf("int32_t refnum = go_seq_go_to_refnum(self._ref);\n")
g.genWrite("v", f.Type(), modeRetained)
g.Printf("proxy%s_%s_%s_Set(refnum, _v);\n", g.pkgPrefix, oName, f.Name())
g.genRelease("v", f.Type(), modeRetained)
g.Outdent()
g.Printf("}\n\n")
}
示例6: genGetter
func (g *ObjcGen) genGetter(oName string, f *types.Var) {
t := f.Type()
g.Printf("- (%s)%s {\n", g.objcType(t), objcNameReplacer(lowerFirst(f.Name())))
g.Indent()
g.Printf("int32_t refnum = go_seq_go_to_refnum(self._ref);\n")
g.Printf("%s r0 = ", g.cgoType(f.Type()))
g.Printf("proxy%s_%s_%s_Get(refnum);\n", g.pkgPrefix, oName, f.Name())
g.genRead("_r0", "r0", f.Type(), modeRetained)
g.Printf("return _r0;\n")
g.Outdent()
g.Printf("}\n\n")
}
示例7: matchWildcard
func (tr *Transformer) matchWildcard(xobj *types.Var, y ast.Expr) bool {
name := xobj.Name()
if tr.verbose {
fmt.Fprintf(os.Stderr, "%s: wildcard %s -> %s?: ",
tr.fset.Position(y.Pos()), name, astString(tr.fset, y))
}
// Check that y is assignable to the declared type of the param.
yt := tr.info.TypeOf(y)
if yt == nil {
// y has no type.
// Perhaps it is an *ast.Ellipsis in [...]T{}, or
// an *ast.KeyValueExpr in T{k: v}.
// Clearly these pseudo-expressions cannot match a
// wildcard, but it would nice if we had a way to ignore
// the difference between T{v} and T{k:v} for structs.
return false
}
if !types.AssignableTo(yt, xobj.Type()) {
if tr.verbose {
fmt.Fprintf(os.Stderr, "%s not assignable to %s\n", yt, xobj.Type())
}
return false
}
// A wildcard matches any expression.
// If it appears multiple times in the pattern, it must match
// the same expression each time.
if old, ok := tr.env[name]; ok {
// found existing binding
tr.allowWildcards = false
r := tr.matchExpr(old, y)
if tr.verbose {
fmt.Fprintf(os.Stderr, "%t secondary match, primary was %s\n",
r, astString(tr.fset, old))
}
tr.allowWildcards = true
return r
}
if tr.verbose {
fmt.Fprintf(os.Stderr, "primary match\n")
}
tr.env[name] = y // record binding
return true
}
示例8: convertVar
func (c *converter) convertVar(v *gotypes.Var) *types.Var {
if v == nil {
return nil
}
if v, ok := c.converted[v]; ok {
return v.(*types.Var)
}
ret := types.NewVar(
token.Pos(v.Pos()),
c.ret,
v.Name(),
c.convertType(v.Type()),
)
c.converted[v] = ret
return ret
}
示例9: genGetter
func (g *objcGen) genGetter(desc string, f *types.Var) {
t := f.Type()
if isErrorType(t) {
t = types.Typ[types.String]
}
s := &funcSummary{
name: lowerFirst(f.Name()),
ret: g.objcType(t),
retParams: []paramInfo{{typ: t, name: "ret_"}},
}
g.Printf("- %s {\n", s.asMethod(g))
g.Indent()
g.genFunc(desc+"_DESCRIPTOR_", desc+"_FIELD_"+f.Name()+"_GET_", s, true)
g.Outdent()
g.Printf("}\n\n")
}
示例10: genSetter
func (g *objcGen) genSetter(desc string, f *types.Var) {
t := f.Type()
if isErrorType(t) {
t = types.Typ[types.String]
}
s := &funcSummary{
name: "set" + f.Name(),
ret: "void",
params: []paramInfo{{typ: t, name: "v"}},
}
g.Printf("- %s {\n", s.asMethod(g))
g.Indent()
g.genFunc(desc+"_DESCRIPTOR_", desc+"_FIELD_"+f.Name()+"_SET_", s, true)
g.Outdent()
g.Printf("}\n\n")
}
示例11: fieldName
// fieldName is like qualifiedName but it doesn't record the package
// for blank (_) or exported names.
func (p *exporter) fieldName(f *types.Var) {
name := f.Name()
// anonymous field with unexported base type name: use "?" as field name
// (bname != "" per spec, but we are conservative in case of errors)
if f.Anonymous() {
base := f.Type()
if ptr, ok := base.(*types.Pointer); ok {
base = ptr.Elem()
}
if named, ok := base.(*types.Named); ok && !named.Obj().Exported() {
name = "?"
}
}
p.string(name)
if name == "?" || name != "_" && !f.Exported() {
p.pkg(f.Pkg(), false)
}
}
示例12: genJNIVar
func (g *javaGen) genJNIVar(o *types.Var) {
if t := o.Type(); !g.isSupported(t) {
g.Printf("// skipped variable %s with unsupported type: %T\n\n", o.Name(), t)
return
}
// setter
g.Printf("JNIEXPORT void JNICALL\n")
g.Printf("Java_%s_%s_set%s(JNIEnv *env, jclass clazz, %s v) {\n", g.jniPkgName(), g.className(), o.Name(), g.jniType(o.Type()))
g.Indent()
g.genJavaToC("v", o.Type(), modeRetained)
g.Printf("var_set%s_%s(_v);\n", g.pkgPrefix, o.Name())
g.genRelease("v", o.Type(), modeRetained)
g.Outdent()
g.Printf("}\n\n")
// getter
g.Printf("JNIEXPORT %s JNICALL\n", g.jniType(o.Type()))
g.Printf("Java_%s_%s_get%s(JNIEnv *env, jclass clazz) {\n", g.jniPkgName(), g.className(), o.Name())
g.Indent()
g.Printf("%s r0 = ", g.cgoType(o.Type()))
g.Printf("var_get%s_%s();\n", g.pkgPrefix, o.Name())
g.genCToJava("_r0", "r0", o.Type(), modeRetained)
g.Printf("return _r0;\n")
g.Outdent()
g.Printf("}\n\n")
}
示例13: genVarM
func (g *objcGen) genVarM(o *types.Var) {
varDesc := fmt.Sprintf("%q", g.pkg.Name()+"."+o.Name())
objcType := g.objcType(o.Type())
// setter
s1 := &funcSummary{
name: "set" + o.Name(),
ret: "void",
params: []paramInfo{{typ: o.Type(), name: "v"}},
}
g.Printf("+ (void) %s:(%s)v {\n", s1.name, objcType)
g.Indent()
g.genFunc(varDesc, "1", s1, false) // false: not instance method.
g.Outdent()
g.Printf("}\n\n")
// getter
s2 := &funcSummary{
name: lowerFirst(o.Name()),
ret: objcType,
retParams: []paramInfo{{typ: o.Type(), name: "ret"}},
}
g.Printf("+ (%s) %s {\n", s2.ret, s2.name)
g.Indent()
g.genFunc(varDesc, "2", s2, false)
g.Outdent()
g.Printf("}\n\n")
}
示例14: genVarM
func (g *objcGen) genVarM(o *types.Var) {
varDesc := fmt.Sprintf("%q", g.pkg.Name()+"."+o.Name())
objcType := g.objcType(o.Type())
// setter
s1 := &funcSummary{
name: g.namePrefix + "_set" + o.Name(),
ret: "void",
params: []paramInfo{{typ: o.Type(), name: "v"}},
}
g.Printf("void %s(%s v) {\n", s1.name, objcType)
g.Indent()
g.genFunc(varDesc, "1", s1, false)
g.Outdent()
g.Printf("}\n\n")
// getter
s2 := &funcSummary{
name: g.namePrefix + o.Name(),
ret: objcType,
retParams: []paramInfo{{typ: o.Type(), name: "ret"}},
}
g.Printf("%s %s() {\n", s2.ret, s2.name)
g.Indent()
g.genFunc(varDesc, "2", s2, false)
g.Outdent()
g.Printf("}\n\n")
}
示例15: genVar
func (g *javaGen) genVar(o *types.Var) {
jType := g.javaType(o.Type())
varDesc := fmt.Sprintf("%s.%s", g.pkg.Name(), o.Name())
// setter
g.Printf("public static void set%s(%s v) {\n", o.Name(), jType)
g.Indent()
g.Printf("Seq in = new Seq();\n")
g.Printf("Seq out = new Seq();\n")
g.Printf("in.write%s;\n", seqWrite(o.Type(), "v"))
g.Printf("Seq.send(%q, 1, in, out);\n", varDesc)
g.Outdent()
g.Printf("}\n")
g.Printf("\n")
// getter
g.Printf("public static %s get%s() {\n", jType, o.Name())
g.Indent()
g.Printf("Seq in = new Seq();\n")
g.Printf("Seq out = new Seq();\n")
g.Printf("Seq.send(%q, 2, in, out);\n", varDesc)
g.Printf("%s ", jType)
g.genRead("v", "out", o.Type())
g.Printf("return v;\n")
g.Outdent()
g.Printf("}\n")
g.Printf("\n")
}