Skip to content

unresolved-method of impl IntoIterator<Item=...> as return type #14680

Closed
@boozook

Description

@boozook

rust-analyzer version: 0.4.1493-standalone (237ffa3 2023-04-27)

rustc version: rustc 1.70.0-nightly (84dd17b56 2023-04-14)

Screenshot 2023-04-29 at 02 58 02

Unfortunately I can't isolate it right now, but probably that will be easy:

  • use cargo crate
  • create config = cargo::util::config::Config::default()
  • create workspace = cargo::core::workspace::Workspace::new(&manifest_path, &*config)
  • call this with workspace.members(), e.g.: filter_packages_with_metadata(workspace.members())
    Something like this. 🙄
Code from screenshot
fn filter_packages_with_metadata<'i, I: Iterator<Item = &'i Package> + 'i>(iter: I) -> Vec<(PackageId, toml::Value)> {
	filter_packages_with_metadata_iter(iter).into_iter().collect()
}

fn filter_packages_with_metadata_iter<'i, I>(iter: I) -> impl IntoIterator<Item = (PackageId, toml::Value)> + 'i
	where I: Iterator<Item = &'i Package> + 'i {
	iter.filter_map(|p| {
		    p.manifest()
		     .custom_metadata()
		     .map(|meta| {
			     meta.as_table()
			         .map(|t| t.get("my-metadata"))
			         .flatten()
			         .map(|meta| (p.package_id(), meta))
		     })
		     .flatten()
	    })
	    .filter_map(|(id, v)| toml::Value::try_from(v).ok().map(|v| (id, v)))
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-tytype system / type inference / traits / method resolutionC-bugCategory: bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions