Skip to content

Surface TemplateName dependence predicates and underlying name#814

Merged
tannergooding merged 1 commit into
dotnet:mainfrom
tannergooding:tannergooding-v22-templatename
Jul 17, 2026
Merged

Surface TemplateName dependence predicates and underlying name#814
tannergooding merged 1 commit into
dotnet:mainfrom
tannergooding:tannergooding-v22-templatename

Conversation

@tannergooding

Copy link
Copy Markdown
Member

Surfaces the remaining TemplateName bridges that the v22 native port unblocked, mirroring how Expr and TemplateArgument already expose their dependence bits.

Managed TemplateName now exposes:

  • IsDependent
  • IsInstantiationDependent
  • ContainsUnexpandedParameterPack
  • Underlying -- the underlying TemplateName (unwrapping sugar; a qualified name resolves to itself)

Kind, IsNull, and AsTemplateDecl were already surfaced, so this is purely additive. The values are threaded through the CX_TemplateName mid-layer wrapper so the unsafe struct layer stays in step with the managed API.

TypeTest.TemplateNameTest is extended to assert the new predicates and Underlying on Tmpl<int>.

Note

Authored with Copilot.

Wires the TemplateName getIsDependent, getIsInstantiationDependent, getContainsUnexpandedParameterPack, and getUnderlying bridges through the CX_TemplateName mid-layer and onto the managed TemplateName. Kind and AsTemplateDecl were already exposed.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@tannergooding
tannergooding merged commit 4d9d804 into dotnet:main Jul 17, 2026
12 checks passed
@tannergooding
tannergooding deleted the tannergooding-v22-templatename branch July 17, 2026 05:01
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