From 49b548087055b9e3aca465efddf28e497a5cc6cb Mon Sep 17 00:00:00 2001 From: Dave Holoway Date: Sun, 7 Jun 2020 22:52:37 +0100 Subject: [PATCH] allow generic types to be assigned to inherited types with compatible type arguments --- langserver/java/body-parser3.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/langserver/java/body-parser3.js b/langserver/java/body-parser3.js index d11b52c..15b416f 100644 --- a/langserver/java/body-parser3.js +++ b/langserver/java/body-parser3.js @@ -1210,7 +1210,8 @@ function isTypeAssignable(dest_type, value_type) { is_assignable = valid_raw_types.includes(dest_type); if (!is_assignable) { // generic types are also assignable to compatible wildcard type bounds - if (dest_type.rawTypeSignature === value_type.rawTypeSignature) { + const raw_type = valid_raw_types.find(rt => rt.rawTypeSignature === dest_type.rawTypeSignature); + if (raw_type instanceof CEIType && raw_type.typevars.length === value_type.typevars.length) { is_assignable = dest_type.typevars.every((dest_tv, idx) => isTypeArgumentCompatible(dest_tv, value_type.typevars[idx].type)); } }