diff --git a/langserver/java/expression-resolver.js b/langserver/java/expression-resolver.js index 50cd6a0..9716c47 100644 --- a/langserver/java/expression-resolver.js +++ b/langserver/java/expression-resolver.js @@ -365,7 +365,13 @@ function getTypeInheritanceList(type) { /** @type {Set} */ done: new Set(), }; + let object = null; for (let type; type = types.list.shift(); ) { + // always add Object last + if (type.rawTypeSignature === 'Ljava/lang/Object;') { + object = type; + continue; + } if (types.done.has(type)) { continue; } @@ -373,6 +379,9 @@ function getTypeInheritanceList(type) { if (type instanceof CEIType) types.list.push(...type.supers); } + if (object) { + types.done.add(object); + } return Array.from(types.done); }