diff --git a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/semantics/analyzer/TypeChecker.java b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/semantics/analyzer/TypeChecker.java index 90ec06d21bdc..44926d6ef6cf 100644 --- a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/semantics/analyzer/TypeChecker.java +++ b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/semantics/analyzer/TypeChecker.java @@ -4088,8 +4088,9 @@ public void visit(BLangInvocation.BLangResourceAccessInvocation resourceAccessIn return; } else if (targetResourceFuncCount > 1) { //Filter the resource function with identifier segment - Optional first = resourceFunctions.stream().filter(func -> func.pathSegmentSymbols - .get(func.pathSegmentSymbols.size() - 1).kind == SymbolKind.RESOURCE_PATH_IDENTIFIER_SEGMENT) + Optional first = resourceFunctions + .stream().filter(func -> func.pathSegmentSymbols.stream() + .allMatch(segment -> segment.kind == SymbolKind.RESOURCE_PATH_IDENTIFIER_SEGMENT)) .findFirst(); if (first.isPresent()) { resourceFunctions = new ArrayList<>(List.of(first.get()));