davidtgoldblatt added a comment.

This version of the commit also introduces some breakages; as before I'm not 
sure if it's the code or the diff that's incorrect.

Repro:

  enum class Enum { E1 };
  
  template <typename T1>
  inline constexpr bool some_concept = true;
  
  template <typename T1, Enum>
  struct S {
    template <typename T2>
    requires some_concept<T2>
    void func(const T2 &);
  };
  
  template <typename T1>
  struct S<T1, Enum::E1> {
    template <typename T2>
    requires some_concept<T2>
    void func(const T2 &);
  };
  
  template <typename T1>
  template <typename T2>
  requires some_concept<T2>
  inline void S<T1, Enum::E1>::func(const T2 &) {}

Error:

  repro.cpp:23:30: error: out-of-line definition of 'func' does not match any 
declaration in 'S<type-parameter-0-0, Enum::E1>'
  inline void S<T1, Enum::E1>::func(const T2 &) {}


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D146178/new/

https://reviews.llvm.org/D146178

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to