// RUN: %clang_cc1 -std=c++20 -ast-dump %s | FileCheck %s

namespace PR46029 {

template <int N>
void canary1();
template <int N>
void canary2();

template <int N>
struct A {
  void f() requires(N == 1) {
    static_assert(N == 1);
    canary1<N>();
  }
  void f() requires(N == 2) {
    static_assert(N == 2);
    canary2<N>();
  }
};

// This checks that `canary1<1>` and `canaray2<2>` are instantiated, thus
// indirectly validating that the correct candidates of `A::f` were really
// instantiated each time. 
// The `static_assert`s validate we don't instantiate wrong candidates.

// CHECK:{{.*}}FunctionTemplateDecl {{.*}} canary1
// CHECK:      {{.*}}TemplateArgument integral
// CHECK-SAME: {{1$}}
template struct A<1>;

// CHECK:      {{.*}}FunctionTemplateDecl {{.*}} canary2
// CHECK:      {{.*}}TemplateArgument integral
// CHECK-SAME: {{2$}}
template struct A<2>;

template struct A<3>;
}
