Issue |
125290
|
Summary |
Possible bug in implementation of P3310
|
Labels |
new issue
|
Assignees |
|
Reporter |
higher-performance
|
I think #124137 may have introduced a bug. The following code no longer compiles: https://godbolt.org/z/G77fMj1nh
```
struct None {};
template<class T>
struct Node { using Tail = T; };
template <template<class> class Fixture, typename List>
struct Recursive {
static void foo() {
return Recursive<Fixture, typename List::Tail>::foo();
}
};
template <template<class> class Fixture>
struct Recursive<Fixture, None> {
static void foo() {}
};
template <class>
class Monadic {};
template <class...>
class Variadic {};
int main() {
Recursive<Monadic, Node<None> >::foo(); // success
Recursive<Variadic, Node<None> >::foo(); // error
}
```
It seems that the partial specialization `struct Recursive<Fixture, None>` is completely missed by the compiler now... but only when the `Fixture` is variadic. I assume this is not supposed to be the case?
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs