From 78a0ebab6e4c461a88ee3dc9a3aae627a7c23e12 Mon Sep 17 00:00:00 2001 From: David Richardson Date: Wed, 19 Aug 2026 20:23:33 -0600 Subject: [PATCH 1/3] Remove CPScrollView build warning CPRulerView.j did not import CPScrollView. A direct import would create a cycle, since CPScrollView.j already imports CPRulerView.j. Added a forward declaration instead. --- AppKit/CPTextView/CPRulerView.j | 1 + 1 file changed, 1 insertion(+) diff --git a/AppKit/CPTextView/CPRulerView.j b/AppKit/CPTextView/CPRulerView.j index aaef07851..397877a7f 100644 --- a/AppKit/CPTextView/CPRulerView.j +++ b/AppKit/CPTextView/CPRulerView.j @@ -36,6 +36,7 @@ CPRulerOrientationHorizontal = 0, CPRulerOrientationVertical = 1 @class CPRulerView; +@class CPScrollView; // MARK: - CPRulerMarker (Interactive Handles with Dynamic Alignment Icons) From a1ac8216784aff1f323f33c5af3798c7ccdcc8ad Mon Sep 17 00:00:00 2001 From: David Richardson Date: Thu, 20 Aug 2026 15:31:45 -0600 Subject: [PATCH 2/3] Fix build warnings in _CPTableTextAttachment Replaced the CPTextView.j import with forward declarations for CPTextView and CPTextContainer (the latter previously reached via the removed import). The previous import graph created a circular dependency (_CPTableTextAttachment.j -> CPTextView.j -> _CPRTFParser.j / _CPRTFProducer.j -> _CPTableTextAttachment.j). This caused the legacy compiler to emit a class registration warning during clean builds, as the class was unregistered at the time of resolution. Incremental builds masked this warning via cached symbol tables. Using forward declarations breaks the cycle and ensures warning-free clean and incremental builds. --- AppKit/CPTextView/_CPTableTextAttachment.j | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AppKit/CPTextView/_CPTableTextAttachment.j b/AppKit/CPTextView/_CPTableTextAttachment.j index a395a31a4..9e7d3daed 100644 --- a/AppKit/CPTextView/_CPTableTextAttachment.j +++ b/AppKit/CPTextView/_CPTableTextAttachment.j @@ -19,7 +19,8 @@ */ @import "CPView.j" -@import "CPTextView.j" +@class CPTextView; +@class CPTextContainer; @import "CPTextField.j" @import From 52658b636a01473a8b86d2c30492d887d6e24594 Mon Sep 17 00:00:00 2001 From: David Richardson Date: Thu, 20 Aug 2026 16:28:02 -0600 Subject: [PATCH 3/3] Add missing CPTextTab forward declaration in CPRulerView CPRulerView.j referenced CPTextTab (isKindOfClass: and alloc/init) without a declaration. Added @class CPTextTab; to resolve the symbol reference. A forward declaration was utilized rather than importing CPParagraphStyle.j to minimize dependency coupling, despite the absence of a circular import risk. Resolves build warning. --- AppKit/CPTextView/CPRulerView.j | 1 + 1 file changed, 1 insertion(+) diff --git a/AppKit/CPTextView/CPRulerView.j b/AppKit/CPTextView/CPRulerView.j index 397877a7f..d25532a90 100644 --- a/AppKit/CPTextView/CPRulerView.j +++ b/AppKit/CPTextView/CPRulerView.j @@ -37,6 +37,7 @@ CPRulerOrientationVertical = 1 @class CPRulerView; @class CPScrollView; +@class CPTextTab; // MARK: - CPRulerMarker (Interactive Handles with Dynamic Alignment Icons)