Skip to content

feat(sv): support class properties of unpacked structure type - #2419

Merged
mergify[bot] merged 1 commit into
masterfrom
stack/tignear/feat/sv-uvm-unpacked-structs/support-class-props-unpacked-structure-type--8d7ebe18
Oct 28, 2026
Merged

mergify[bot] merged 1 commit into
masterfrom
stack/tignear/feat/sv-uvm-unpacked-structs/support-class-props-unpacked-structure-type--8d7ebe18

Conversation

@tignear

@tignear tignear commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

A class property of an unpacked structure type was rejected. Its leaf
members are now laid out as ordinary properties named by their member
path (orig.m_type), so a string or class handle member is a handle
property the collector traces, and a 4-state member keeps its X/Z bits.
The class records the property and its structure-typed members
(Class::aggregates) for lookup and hiding.

h.p.m and an unqualified p.m inside a method resolve through the
member path to the leaf property, including h.p.m.q through a handle
member. A whole property h.p reads as the concatenation of its leaf
loads; assigning it, from a pattern, a variable, another property, a
conditional or a call, stores each leaf, evaluating the value once.
Declaration initializers run in the constructor in declaration order,
and a shallow copy copies the members. Methods returning a structure are
now recognised when checking an assignment's type.

Static, rand and const properties of an unpacked structure type stay
unsupported with dedicated diagnostics. Icarus 13.0 still lacks unpacked
structures; xezim 0.11.3 formats string members of such properties as
packed values, which the review retains.

Depends-On: #2415

@tignear

tignear commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor Author

This pull request is part of a Mergify stack:

# Pull Request Link
1 feat(sv): support unpacked structures #2415
2 feat(sv): support class properties of unpacked structure type #2419 👈
3 feat(sv): support unpacked structures as dynamic container elements #2422
4 feat(sv): support nested dynamic containers and class handle keys #2424
5 feat(sv): pass unpacked structures by reference #2473

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review 🔄 Running since 2026-10-28T22:32:55.035143Z 23214db New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6dd66761ca

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-class-props-unpacked-structure-type--8d7ebe18 branch from 6dd6676 to c3f54de Compare October 28, 2026 10:11
@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-unpacked-structures--9a94c0cc branch from a9fdc69 to 9f1d0a1 Compare October 28, 2026 10:11
@tignear

tignear commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor Author

Revision history

# Type Changes Reason Date
1 initial 6dd6676 2026-10-28 10:10 UTC
2 rebase 6dd6676 → c3f54de (rebase only) 2026-10-28 10:10 UTC
3 content c3f54de → c71b11a 2026-10-28 12:46 UTC
4 content c71b11a → ecce9b8 2026-10-28 13:51 UTC
5 content ecce9b8 → 9c93687 Rebased onto master. Review fixes: for-header aggregate property assignments; class method results take precedence over module functions. 2026-10-28 16:16 UTC
6 content 9c93687 → 98ce935 Rebased onto master: merged #2429's property_in into the chain-based property lookup; native_class falls through for members of structure properties. Docs: selects/packed members of properties and pr… 2026-10-28 18:14 UTC
7 content 98ce935 → 88a469a 2026-10-28 19:23 UTC
8 content 88a469a → 4f9dad1 2026-10-28 20:25 UTC
9 content 4f9dad1 → 23214db 2026-10-28 22:32 UTC

@mergify

mergify Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Queued — the merge queue status continues in this comment ↓.

@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-class-props-unpacked-structure-type--8d7ebe18 branch from c3f54de to c71b11a Compare October 28, 2026 12:49
@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-unpacked-structures--9a94c0cc branch from 9f1d0a1 to cf97c42 Compare October 28, 2026 12:49

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c71b11ab8d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-class-props-unpacked-structure-type--8d7ebe18 branch from c71b11a to ecce9b8 Compare October 28, 2026 13:52
@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-unpacked-structures--9a94c0cc branch from cf97c42 to 24785f2 Compare October 28, 2026 13:52

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ecce9b84d4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-unpacked-structures--9a94c0cc branch from 24785f2 to 31dd1c3 Compare October 28, 2026 16:17
@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-class-props-unpacked-structure-type--8d7ebe18 branch from ecce9b8 to 9c93687 Compare October 28, 2026 16:17

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9c93687726

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-class-props-unpacked-structure-type--8d7ebe18 branch from 9c93687 to 98ce935 Compare October 28, 2026 18:15
@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-unpacked-structures--9a94c0cc branch from 31dd1c3 to 764af58 Compare October 28, 2026 18:15
@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-class-props-unpacked-structure-type--8d7ebe18 branch from 98ce935 to 88a469a Compare October 28, 2026 19:23
@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-unpacked-structures--9a94c0cc branch from 764af58 to 5618438 Compare October 28, 2026 19:23

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 88a469a64a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-class-props-unpacked-structure-type--8d7ebe18 branch from 88a469a to 4f9dad1 Compare October 28, 2026 20:25
A class property of an unpacked structure type was rejected. Its leaf
members are now laid out as ordinary properties named by their member
path (`orig.m_type`), so a `string` or class handle member is a handle
property the collector traces, and a 4-state member keeps its X/Z bits.
The class records the property and its structure-typed members
(`Class::aggregates`) for lookup and hiding.

