@@ -610,7 +610,7 @@ func isJavaPrimitive(T types.Type) bool {
610610
611611// jniType returns a string that can be used as a JNI type.
612612func (g * JavaGen ) jniType (T types.Type ) string {
613- switch T := T .(type ) {
613+ switch T := types . Unalias ( T ) .(type ) {
614614 case * types.Basic :
615615 switch T .Kind () {
616616 case types .Bool , types .UntypedBool :
@@ -644,7 +644,7 @@ func (g *JavaGen) jniType(T types.Type) string {
644644 return "jbyteArray"
645645
646646 case * types.Pointer :
647- if _ , ok := T .Elem ().(* types.Named ); ok {
647+ if _ , ok := types . Unalias ( T .Elem () ).(* types.Named ); ok {
648648 return g .jniType (T .Elem ())
649649 }
650650 g .errorf ("unsupported pointer to type: %s" , T )
@@ -697,15 +697,15 @@ func (g *JavaGen) javaType(T types.Type) string {
697697 } else if isJavaType (T ) {
698698 return classNameFor (T )
699699 }
700- switch T := T .(type ) {
700+ switch T := types . Unalias ( T ) .(type ) {
701701 case * types.Basic :
702702 return g .javaBasicType (T )
703703 case * types.Slice :
704704 elem := g .javaType (T .Elem ())
705705 return elem + "[]"
706706
707707 case * types.Pointer :
708- if _ , ok := T .Elem ().(* types.Named ); ok {
708+ if _ , ok := types . Unalias ( T .Elem () ).(* types.Named ); ok {
709709 return g .javaType (T .Elem ())
710710 }
711711 g .errorf ("unsupported pointer to type: %s" , T )
@@ -898,7 +898,7 @@ func (g *JavaGen) genCRetClear(varName string, t types.Type, exc string) {
898898}
899899
900900func (g * JavaGen ) genJavaToC (varName string , t types.Type , mode varMode ) {
901- switch t := t .(type ) {
901+ switch t := types . Unalias ( t ) .(type ) {
902902 case * types.Basic :
903903 switch t .Kind () {
904904 case types .String :
@@ -907,7 +907,7 @@ func (g *JavaGen) genJavaToC(varName string, t types.Type, mode varMode) {
907907 g .Printf ("%s _%s = (%s)%s;\n " , g .cgoType (t ), varName , g .cgoType (t ), varName )
908908 }
909909 case * types.Slice :
910- switch e := t .Elem ().(type ) {
910+ switch e := types . Unalias ( t .Elem () ).(type ) {
911911 case * types.Basic :
912912 switch e .Kind () {
913913 case types .Uint8 : // Byte.
@@ -933,7 +933,7 @@ func (g *JavaGen) genJavaToC(varName string, t types.Type, mode varMode) {
933933}
934934
935935func (g * JavaGen ) genCToJava (toName , fromName string , t types.Type , mode varMode ) {
936- switch t := t .(type ) {
936+ switch t := types . Unalias ( t ) .(type ) {
937937 case * types.Basic :
938938 switch t .Kind () {
939939 case types .String :
@@ -944,7 +944,7 @@ func (g *JavaGen) genCToJava(toName, fromName string, t types.Type, mode varMode
944944 g .Printf ("%s %s = (%s)%s;\n " , g .jniType (t ), toName , g .jniType (t ), fromName )
945945 }
946946 case * types.Slice :
947- switch e := t .Elem ().(type ) {
947+ switch e := types . Unalias ( t .Elem () ).(type ) {
948948 case * types.Basic :
949949 switch e .Kind () {
950950 case types .Uint8 : // Byte.
@@ -958,7 +958,7 @@ func (g *JavaGen) genCToJava(toName, fromName string, t types.Type, mode varMode
958958 case * types.Pointer :
959959 // TODO(crawshaw): test *int
960960 // TODO(crawshaw): test **Generator
961- switch t := t .Elem ().(type ) {
961+ switch t := types . Unalias ( t .Elem () ).(type ) {
962962 case * types.Named :
963963 g .genFromRefnum (toName , fromName , t , t .Obj ())
964964 default :
@@ -1259,10 +1259,10 @@ func (g *JavaGen) genJNIFuncBody(o *types.Func, sName string, jm *java.Func, isj
12591259
12601260// genRelease cleans up arguments that weren't copied in genJavaToC.
12611261func (g * JavaGen ) genRelease (varName string , t types.Type , mode varMode ) {
1262- switch t := t .(type ) {
1262+ switch t := types . Unalias ( t ) .(type ) {
12631263 case * types.Basic :
12641264 case * types.Slice :
1265- switch e := t .Elem ().(type ) {
1265+ switch e := types . Unalias ( t .Elem () ).(type ) {
12661266 case * types.Basic :
12671267 switch e .Kind () {
12681268 case types .Uint8 : // Byte.
@@ -1364,7 +1364,7 @@ func (g *JavaGen) GenH() error {
13641364}
13651365
13661366func (g * JavaGen ) jniCallType (t types.Type ) string {
1367- switch t := t .(type ) {
1367+ switch t := types . Unalias ( t ) .(type ) {
13681368 case * types.Basic :
13691369 switch t .Kind () {
13701370 case types .Bool , types .UntypedBool :
@@ -1391,7 +1391,7 @@ func (g *JavaGen) jniCallType(t types.Type) string {
13911391 case * types.Slice :
13921392 return "Object"
13931393 case * types.Pointer :
1394- if _ , ok := t .Elem ().(* types.Named ); ok {
1394+ if _ , ok := types . Unalias ( t .Elem () ).(* types.Named ); ok {
13951395 return g .jniCallType (t .Elem ())
13961396 }
13971397 g .errorf ("unsupported pointer to type: %s" , t )
@@ -1411,7 +1411,7 @@ func (g *JavaGen) jniSigType(T types.Type) string {
14111411 if isErrorType (T ) {
14121412 return "Ljava/lang/Exception;"
14131413 }
1414- switch T := T .(type ) {
1414+ switch T := types . Unalias ( T ) .(type ) {
14151415 case * types.Basic :
14161416 switch T .Kind () {
14171417 case types .Bool , types .UntypedBool :
@@ -1441,7 +1441,7 @@ func (g *JavaGen) jniSigType(T types.Type) string {
14411441 case * types.Slice :
14421442 return "[" + g .jniSigType (T .Elem ())
14431443 case * types.Pointer :
1444- if _ , ok := T .Elem ().(* types.Named ); ok {
1444+ if _ , ok := types . Unalias ( T .Elem () ).(* types.Named ); ok {
14451445 return g .jniSigType (T .Elem ())
14461446 }
14471447 g .errorf ("unsupported pointer to type: %s" , T )
0 commit comments