alias aliases(a...) = a;
alias Components = Dependencies!Top;
template Dependencies(alias Component)
{
alias Dependencies = aliases!(Top.DirectDependencies);
// alias Dependencies = Top.DirectDependencies; // but this succeeds
}
struct Top
{
alias DirectDependencies = aliases!();
enum l = Components.length;
}
----
Error: template instance `onlineapp.Dependencies!(Top)` error instantiating
Moving `Components` last makes the code compile.
Comment #1 by maxsamukha — 2023-01-22T08:35:43Z
Further reduced:
alias aliases(a...) = a;
alias Components = Dependencies!();
template Dependencies()
{
alias Dependencies = aliases!(Top.DirectDependencies);
// alias Dependencies = Top.DirectDependencies; // but this succeeds
}
struct Top
{
alias DirectDependencies = aliases!();
enum l = Components.length;
}
Comment #2 by robert.schadek — 2024-12-13T19:26:51Z