// RUN: %clang_delta --transformation=reduce-class-template-param --counter=1 %s 2>&1 | %remove_lit_checks | FileCheck %s -check-prefix=CHECK-FIRST
// RUN: %clang_delta --transformation=reduce-class-template-param --counter=2 %s 2>&1 | %remove_lit_checks | FileCheck %s -check-prefix=CHECK-SECOND

template <typename T1, typename T2>
struct S {};
template <>
struct S<int, bool> {};
template<typename T1>
struct S2 : S<T1, bool> {};

// CHECK-FIRST: template < typename T2>
// CHECK-FIRST: struct S {};
// CHECK-FIRST: template <>
// CHECK-FIRST: struct S< bool> {};
// CHECK-FIRST: template<typename T1>
// CHECK-FIRST: struct S2 : S< bool> {};

// CHECK-SECOND: template <typename T1>
// CHECK-SECOND: struct S {};
// CHECK-SECOND: template <>
// CHECK-SECOND: struct S<int> {};
// CHECK-SECOND: template<typename T1>
// CHECK-SECOND: struct S2 : S<T1> {};

