Skip to content

Surface Objective-C messaging, property-ref, subscript, and availability expression API#813

Merged
tannergooding merged 2 commits into
dotnet:mainfrom
tannergooding:tannergooding-v22-objc-messaging
Jul 17, 2026
Merged

Surface Objective-C messaging, property-ref, subscript, and availability expression API#813
tannergooding merged 2 commits into
dotnet:mainfrom
tannergooding:tannergooding-v22-objc-messaging

Conversation

@tannergooding

Copy link
Copy Markdown
Member

Surfaces the v22 Objective-C expression bridges through the managed API, continuing the onboarding of the newly-reachable libClangSharp surface.

ObjCMessageExpr now exposes ReceiverKind (CX_ObjCMessageReceiverKind) and IsDelegateInitCall.

ObjCPropertyRefExpr now exposes IsMessagingGetter, IsMessagingSetter, and ReceiverKind (CX_ObjCPropertyRefReceiverKind).

ObjCSubscriptRefExpr now exposes SetAtIndexMethodDecl, the setter counterpart to the existing AtIndexMethodDecl.

ObjCAvailabilityCheckExpr now exposes HasVersion and Version.


ReceiverType, the literal element counts, the dictionary key/value pairs, and the property-ref class receiver are already reachable through the existing C API and child-based accessors, so those bridges are deliberately not duplicated.

The test pins an Apple target triple so the Objective-C expression semantics (property messaging, object subscripting, @available) parse deterministically cross-platform rather than gating on a macOS host.

Note

Authored with Copilot.

tannergooding and others added 2 commits July 16, 2026 21:40
…ity expression API

Wires the new ObjCMessageExpr (ReceiverKind, IsDelegateInitCall), ObjCPropertyRefExpr (IsMessagingGetter/Setter, ReceiverKind), ObjCSubscriptRefExpr (SetAtIndexMethodDecl), and ObjCAvailabilityCheckExpr (HasVersion, Version) bridges through the mid-layer CXCursor accessors and onto their managed cursors.

ReceiverType, literal element counts, dictionary key/value pairs, and the property-ref class receiver are already reachable via the existing C API and child-based accessors, so those bridges are deliberately not duplicated.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@tannergooding
tannergooding merged commit 532dd65 into dotnet:main Jul 17, 2026
12 checks passed
@tannergooding
tannergooding deleted the tannergooding-v22-objc-messaging branch July 17, 2026 04:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant