@@ -298,20 +298,22 @@ class TSExternsGenerator {
298298 }
299299 var current = superClassType ;
300300 var isConflictingStatic = false ;
301- while (current != null ) {
302- if (Lambda .exists (current .statics .get (), superStaticField -> superStaticField .name == classField .name && ! superStaticField .type .equals (classField .type ))) {
303- // typescript is weirdly strict when subclass have static
304- // members with the same name, but different signatures.
305- // it seems to be because JS allows you to use the `this`
306- // keyword in a static method, which is usually not allowed
307- // in other languages.
308- isConflictingStatic = true ;
309- break ;
310- }
311- if (current .superClass != null ) {
312- current = current .superClass .t .get ();
313- } else {
314- current = null ;
301+ if (superClassType != null && ! shouldSkipBaseType (superClassType , true )) {
302+ while (current != null ) {
303+ if (Lambda .exists (current .statics .get (), superStaticField -> superStaticField .name == classField .name && ! superStaticField .type .equals (classField .type ))) {
304+ // typescript is weirdly strict when subclass have static
305+ // members with the same name, but different signatures.
306+ // it seems to be because JS allows you to use the `this`
307+ // keyword in a static method, which is usually not allowed
308+ // in other languages.
309+ isConflictingStatic = true ;
310+ break ;
311+ }
312+ if (current .superClass != null ) {
313+ current = current .superClass .t .get ();
314+ } else {
315+ current = null ;
316+ }
315317 }
316318 }
317319 // TODO: try to expose this another way
0 commit comments