summaryrefslogtreecommitdiffstats
path: root/tools/slang-reflection-test/main.cpp
diff options
context:
space:
mode:
authorTim Foley <tfoleyNV@users.noreply.github.com>2017-11-07 14:05:22 -0800
committerGitHub <noreply@github.com>2017-11-07 14:05:22 -0800
commit939688e963fde7a0485f210ef2674c27692021a4 (patch)
treeb86d6d71c3dd57b3fc2af3b1006be397d0cb01cc /tools/slang-reflection-test/main.cpp
parent417c9f3939e0545125317f49316a6dfb060d6c2c (diff)
Add reflection API to get type name (#263)
This is currently only useful for `struct` types. I implemented a special-case exception so that the auto-generated `struct` types used for `cbuffer` members don't show their internal name. I did *not* implement any logic to avoid returning the name `vector` for a vector type, etc., since they are all `DeclRefType`s and it seemed easiest to just let the user access information they can't really use.
Diffstat (limited to 'tools/slang-reflection-test/main.cpp')
-rw-r--r--tools/slang-reflection-test/main.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/tools/slang-reflection-test/main.cpp b/tools/slang-reflection-test/main.cpp
index f604ca1aa..b0d970ba3 100644
--- a/tools/slang-reflection-test/main.cpp
+++ b/tools/slang-reflection-test/main.cpp
@@ -460,11 +460,17 @@ static void emitReflectionTypeLayoutInfoJSON(
case slang::TypeReflection::Kind::Struct:
{
+ auto structTypeLayout = typeLayout;
+
write(writer, "\"kind\": \"struct\",\n");
+ if( auto name = structTypeLayout->getName() )
+ {
+ emitReflectionNameInfoJSON(writer, structTypeLayout->getName());
+ write(writer, ",\n");
+ }
write(writer, "\"fields\": [\n");
indent(writer);
- auto structTypeLayout = typeLayout;
auto fieldCount = structTypeLayout->getFieldCount();
for( uint32_t ff = 0; ff < fieldCount; ++ff )
{