dtolnay / reflect

Compile-time reflection API for developing robust procedural macros (proof of concept)

Home Page:https://docs.rs/reflect

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Provide a predefined library definition of std out of the box

dtolnay opened this issue · comments

The user shouldn't have to write out their own reflect::library! description of extern crate std. A complete definition of everything in std should be built in to the reflect crate because practically all users will need it.

We still need to keep reflect::library! so that users can provide definitions of crates other than std, for example if serde_derive were implemented using reflect then it would need to contain a reflect::library! providing all the relevant signatures from the serde crate.

commented

In core/std there are traits that are impl-ed with generic parameters for a generic type. Correct me if I wrong, but current library! syntax is not supporting generics and it's probably infeasible to perform trait solving to resolve generic traits implementations. So my question is, should we just ignore any impls that have generic parameters or traits that are implemented for the generic types?

We'll fully support generic impls. It's not hard because the RUNTIME::std::path::to::Trait style makes the macro author do the method resolution for us.