From b0a247569630d59d3d74b3ad24ca3236e5ee97e2 Mon Sep 17 00:00:00 2001 From: Dave Holoway Date: Thu, 25 Jun 2020 10:56:02 +0100 Subject: [PATCH] ensure Object is always last in the list of inherited types --- langserver/java/expression-resolver.js | 9 +++++++++ 1 file changed, 9 insertions(+) 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); }