`h.p.m` and an unqualified `p.m` inside a method resolve through the
member path to the leaf property, including `h.p.m.q` through a handle
member. A whole property `h.p` reads as the concatenation of its leaf
loads; assigning it, from a pattern, a variable, another property, a
conditional or a call, stores each leaf, evaluating the value once.
Declaration initializers run in the constructor in declaration order,
and a shallow copy copies the members. Methods returning a structure are
now recognised when checking an assignment's type.

Static, `rand` and `const` properties of an unpacked structure type stay
unsupported with dedicated diagnostics. Icarus 13.0 still lacks unpacked
structures; xezim 0.11.3 formats string members of such properties as
packed values, which the review retains.

Change-Id: I8d7ebe18fdf58ac33c7b1f2f76b7e27bf598b542
@tignear tignear added the merge-ready Request merging through Mergify after required checks label Oct 28, 2026
@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-unpacked-structures--9a94c0cc branch from 5618438 to 5760816 Compare October 28, 2026 22:32
@tignear
tignear force-pushed the stack/tignear/feat/sv-uvm-unpacked-structs/support-class-props-unpacked-structure-type--8d7ebe18 branch from 4f9dad1 to 23214db Compare October 28, 2026 22:32
@mergify mergify Bot added the queued Mergify queue entry label Oct 28, 2026
@mergify

mergify Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

✅ Merged into master as 71b47e2 at 23:17 UTC

Merged together with #2415, #2422. 11 min in the queue, 9 min of it CI.

So far

Merge conditions: 9 of 9 met

This pull request

Condition
✅ depends-on=celox-sim/celox#2419
✅ any of: depends-on = celox-sim/celox#2415, number != 2419

The batch, tested on draft #2495

Condition Required by
✅ check-success = Conventional Commit title —
✅ check-success = Queue validation —
✅ any of: check-success = @github-actions/Lint & Format, check-neutral = @github-actions/Lint & Format, check-skipped = @github-actions/Lint & Format GitHub repository ruleset rule master
✅ any of: check-success = @github-actions/Rust Test & NAPI Build, check-neutral = @github-actions/Rust Test & NAPI Build, check-skipped = @github-actions/Rust Test & NAPI Build GitHub repository ruleset rule master
✅ any of: check-success = @github-actions/JS Test (Ubuntu), check-neutral = @github-actions/JS Test (Ubuntu), check-skipped = @github-actions/JS Test (Ubuntu) GitHub repository ruleset rule master
✅ any of: check-success = @github-actions/Conventional Commit title, check-neutral = @github-actions/Conventional Commit title, check-skipped = @github-actions/Conventional Commit title GitHub repository ruleset rule master
✅ any of: check-success = @github-actions/Queue validation, check-neutral = @github-actions/Queue validation, check-skipped = @github-actions/Queue validation GitHub repository ruleset rule master

Times in UTC · dashboard · how the merge queue works

Base automatically changed from stack/tignear/feat/sv-uvm-unpacked-structs/support-unpacked-structures--9a94c0cc to master October 28, 2026 23:16
@mergify
mergify Bot merged commit 71b47e2 into master Oct 28, 2026
25 of 44 checks passed
@mergify
mergify Bot deleted the stack/tignear/feat/sv-uvm-unpacked-structs/support-class-props-unpacked-structure-type--8d7ebe18 branch October 28, 2026 23:17
@mergify mergify Bot removed the queued Mergify queue entry label Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-ready Request merging through Mergify after required checks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant