Skip to content

Forward referencing issue #3375

Open
Open
@dlangBugzillaToGithub

Description

@dlangBugzillaToGithub

Manu reported this on 2024-11-25T06:11:36Z

Transferred from https://issues.dlang.org/show_bug.cgi?id=24878

Description

struct Container(T)
{
    // T.sizeof/alignof causes circular reference!
    enum AllocAlignment = T.sizeof;

    T* ptr;
}

struct Test
{
    Container!Test test;
}

error : struct `main.Test` no size because of forward reference
error : template instance `main.Container!(Test)` error instantiating


Checking T.sizeof causes a forward referencing error; but it doesn't need to evaluate that enum to determine the size of `Container!T` which has a know-able size with no T knowledge... evaluation should be deferred.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions