From fbb275600a8a865213e3061511841ec526db87a3 Mon Sep 17 00:00:00 2001 From: Dave Holoway Date: Mon, 22 Jun 2020 14:41:32 +0100 Subject: [PATCH] check castability using type assignments --- langserver/java/expressiontypes/CastExpression.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/langserver/java/expressiontypes/CastExpression.js b/langserver/java/expressiontypes/CastExpression.js index 53d6785..69b2f4f 100644 --- a/langserver/java/expressiontypes/CastExpression.js +++ b/langserver/java/expressiontypes/CastExpression.js @@ -7,7 +7,7 @@ const { Expression } = require("./Expression"); const { AnyType, MultiValueType, TypeIdentType } = require('../anys'); const ParseProblem = require('../parsetypes/parse-problem'); const { JavaType, PrimitiveType, NullType, CEIType, ArrayType } = require('java-mti'); -const { getTypeInheritanceList } = require('../expression-resolver'); +const { isTypeAssignable } = require('../expression-resolver'); const { NumberLiteral } = require('../expressiontypes/literals/Number'); class CastExpression extends Expression { @@ -91,11 +91,11 @@ function isTypeCastable(source_type, cast_type) { return true; } } - // for other class casts, one type must be in the inheritence tree of the other - if (getTypeInheritanceList(source_type).includes(cast_type)) { + // for other class casts, one type must be assignable to the other + if (isTypeAssignable(source_type, cast_type)) { return true; } - if (getTypeInheritanceList(cast_type).includes(source_type)) { + if (isTypeAssignable(cast_type, source_type)) { return true; } return false;