@@ -92,6 +92,18 @@ namespace cppwinrt
9292 return result;
9393 }
9494
95+ static bool transform_special_numeric_type (std::string_view& name)
96+ {
97+ if (name == " Matrix3x2" ) { name = " float3x2" ; return true ; }
98+ else if (name == " Matrix4x4" ) { name = " float4x4" ; return true ; }
99+ else if (name == " Plane" ) { name = " plane" ; return true ; }
100+ else if (name == " Quaternion" ) { name = " quaternion" ; return true ; }
101+ else if (name == " Vector2" ) { name = " float2" ; return true ; }
102+ else if (name == " Vector3" ) { name = " float3" ; return true ; }
103+ else if (name == " Vector4" ) { name = " float4" ; return true ; }
104+ return false ;
105+ }
106+
95107 struct writer : writer_base<writer>
96108 {
97109 using writer_base<writer>::write;
@@ -277,8 +289,6 @@ namespace cppwinrt
277289 return ;
278290 }
279291
280- // TODO: get rid of all these renames once parity with cppwinrt.exe has been reached...
281-
282292 if (name == " EventRegistrationToken" && ns == " Windows.Foundation" )
283293 {
284294 write (" winrt::event_token" );
@@ -291,16 +301,8 @@ namespace cppwinrt
291301 {
292302 auto category = get_category (type);
293303
294- if (ns == " Windows.Foundation.Numerics" )
304+ if (ns == " Windows.Foundation.Numerics" && transform_special_numeric_type (name) )
295305 {
296- if (name == " Matrix3x2" ) { name = " float3x2" ; }
297- else if (name == " Matrix4x4" ) { name = " float4x4" ; }
298- else if (name == " Plane" ) { name = " plane" ; }
299- else if (name == " Quaternion" ) { name = " quaternion" ; }
300- else if (name == " Vector2" ) { name = " float2" ; }
301- else if (name == " Vector3" ) { name = " float3" ; }
302- else if (name == " Vector4" ) { name = " float4" ; }
303-
304306 write (" winrt::@::%" , ns, name);
305307 }
306308 else if (category == category::struct_type)
0 commit comments