From 0826c0a51b0dd72197d416af81993c5f2b6d302e Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Wed, 30 Mar 2022 20:02:52 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6?= =?UTF-8?q?=D0=BD=D1=8B=D1=85=20NPE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bsl/strict/check/AbstractTypeCheck.java | 20 +++++++++++++------ .../check/FunctionCtorReturnSectionCheck.java | 16 ++++++++++----- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/AbstractTypeCheck.java b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/AbstractTypeCheck.java index 8edf79054..5abf780c4 100644 --- a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/AbstractTypeCheck.java +++ b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/AbstractTypeCheck.java @@ -17,6 +17,7 @@ import java.util.Collection; import java.util.Deque; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.TreeSet; import java.util.stream.Collectors; @@ -192,8 +193,9 @@ else if (object instanceof StaticFeatureAccess && ((StaticFeatureAccess)object). String typeName = fa.getName(); String propertyName = dfa.getName(); TypeItem type = sourceTypes.get(0); - if ((typeName.equalsIgnoreCase(McoreUtil.getTypeNameRu(type)) - || typeName.equalsIgnoreCase(McoreUtil.getTypeName(type))) + if (typeName != null + && (typeName.equalsIgnoreCase(McoreUtil.getTypeNameRu(type)) + || typeName.equalsIgnoreCase(McoreUtil.getTypeName(type))) && dynamicFeatureAccessComputer.getAllProperties(sourceTypes, object.eResource()) .stream() .flatMap(e -> e.getFirst().stream()) @@ -308,11 +310,17 @@ private static Collection getTypeNames(Collection parentTypes, { type = (TypeItem)EcoreUtil.resolve(type, context); String typeName = McoreUtil.getTypeName(type); - typeNames.add(typeName); - if (type instanceof TypeSet) + if (typeName != null) + { + typeNames.add(typeName); + } + if (type instanceof TypeSet && typeName != null) { - typeNames.addAll( - ((TypeSet)type).getTypes().stream().map(McoreUtil::getTypeName).collect(Collectors.toList())); + typeNames.addAll(((TypeSet)type).getTypes() + .stream() + .map(McoreUtil::getTypeName) + .filter(Objects::nonNull) + .collect(Collectors.toList())); if (IEObjectTypeNames.ANY_REF.equals(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 1a94bef25..695cfb220 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 @@ -18,6 +18,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.TreeSet; @@ -176,8 +177,10 @@ protected void checkDocumentationCommentObject(IDescriptionPart object, BslDocum Set checkTypes = getCheckTypes(parameters); - List computedReturnTypeNames = - computedReturnTypes.stream().map(McoreUtil::getTypeName).collect(Collectors.toList()); + List computedReturnTypeNames = computedReturnTypes.stream() + .map(McoreUtil::getTypeName) + .filter(Objects::nonNull) + .collect(Collectors.toList()); if (isUserDataTypes(computedReturnTypeNames, checkTypes)) { @@ -256,8 +259,11 @@ private void checkTypeProperties(Function function, ReturnStatement statment, bo { String propertyName = useRussianScript ? declaredProperty.getNameRu() : declaredProperty.getName(); declaredProertyNames.add(propertyName); - List declaredType = - declaredProperty.getTypes().stream().map(McoreUtil::getTypeName).collect(Collectors.toList()); + List declaredType = declaredProperty.getTypes() + .stream() + .map(McoreUtil::getTypeName) + .filter(Objects::nonNull) + .collect(Collectors.toList()); if (declaredType.isEmpty()) { continue; @@ -271,7 +277,7 @@ private void checkTypeProperties(Function function, ReturnStatement statment, bo .collect(Collectors.toList()); List types2 = types.stream() - .filter(t -> !declaredType.contains(McoreUtil.getTypeName(t))) + .filter(t -> McoreUtil.getTypeName(t) != null && !declaredType.contains(McoreUtil.getTypeName(t))) .collect(Collectors.toList()); if (types.isEmpty()) {