proc-macro2-impersonated
Adapted from
proc-macro2
Removed wrap proc-macro for correct span outside rust sources Not use in proc-macro context if you don't know what you do
A wrapper around the procedural macro API of the compiler's proc_macro
crate.
This library serves two purposes:
-
Bring proc-macro-like functionality to other contexts like build.rs and main.rs. Types from
proc_macro
are entirely specific to procedural macros and cannot ever exist in code outside of a procedural macro. Meanwhileproc_macro2
types may exist anywhere including non-macro code. By developing foundational libraries like syn and quote againstproc_macro2
rather thanproc_macro
, the procedural macro ecosystem becomes easily applicable to many other use cases and we avoid reimplementing non-macro equivalents of those libraries. -
Make procedural macros unit testable. As a consequence of being specific to procedural macros, nothing that uses
proc_macro
can be executed from a unit test. In order for helper libraries or components of a macro to be testable in isolation, they must be implemented usingproc_macro2
.
Usage
[]
= "1.0"