[clang] [HLSL] Implement Texture2D::mips[][] (PR #186143)
Nathan Gauër via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 26 06:47:17 PDT 2026
================
@@ -705,12 +758,69 @@ BuiltinTypeMethodBuilder::accessHandleFieldOnResource(T ResourceRecord) {
return *this;
}
-template <typename ResourceT, typename ValueT>
+template <typename T>
+BuiltinTypeMethodBuilder &
+BuiltinTypeMethodBuilder::accessFieldOnResource(T ResourceRecord,
+ FieldDecl *Field) {
+ ensureCompleteDecl();
+ Expr *Base = convertPlaceholder(ResourceRecord);
+
+ ASTContext &AST = DeclBuilder.SemaRef.getASTContext();
+ auto *Member =
+ MemberExpr::CreateImplicit(AST, Base, /*IsArrow=*/false, Field,
+ Field->getType(), VK_LValue, OK_Ordinary);
+ StmtsList.push_back(Member);
+ return *this;
+}
+
+void BuiltinTypeMethodBuilder::setMipsHandleField(LocalVar &ResourceRecord) {
+ FieldDecl *MipsField = DeclBuilder.Fields.lookup("mips");
+ if (!MipsField)
+ return;
+
+ ASTContext &AST = DeclBuilder.SemaRef.getASTContext();
+ QualType MipsTy = MipsField->getType();
+ const auto *RT = MipsTy->getAs<RecordType>();
+ assert(RT && "mips field must be a record type");
----------------
Keenuts wrote:
```suggestion
const auto *RT = MipsTy->castAs<RecordType>();
```
Looks like this the is proper way
https://github.com/llvm/llvm-project/pull/186143
More information about the cfe-commits
mailing list