@@ -79,6 +79,7 @@ class TestSimplifyUsing : public TestFixture {
7979 TEST_CASE (simplifyUsing39);
8080 TEST_CASE (simplifyUsing40);
8181 TEST_CASE (simplifyUsing41);
82+ TEST_CASE (simplifyUsing42);
8283
8384 TEST_CASE (simplifyUsing8970);
8485 TEST_CASE (simplifyUsing8971);
@@ -956,6 +957,40 @@ class TestSimplifyUsing : public TestFixture {
956957 ASSERT_EQUALS (expected, tok (code));
957958 }
958959
960+ void simplifyUsing42 () {
961+ {
962+ const char code[] = " using A = bool;\n "
963+ " template<typename T> A func() {}\n " ;
964+ const char expected[] = " template < typename T > bool func ( ) { }" ;
965+ ASSERT_EQUALS (expected, tok (code));
966+ }
967+ {
968+ const char code[] = " using A = bool;\n "
969+ " template<typename A> A func() {}\n " ;
970+ const char expected[] = " template < typename A > A func ( ) { }" ;
971+ ASSERT_EQUALS (expected, tok (code));
972+ }
973+ {
974+ const char code[] = " using A = bool;\n "
975+ " template<typename T> class C { A x; }\n " ;
976+ const char expected[] = " template < typename T > class C { bool x ; }" ;
977+ ASSERT_EQUALS (expected, tok (code));
978+ }
979+ {
980+ const char code[] = " using A = bool;\n "
981+ " template<typename A> class C { A x; }\n " ;
982+ const char expected[] = " template < typename A > class C { A x ; }" ;
983+ ASSERT_EQUALS (expected, tok (code));
984+ }
985+ {
986+ const char code[] = " using A = bool;\n "
987+ " template<typename T> class C { using A = T; A x; }\n "
988+ " C<int> c;\n " ;
989+ const char expected[] = " class C<int> ; C<int> c ; class C<int> { int x ; }" ;
990+ ASSERT_EQUALS (expected, tok (code));
991+ }
992+ }
993+
959994 void simplifyUsing8970 () {
960995 const char code[] = " using V = std::vector<int>;\n "
961996 " struct A {\n "
0 commit comments