Skip to content

Commit 5d0da34

Browse files
committed
TSExternsGenerator: update
1 parent 9050e46 commit 5d0da34

1 file changed

Lines changed: 16 additions & 14 deletions

File tree

scripts/TSExternsGenerator.hx

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)