diff --git a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/comment/check/FieldDefinitionTypeWithLinkRefCheck.java b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/comment/check/FieldDefinitionTypeWithLinkRefCheck.java index 27d89026..3ead0f73 100644 --- a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/comment/check/FieldDefinitionTypeWithLinkRefCheck.java +++ b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/comment/check/FieldDefinitionTypeWithLinkRefCheck.java @@ -150,7 +150,7 @@ public class FieldDefinitionTypeWithLinkRefCheck return false; } String typeName = type.getTypeName(); - return types.contains(typeName); + return typeName != null && types.contains(typeName); } return false; } diff --git a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/AbstractDynamicFeatureAccessTypeCheck.java b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/AbstractDynamicFeatureAccessTypeCheck.java index 0dd92718..466d4fab 100644 --- a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/AbstractDynamicFeatureAccessTypeCheck.java +++ b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/AbstractDynamicFeatureAccessTypeCheck.java @@ -182,8 +182,10 @@ public abstract class AbstractDynamicFeatureAccessTypeCheck } List types = computeTypes(source, actualEnvs); - return !monitor.isCanceled() && !types.isEmpty() - && types.stream().anyMatch(t -> typeNames.contains(McoreUtil.getTypeName(t))); + return !monitor.isCanceled() && !types.isEmpty() && types.stream().anyMatch(t -> { + String typeName = McoreUtil.getTypeName(t); + return typeName != null && typeNames.contains(typeName); + }); } } diff --git a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/FunctionCtorReturnSectionCheck.java b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/FunctionCtorReturnSectionCheck.java index 695cfb22..c7712454 100644 --- a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/FunctionCtorReturnSectionCheck.java +++ b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/FunctionCtorReturnSectionCheck.java @@ -177,10 +177,11 @@ public class FunctionCtorReturnSectionCheck Set checkTypes = getCheckTypes(parameters); - List computedReturnTypeNames = computedReturnTypes.stream() + Set computedReturnTypeNames = computedReturnTypes.stream() .map(McoreUtil::getTypeName) .filter(Objects::nonNull) - .collect(Collectors.toList()); + .collect(Collectors.toSet()); + if (isUserDataTypes(computedReturnTypeNames, checkTypes)) { @@ -208,16 +209,16 @@ public class FunctionCtorReturnSectionCheck for (TypeItem returnType : returnTypes) { String returnTypeName = McoreUtil.getTypeName(returnType); - if (computedReturnTypeNames.contains(returnTypeName)) + if (returnTypeName != null && computedReturnTypeNames.contains(returnTypeName)) { if (isUserDataTypes(List.of(returnTypeName), checkTypes)) { Optional, TypeItem>> declaredProperties = coputedProperties.stream() - .filter(t -> McoreUtil.getTypeName(t.getSecond()).equals(returnTypeName)) + .filter(t -> returnTypeName.equals(McoreUtil.getTypeName(t.getSecond()))) .findAny(); Optional, TypeItem>> typeProperties = properties.stream() - .filter(t -> McoreUtil.getTypeName(t.getSecond()).equals(returnTypeName)) + .filter(t -> returnTypeName.equals(McoreUtil.getTypeName(t.getSecond()))) .findAny(); checkTypeProperties(method, statment, isRussianScript, returnType, @@ -321,7 +322,7 @@ public class FunctionCtorReturnSectionCheck return function.isExport(); } - private boolean isUserDataTypes(List computedReturnTypeNames, Set checkTypes) + private boolean isUserDataTypes(Collection computedReturnTypeNames, Set checkTypes) { if (computedReturnTypeNames.isEmpty()) {