From d9b6d9b59617a1e337cf7bb5135d7c175e688927 Mon Sep 17 00:00:00 2001 From: isc-dchui Date: Wed, 26 Nov 2025 10:10:29 -0500 Subject: [PATCH] Avoid infinite loop in [Language=python] edge case --- CHANGELOG.md | 5 +++++ cls/TestCoverage/Utils/LineByLineMonitor.cls | 3 +++ 2 files changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f391940..f196a7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [4.1.2] - Unreleased + +### Fixed +- #75: Avoid infinite loop when first class in alphabetical order has a `[ Language = python ]` + ## [4.1.1] - 2025-11-24 ### Fixed diff --git a/cls/TestCoverage/Utils/LineByLineMonitor.cls b/cls/TestCoverage/Utils/LineByLineMonitor.cls index 5b5b69f..ff7fb23 100644 --- a/cls/TestCoverage/Utils/LineByLineMonitor.cls +++ b/cls/TestCoverage/Utils/LineByLineMonitor.cls @@ -196,6 +196,9 @@ ClassMethod Start(Routine As %List, Metric As %List, Process As %List) As %Statu Set pointer = 0 Set found = 0 While $ListNext(Routine,pointer,routine) { + if $piece(routine, ".", *) = "py" { + continue + } Set rtnname = routine_".obj" For { Set data = ""