Skip to content

Fix PropertyList mutation and comparison semantics - #953

Merged
Kyle-Ye merged 3 commits into
mainfrom
bugfix/property_list
Jul 28, 2026
Merged

Fix PropertyList mutation and comparison semantics#953
Kyle-Ye merged 3 commits into
mainfrom
bugfix/property_list

Conversation

@Kyle-Ye

@Kyle-Ye Kyle-Ye commented Jul 28, 2026

Copy link
Copy Markdown
Member

Summary

  • preserve PropertyList elements during value lookup and mutation
  • pass ignored property types by value so comparisons do not mutate caller-owned arrays
  • tighten access to PropertyList.Element implementation details
  • add direct and symbol-dual coverage for preserving ignored type lists

@github-actions github-actions Bot added area: data-flow State, binding, environment, preference, observation, or property data flow. area: graph ViewGraph, AttributeGraph, graph hosts, and graph internals. type: bug Something is not working correctly. labels Jul 28, 2026
@codecov

codecov Bot commented Jul 28, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 71.42857% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 26.63%. Comparing base (aac2186) to head (95a1994).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
...urces/OpenSwiftUICore/Data/Util/PropertyList.swift 76.92% 3 Missing ⚠️
Sources/OpenSwiftUICore/Graph/GraphReuse.swift 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #953      +/-   ##
==========================================
+ Coverage   26.56%   26.63%   +0.06%     
==========================================
  Files         732      732              
  Lines       52699    52700       +1     
==========================================
+ Hits        14002    14037      +35     
+ Misses      38697    38663      -34     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Kyle-Ye
Kyle-Ye marked this pull request as ready for review July 28, 2026 17:00
@augmentcode

augmentcode Bot commented Jul 28, 2026

Copy link
Copy Markdown

PR Risk Analyzer Agent🛡️

👀 Human Input Needed
A pair-review briefing is ready for you.

→ Pair Review Briefing

@augmentcode

augmentcode Bot commented Jul 28, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: Fixes PropertyList lookup/mutation and comparison semantics.
Changes:

  • Wrap setter-side lookup in withExtendedLifetime so elements remain alive during find/valuesEqual.
  • Change mayNotBeEqual(..., ignoredTypes:) to take ignored types by value and copy internally to avoid mutating caller-owned arrays.
  • Tighten PropertyList.Element implementation visibility with fileprivate members.
  • Add core + symbol-dual tests asserting ignored-type lists are preserved across comparisons.
Notes: Prevents equality checks from inadvertently affecting reuse logic that relies on the original ignored-types array.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. No suggestions at this time.

Comment augment review to trigger a new review at any time.

@Kyle-Ye
Kyle-Ye merged commit 0ae0d3e into main Jul 28, 2026
7 of 9 checks passed
@Kyle-Ye
Kyle-Ye deleted the bugfix/property_list branch July 28, 2026 17:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: data-flow State, binding, environment, preference, observation, or property data flow. area: graph ViewGraph, AttributeGraph, graph hosts, and graph internals. type: bug Something is not working correctly.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant