Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

project-const-generics work graph #50

Closed
BoxyUwU opened this issue Feb 13, 2023 · 1 comment
Closed

project-const-generics work graph #50

BoxyUwU opened this issue Feb 13, 2023 · 1 comment

Comments

@BoxyUwU
Copy link
Member

BoxyUwU commented Feb 13, 2023

Below is a fancy graph listing work that needs to be done on each feature and whether some of the const generics features are required for other features to work. This doesn't track completion status or who is working on what, mostly just making this so that I am not dying from having too many thoughts in my brain without anything written down

There is also a document about the type field on Const and stuff about how we check that we have provided a const arg of the correct type. Not entirely relevant to this but wasn't sure where else to put it.

flowchart TB
    C[Typecheck anon consts in parent]
    D[Fully implement and rename AliasTy as AliasTerm]
    E[Support forward declared const param types]
    H[Support normalization of const projections]
    I[Add ability to evaluate ConstKind::Expr]
    J[Before evaluating consts check the ParamEnv holds]
    K[Support ADT construction in gce/mgce as if it was injective]
    L[Do not relate non-injective substs of Consts]
    N[Add a ConstParamType trait that is explicitly implemented for const param types]
    O[Require const params to be Sized or make it possible to have !Sized arguments]
    P[Figure out what to do about evaluatable bounds]
    R[Allow const arguments to omit braces if they are paths]
    S[Ensure ConstKind::Expr arguments are ConstParamTy]
    T[Introduce Opaque constants similar to Opaque types]
    U[Print out ConstKind::Expr better than just const expr]
    V[Implement ConstEquate and ConstEvaluatable in new solver]
    W[Don't call expand_abstract_consts in super_relate_consts]
    X[Document in dev guide how const arguments types are checked]
    Y[Document in dev guide how we typecheck anon consts]
    Z[Split up type_of query into different queries for each purpose it serves]
    
    subgraph min_generic_const_exprs
    H
    J
    K
    L
    P
    R
    T
    V
    W
    end

    subgraph generic_const_exprs
    I
    S
    U
    end
    
    subgraph adt_const_params
        direction LR
        N
        O
    end

    subgraph misc_cleanup
    direction LR
    X
    Z
    D
    end    

    subgraph generic_const_param_types
    direction TB
    E --> C
    C --> Y
    end

    misc_cleanup --> min_generic_const_exprs
    misc_cleanup --> generic_const_param_types
    adt_const_params-->generic_const_param_types
    generic_const_param_types-->generic_const_exprs
    min_generic_const_exprs-->generic_const_exprs
Loading
@BoxyUwU
Copy link
Member Author

BoxyUwU commented Nov 2, 2024

this is pretty out of date now, ill hopefully update it at some point but until then better to keep it closed

@BoxyUwU BoxyUwU closed this as not planned Won't fix, can't repro, duplicate, stale Nov 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant