fzyzcjy / flutter_rust_bridge

Flutter/Dart <-> Rust binding generator, feature-rich, but seamless and simple.
https://fzyzcjy.github.io/flutter_rust_bridge/
MIT License
4.3k stars 301 forks source link

warnings when compiling against the latest nightly 1.85.0 #2425

Open uditrugman opened 10 hours ago

uditrugman commented 10 hours ago

Describe the bug

there are warnings when compiling with the latest rust nightly version 1.85.0:

warning: unexpected `cfg` condition name: `frb_expand`
 --> rust_lib/src/api/commons/commons_di.rs:4:1
  |
4 | #[frb(opaque)]
  | ^^^^^^^^^^^^^^
  |
  = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows`
  = help: consider using a Cargo feature instead
  = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
           [lints.rust]
           unexpected_cfgs = { level = "warn", check-cfg = ['cfg(frb_expand)'] }
  = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(frb_expand)");` to the top of the `build.rs`
  = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
  = note: `#[warn(unexpected_cfgs)]` on by default
  = note: this warning originates in the attribute macro `frb` (in Nightly builds, run with -Z macro-backtrace for more info)

Steps to reproduce

Hint: A simple way to reproduce is to clone and modify the https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/frb_example/dart_minimal example package according to your needs.

  1. ...
  2. ...
  3. ...

Logs

warning: unexpected `cfg` condition name: `frb_expand`
 --> rust_lib/src/api/commons/commons_di.rs:4:1
  |
4 | #[frb(opaque)]
  | ^^^^^^^^^^^^^^
  |
  = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows`
  = help: consider using a Cargo feature instead
  = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
           [lints.rust]
           unexpected_cfgs = { level = "warn", check-cfg = ['cfg(frb_expand)'] }
  = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(frb_expand)");` to the top of the `build.rs`
  = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
  = note: `#[warn(unexpected_cfgs)]` on by default
  = note: this warning originates in the attribute macro `frb` (in Nightly builds, run with -Z macro-backtrace for more info)


### Expected behavior

_No response_

### Generated binding code

_No response_

### OS

_No response_

### Version of `flutter_rust_bridge_codegen`

_No response_

### Flutter info

_No response_

### Version of `clang++`

_No response_

### Additional context

_No response_
fzyzcjy commented 10 hours ago

Hi, could you please show rust_lib/src/api/commons/commons_di.rs (especially code around that warning line)?

uditrugman commented 10 hours ago

just normal frb structure :

#[frb(opaque)]
pub struct FrbCommonsDI(Arc<crate::commons::commons_di::CommonsDI>);

my workaround was to add the below to my Cargo.toml

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(frb_expand)'] }

but the correct solution, i think, is to add "frb_expand" to the list of features of frb_rust.

fzyzcjy commented 8 hours ago

but the correct solution, i think, is to add "frb_expand" to the list of features of frb_rust.

Looks reasonable and feel free to PR for this! (since this does not look to be super hard)