jspaezp opened a new issue, #7547: URL: https://github.com/apache/arrow-rs/issues/7547
**Describe the bug** Right now **To Reproduce** Attempting to compile something where `Result` is aliased to something with a different signature (which I feel is a common pattern), fails to compile bc the proc macro generates code that uses that type, rather than the `std::result::Result`. For example this code: ```rust use parquet_derive::ParquetRecordReader; #[derive(Debug)] enum MyInternalError { IForgotSomething, ExpectecNotEmpty, } pub type Result = std::result::Result<(), MyInternalError>; #[derive(Debug, ParquetRecordReader)] struct MyRecord { name: String, age: u32, } fn main() { println!("Hello, world!"); } ``` Fails with this error (minor edits to remove some paths...) ``` error[E0107]: type alias takes 0 generic arguments but 2 generic arguments were supplied --> src/main.rs:13:17 | 13 | #[derive(Debug, ParquetRecordReader)] | ^^^^^^^^^^^^^^^^^^^ expected 0 generic arguments | note: type alias defined here, with 0 generic parameters --> src/main.rs:11:10 | 11 | pub type Result = std::result::Result<(), MyInternalError>; | ^^^^^^ = note: this error originates in the derive macro `ParquetRecordReader` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0053]: method `read_from_row_group` has an incompatible type for trait --> src/main.rs:13:17 | 13 | #[derive(Debug, ParquetRecordReader)] | ^^^^^^^^^^^^^^^^^^^ expected `ParquetError`, found `MyInternalError` | = note: expected signature `fn(&mut Vec<_>, &mut dyn RowGroupReader, _) -> std::result::Result<_, ParquetError>` found signature `fn(&mut Vec<_>, &mut dyn RowGroupReader, _) -> std::result::Result<_, MyInternalError>` = note: this error originates in the derive macro `ParquetRecordReader` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0308]: mismatched types --> src/main.rs:13:17 | 13 | #[derive(Debug, ParquetRecordReader)] | ^^^^^^^^^^^^^^^^^^^ | | | expected `MyInternalError`, found `ParquetError` | arguments to this enum variant are incorrect | help: the type constructed contains `ParquetError` due to the type of the argument passed --> src/main.rs:13:17 | 13 | #[derive(Debug, ParquetRecordReader)] | ^^^^^^^^^^^^^^^^^^^ this argument influences the type of `Err` note: tuple variant defined here --> $HOME/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:537:5 | 537 | Err(#[stable(feature = "rust1", since = "1.0.0")] E), | ^^^ = note: this error originates in the derive macro `ParquetRecordReader` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: `?` couldn't convert the error to `MyInternalError` --> src/main.rs:13:35 | 13 | #[derive(Debug, ParquetRecordReader)] | ------------------^ | | | | | the trait `From<ParquetError>` is not implemented for `MyInternalError` | this can't be annotated with `?` because it has type `Result<_, ParquetError>` | = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait = help: the trait `FromResidual<std::result::Result<Infallible, E>>` is implemented for `std::result::Result<T, F>` = note: required for `std::result::Result<(), MyInternalError>` to implement `FromResidual<std::result::Result<Infallible, ParquetError>>` = note: this error originates in the derive macro `ParquetRecordReader` (in Nightly builds, run with -Z macro-backtrace for more info) Some errors have detailed explanations: E0053, E0107, E0277, E0308. For more information about an error, try `rustc --explain E0053`. error: could not compile `parquet_derive_test` (bin "parquet_derive_test") due to 4 previous errors ``` **Expected behavior** Succesful compilation. **Additional context** None that I am aware of. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org