Add tint.natvis to CMake and fix outdated visualizers
Change-Id: I4940bbf24be3dd691284d5c097b99e9e8941b95e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/150460
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/src/tint/CMakeLists.txt b/src/tint/CMakeLists.txt
index 38b292b..5388e0b 100644
--- a/src/tint/CMakeLists.txt
+++ b/src/tint/CMakeLists.txt
@@ -561,6 +561,13 @@
include("BUILD.cmake")
################################################################################
+# Bespoke target settings
+################################################################################
+if (MSVC)
+ target_sources(tint_api PRIVATE tint.natvis)
+endif()
+
+################################################################################
# Additional fuzzer tests
################################################################################
if(TINT_BUILD_TESTS)
diff --git a/src/tint/tint.natvis b/src/tint/tint.natvis
index 47198c0..dbc090a 100644
--- a/src/tint/tint.natvis
+++ b/src/tint/tint.natvis
@@ -100,14 +100,20 @@
<DisplayString Condition="params.size() > 3">fn {symbol}({*params[0]} {*params[1]} {*params[2]} {params.size()-3} more...) -> {*return_type} {*body}</DisplayString>
</Type>
- <Type Name="tint::ast::IdentifierExpression">
- <!--the ",sb" specifier removes the double quotes on the displayed string -->
+ <Type Name="tint::ast::Identifier">
<DisplayString>{symbol}</DisplayString>
<Expand>
<Item Name="symbol">symbol</Item>
</Expand>
</Type>
+ <Type Name="tint::ast::IdentifierExpression">
+ <DisplayString>{*identifier}</DisplayString>
+ <Expand>
+ <Item Name="identifier">identifier</Item>
+ </Expand>
+ </Type>
+
<Type Name="tint::ast::IndexAccessorExpression">
<DisplayString>{*object}[{*index}]</DisplayString>
<Expand>
@@ -117,9 +123,8 @@
</Type>
<Type Name="tint::ast::MemberAccessorExpression">
- <DisplayString>{*structure}.{*member}</DisplayString>
+ <DisplayString>{*member}</DisplayString>
<Expand>
- <Item Name="structure">*structure</Item>
<Item Name="member">*member</Item>
</Expand>
</Type>
@@ -179,12 +184,12 @@
</Type>
<Type Name="tint::ast::CallExpression">
- <DisplayString Condition="args.Length() == 0">{target}()</DisplayString>
- <DisplayString Condition="args.Length() == 1">{target}({*args[0]})</DisplayString>
- <DisplayString Condition="args.Length() == 2">{target}({*args[0]}, {*args[1]})</DisplayString>
- <DisplayString Condition="args.Length() == 3">{target}({*args[0]}, {*args[1]}, {*args[2]})</DisplayString>
- <DisplayString Condition="args.Length() == 4">{target}({*args[0]}, {*args[1]}, {*args[2]}, {*args[3]})</DisplayString>
- <DisplayString Condition="args.Length() > 4">{target}({*args[0]}, {*args[1]}, {*args[2]}, {args.Length()-3} more...)</DisplayString>
+ <DisplayString Condition="args.Length() == 0">{*target}()</DisplayString>
+ <DisplayString Condition="args.Length() == 1">{*target}({*args[0]})</DisplayString>
+ <DisplayString Condition="args.Length() == 2">{*target}({*args[0]}, {*args[1]})</DisplayString>
+ <DisplayString Condition="args.Length() == 3">{*target}({*args[0]}, {*args[1]}, {*args[2]})</DisplayString>
+ <DisplayString Condition="args.Length() == 4">{*target}({*args[0]}, {*args[1]}, {*args[2]}, {*args[3]})</DisplayString>
+ <DisplayString Condition="args.Length() > 4">{*target}({*args[0]}, {*args[1]}, {*args[2]}, {args.Length()-3} more...)</DisplayString>
<!-- TODO: add more overloads -->
</Type>
@@ -211,22 +216,6 @@
<DisplayString>{name}</DisplayString>
</Type>
- <Type Name="tint::ast::Bool">
- <DisplayString>bool</DisplayString>
- </Type>
-
- <Type Name="tint::ast::I32">
- <DisplayString>i32</DisplayString>
- </Type>
-
- <Type Name="tint::ast::U32">
- <DisplayString>u32</DisplayString>
- </Type>
-
- <Type Name="tint::ast::F32">
- <DisplayString>f32</DisplayString>
- </Type>
-
<!--=================================================================-->
<!-- sem -->
<!--=================================================================-->
@@ -247,12 +236,20 @@
<DisplayString>f32</DisplayString>
</Type>
+ <Type Name="tint::core::type::I32">
+ <DisplayString>i32</DisplayString>
+ </Type>
+
+ <Type Name="tint::core::type::U32">
+ <DisplayString>u32</DisplayString>
+ </Type>
+
<Type Name="tint::core::type::Vector">
<DisplayString>vec{width_}<{*subtype_}></DisplayString>
</Type>
- <Type Name="tint::core::connstant::Value">
- <DisplayString>Type={*Type()} Value={Value()}</DisplayString>
+ <Type Name="tint::core::constant::Value">
+ <DisplayString>Type={*Type()} Value={InternalValue()}</DisplayString>
</Type>
<Type Name="tint::sem::ValueExpression">