Skip to content

Tracking issue: Fix remaining type mismatches in rust-analyzer repo #8961

@flodiebold

Description

@flodiebold

We've got about 1000 type mismatches remaining when running rust-analyzer analysis-stats . on the rust-analyzer repo itself. Since the repo actually typechecks, all of these type mismatches are actually bugs or missing features. Since we want to emit type errors sooner or later, we need to get these to 0 🙂

Here's the categorization I've got so far: (all line numbers are from revision b8262099cc51065259daf10b4b23ff49ce74434f)

fn main() {
    unreachable!()
}

This only seems to happen with macros; e.g.loop {} does not result in a type mismatch.
Fixed by #8983.

crates/hir_def/src/body/lower.rs 640:20-640:22: Expected (), got <F as FnOnce<(&mut ExprCollector, Option<T>)>>::Output
crates/hir_def/src/body/lower.rs 635:23-641:17: Expected (), got <F as FnOnce<(&mut ExprCollector, Option<T>)>>::Output
crates/hir_def/src/body/lower.rs 643:20-643:41: Expected (), got <F as FnOnce<(&mut ExprCollector, Option<T>)>>::Output
crates/hir_def/src/expr.rs 268:68-268:82: Expected (), got <impl FnMut(Idx<Expr>) as FnOnce<(Idx<Expr>,)>>::Output
crates/hir_def/src/expr.rs 278:38-278:46: Expected (), got <impl FnMut(Idx<Expr>) as FnOnce<(Idx<Expr>,)>>::Output
crates/hir_def/src/expr.rs 279:39-279:47: Expected (), got <impl FnMut(Idx<Expr>) as FnOnce<(Idx<Expr>,)>>::Output
crates/hir_def/src/expr.rs 361:20-361:30: Expected (), got <impl FnMut(Idx<Expr>) as FnOnce<(Idx<Expr>,)>>::Output
crates/hir_def/src/expr.rs 359:57-362:17: Expected (), got <impl FnMut(Idx<Expr>) as FnOnce<(Idx<Expr>,)>>::Output
crates/hir_def/src/expr.rs 364:41-364:49: Expected (), got <impl FnMut(Idx<Expr>) as FnOnce<(Idx<Expr>,)>>::Output
crates/hir_def/src/expr.rs 443:36-443:43: Expected (), got <impl FnMut(Idx<Pat>) as FnOnce<(Idx<Pat>,)>>::Output
crates/hir_def/src/expr.rs 451:34-451:43: Expected (), got <impl FnMut(Idx<Pat>) as FnOnce<(Idx<Pat>,)>>::Output
crates/hir_def/src/resolver.rs 456:24-456:74: Expected (), got <dyn FnMut(Name, ScopeDef) as FnOnce<(Name, ScopeDef)>>::Output
process_names: Expected <dyn FnMut(Name, ScopeDef) as FnOnce<(Name, ScopeDef)>>::Output, got ()
crates/hir_def/src/resolver.rs 454:20-457:21: Expected (), got <dyn FnMut(Name, ScopeDef) as FnOnce<(Name, ScopeDef)>>::Output
crates/hir_def/src/resolver.rs 453:61-458:17: Expected (), got <dyn FnMut(Name, ScopeDef) as FnOnce<(Name, ScopeDef)>>::Output
crates/hir_def/src/resolver.rs 461:20-461:76: Expected (), got <dyn FnMut(Name, ScopeDef) as FnOnce<(Name, ScopeDef)>>::Output
crates/hir_def/src/resolver.rs 459:62-462:17: Expected (), got <dyn FnMut(Name, ScopeDef) as FnOnce<(Name, ScopeDef)>>::Output
crates/hir_def/src/resolver.rs 465:20-465:76: Expected (), got <dyn FnMut(Name, ScopeDef) as FnOnce<(Name, ScopeDef)>>::Output
crates/hir_def/src/resolver.rs 463:65-466:17: Expected (), got <dyn FnMut(Name, ScopeDef) as FnOnce<(Name, ScopeDef)>>::Output
process_names: Expected <dyn FnMut(Name, ScopeDef) as FnOnce<(Name, ScopeDef)>>::Output, got ()
crates/hir_def/src/path/lower/lower_use.rs 55:16-55:47: Expected (), got <dyn FnMut(ModPath, &UseTree, bool, Option<ImportAlias>) as FnOnce<(ModPath, &UseTree, bool, Option<ImportAlias>)>>::Output
lower_use_tree: Expected <dyn FnMut(ModPath, &UseTree, bool, Option<ImportAlias>) as FnOnce<(ModPath, &UseTree, bool, Option<ImportAlias>)>>::Output, got ()
crates/hir_def/src/path/lower/lower_use.rs 54:12-56:13: Expected (), got <dyn FnMut(ModPath, &UseTree, bool, Option<ImportAlias>) as FnOnce<(ModPath, &UseTree, bool, Option<ImportAlias>)>>::Output
crates/hir_def/src/path/lower/lower_use.rs 62:16-62:48: Expected (), got <dyn FnMut(ModPath, &UseTree, bool, Option<ImportAlias>) as FnOnce<(ModPath, &UseTree, bool, Option<ImportAlias>)>>::Output
lower_use_tree: Expected <dyn FnMut(ModPath, &UseTree, bool, Option<ImportAlias>) as FnOnce<(ModPath, &UseTree, bool, Option<ImportAlias>)>>::Output, got ()
crates/hir_def/src/path/lower/lower_use.rs 61:12-63:13: Expected (), got <dyn FnMut(ModPath, &UseTree, bool, Option<ImportAlias>) as FnOnce<(ModPath, &UseTree, bool, Option<ImportAlias>)>>::Output
crates/hir_def/src/path/lower/lower_use.rs 41:8-64:9: Expected (), got <dyn FnMut(ModPath, &UseTree, bool, Option<ImportAlias>) as FnOnce<(ModPath, &UseTree, bool, Option<ImportAlias>)>>::Output
crates/hir_def/src/path/lower/lower_use.rs 36:11-65:5: Expected (), got <dyn FnMut(ModPath, &UseTree, bool, Option<ImportAlias>) as FnOnce<(ModPath, &UseTree, bool, Option<ImportAlias>)>>::Output
crates/vfs-notify/src/lib.rs 217:8-217:26: Expected (), got <dyn Fn(Message) + Send as FnOnce<(Message,)>>::Output
crates/vfs-notify/src/lib.rs 216:45-218:5: Expected (), got <dyn Fn(Message) + Send as FnOnce<(Message,)>>::Output
crates/stdx/src/process.rs 45:24-45:44: Expected (), got <dyn FnMut(&str) as FnOnce<(&str,)>>::Output
crates/stdx/src/process.rs 47:24-47:44: Expected (), got <dyn FnMut(&str) as FnOnce<(&str,)>>::Output
crates/stdx/src/process.rs 44:20-48:21: Expected (), got <dyn FnMut(&str) as FnOnce<(&str,)>>::Output
crates/stdx/src/process.rs 43:71-49:17: Expected (), got <dyn FnMut(&str) as FnOnce<(&str,)>>::Output
crates/hir_expand/src/diagnostics.rs 72:8-72:34: Expected (), got <dyn FnMut(&dyn Diagnostic) as FnOnce<(&dyn Diagnostic,)>>::Output
crates/hir_expand/src/diagnostics.rs 60:44-73:5: Expected (), got <dyn FnMut(&dyn Diagnostic) as FnOnce<(&dyn Diagnostic,)>>::Output
crates/flycheck/src/lib.rs 253:8-253:33: Expected (), got <dyn Fn(Message) + Send as FnOnce<(Message,)>>::Output
crates/flycheck/src/lib.rs 252:40-254:5: Expected (), got <dyn Fn(Message) + Send as FnOnce<(Message,)>>::Output
crates/hir/src/semantics.rs 864:12-864:24: Expected (), got <dyn FnMut(Name, ScopeDef) as FnOnce<(Name, ScopeDef)>>::Output
crates/hir/src/semantics.rs 843:70-865:9: Expected (), got <dyn FnMut(Name, ScopeDef) as FnOnce<(Name, ScopeDef)>>::Output

Probably also:

crates/hir_expand/src/diagnostics.rs 107:30-107:56: Expected Box<dyn FnMut(&dyn Diagnostic), Global>, got Box<F, Global>
crates/ide/src/lib.rs 238:62-238:65: Expected &dyn Fn(PrimeCachesProgress) + Sync, got &F
crates/stdx/src/process.rs 25:29-51:9: Expected &mut dyn FnMut(bool, &mut Vec<u8, Global>, bool), got &mut |bool, {unknown}, bool| -> ()
crates/hir_expand/src/diagnostics.rs 87:26-87:38: Expected Box<dyn FnMut(&dyn Diagnostic) -> bool, Global>, got Box<F, Global>
crates/ide/src/runnables.rs 106:36-124:5: Expected &mut dyn FnMut(Either<ModuleDef, Impl>), got &mut |Either<ModuleDef, {unknown}>| -> ()
crates/project_model/src/build_data.rs 180:12-252:13: Expected &mut dyn FnMut(&str), got &mut |str| -> ()
crates/hir_ty/src/lib.rs 301:16-301:37: Expected &mut dyn Folder<Interner>, got &mut FreeVarFolder<impl FnMut(BoundVar, DebruijnIndex) -> Ty<Interner>>
crates/hir_ty/src/lib.rs 328:16-328:32: Expected &mut dyn Folder<Interner>, got &mut TyFolder<impl FnMut(Ty<Interner>, DebruijnIndex) -> Ty<Interner>>
crates/hir_ty/src/lib.rs 446:42-446:61: Expected &mut dyn Folder<Interner>, got &mut ErrorReplacer
crates/mbe/src/tt_iter.rs 122:41-122:50: Expected &mut dyn TreeSink, got &mut OffsetTokenSink
crates/hir_ty/src/lower.rs 1011:86-1011:95: Expected &<Binders<WhereClause<Interner>> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/lower.rs 1011:68-1011:96: Expected ProgramClause<Interner>, got Binders<WhereClause<Interner>>
crates/hir_ty/src/display.rs 387:57-387:66: Expected &<Binders<Vec<Binders<WhereClause<Interner>>, Global>> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/display.rs 573:53-573:62: Expected &<Binders<Vec<Binders<WhereClause<Interner>>, Global>> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/display.rs 621:68-621:77: Expected &<Binders<WhereClause<Interner>> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/display.rs 655:53-655:62: Expected &<Binders<Vec<Binders<WhereClause<Interner>>, Global>> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/autoderef.rs 97:32-97:41: Expected &<Ty<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/autoderef.rs 108:33-108:42: Expected &<Ty<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/autoderef.rs 134:41-134:50: Expected &<ConstrainedSubst<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/autoderef.rs 172:85-172:94: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/autoderef.rs 174:61-174:70: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/chalk_ext.rs 220:44-220:53: Expected &<Binders<Vec<Binders<WhereClause<Interner>>, Global>> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/chalk_ext.rs 239:64-239:73: Expected &<Binders<WhereClause<Interner>> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/builder.rs 41:31-41:40: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/builder.rs 133:46-133:55: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/builder.rs 138:87-138:96: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/method_resolution.rs 806:43-806:52: Expected &<Ty<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/chalk_db.rs 682:44-682:53: Expected &<Binders<WhereClause<Interner>> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/chalk_db.rs 684:4-684:10: Expected Vec<Binders<WhereClause<Interner>>, Global>, got Vec<<Binders<WhereClause<Interner>> as Fold<<Binders<WhereClause<Interner>> as HasInterner>::Interner>>::Result, Global>
crates/hir_ty/src/chalk_db.rs 678:52-685:1: Expected Vec<Binders<WhereClause<Interner>>, Global>, got Vec<<Binders<WhereClause<Interner>> as Fold<<Binders<WhereClause<Interner>> as HasInterner>::Interner>>::Result, Global>
crates/hir_ty/src/chalk_db.rs 705:42-705:51: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/chalk_db.rs 717:42-717:51: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/infer/expr.rs 1008:32-1008:41: Expected &<Binders<WhereClause<Interner>> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/infer/unify.rs 96:18-96:27: Expected &<(Ty<Interner>, Ty<Interner>) as HasInterner>::Interner, got &Interner
crates/hir_ty/src/infer/unify.rs 117:80-117:89: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/infer/unify.rs 119:86-119:95: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/infer/unify.rs 121:87-121:96: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/infer/unify.rs 56:34-56:43: Expected &<Substitution<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/infer/unify.rs 57:85-57:94: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/infer/unify.rs 58:88-58:97: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/infer/unify.rs 59:84-59:93: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/infer/unify.rs 61:65-61:74: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/infer/unify.rs 476:72-476:81: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/infer/unify.rs 489:72-489:81: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/infer/unify.rs 509:18-509:27: Expected &<GenericArg<Interner> as HasInterner>::Interner, got &Interner
crates/hir/src/display.rs 240:56-240:65: Expected &<Binders<WhereClause<Interner>> as HasInterner>::Interner, got &Interner
crates/hir_ty/src/infer/unify.rs 346:42-346:55: Expected Canonicalized<InEnvironment<Goal<Interner>>>, got Canonicalized<<InEnvironment<Goal<Interner>> as Fold<Interner>>::Result>
crates/hir_ty/src/infer/unify.rs 345:40-345:54: Expected &Canonicalized<InEnvironment<Goal<Interner>>>, got &Canonicalized<<InEnvironment<Goal<Interner>> as Fold<Interner>>::Result>
crates/hir_ty/src/infer/unify.rs 372:48-372:59: Expected InEnvironment<Goal<Interner>>, got <InEnvironment<Goal<Interner>> as Fold<Interner>>::Result
crates/hir/src/display.rs 242:57-242:68: Expected &[Binders<WhereClause<Interner>>], got &Vec<<Binders<WhereClause<Interner>> as Fold<<Binders<WhereClause<Interner>> as HasInterner>::Interner>>::Result, Global>
crates/hir_ty/src/chalk_db.rs 104:53-104:67: Expected &[TyFingerprint; 12], got &[TyFingerprint; 2]
crates/ide/src/display/navigation_target.rs 342:33-342:35: Expected &Macro, got &Fn
crates/hir_def/src/attr.rs 71:20-71:23: Expected &Arc<[Attr]>, got &[Attr; 0]
crates/hir_def/src/attr.rs 82:20-82:23: Expected &Arc<[Attr]>, got &[Attr; 0]
crates/hir_def/src/attr.rs 224:41-224:47: Expected &TupleField, got &RecordField
crates/hir_def/src/attr.rs 305:70-305:97: Expected InFile<&dyn AttrsOwner>, got InFile<&SourceFile>
crates/hir_def/src/attr.rs 355:51-355:90: Expected InFile<&dyn AttrsOwner>, got InFile<&LifetimeParam>
crates/hir_def/src/attr.rs 359:51-359:90: Expected InFile<&dyn AttrsOwner>, got InFile<&ConstParam>
crates/hir_def/src/attr.rs 377:57-377:91: Expected InFile<&dyn AttrsOwner>, got InFile<&Module>
crates/hir_def/src/attr.rs 381:57-381:84: Expected InFile<&dyn AttrsOwner>, got InFile<&SourceFile>
crates/ide/src/display/navigation_target.rs 317:53-317:71: Expected InFile<&dyn NameOwner>, got InFile<&RecordField>

Also similar:

crates/proc_macro_api/src/msg.rs 100:15-100:28: Expected Result<Option<&String>, Error>, got Result<Option<&mut String>, {unknown}>
crates/rust-analyzer/tests/slow-tests/support.rs 326:16-326:36: Expected Option<(&Value, &Value)>, got Option<(&&Value, &&Value)>
crates/rust-analyzer/tests/slow-tests/support.rs 327:19-330:13: Expected Option<(&&Value, &&Value)>, got Option<(&Value, &Value)>
crates/rust-analyzer/tests/slow-tests/support.rs 324:12-330:13: Expected Option<(&Value, &Value)>, got Option<(&&Value, &&Value)>
crates/rust-analyzer/tests/slow-tests/support.rs 332:48-348:9: Expected Option<(&&Value, &&Value)>, got Option<(&Value, &Value)>
crates/rust-analyzer/tests/slow-tests/support.rs 352:13-352:37: Expected Option<(&&Value, &&Value)>, got Option<(&Value, &Value)>
crates/rust-analyzer/tests/slow-tests/support.rs 304:4-353:5: Expected Option<(&Value, &Value)>, got Option<(&&Value, &&Value)>
crates/rust-analyzer/tests/slow-tests/support.rs 303:95-354:1: Expected Option<(&Value, &Value)>, got Option<(&&Value, &&Value)>
crates/tt/src/buffer.rs 166:27-166:40: Expected Option<&Subtree>, got Option<&&Subtree>
crates/tt/src/buffer.rs 194:83-194:91: Expected Option<&TokenTree>, got Option<&&TokenTree>
crates/ide/src/doc_links.rs 33:83-33:96: Expected Option<&mut dyn FnMut(BrokenLink) -> Option<(CowStr, CowStr)>>, got Option<&mut fn broken_link_clone_cb(BrokenLink) -> Option<(CowStr, CowStr)>>
crates/ide/src/doc_links.rs 74:68-74:81: Expected Option<&mut dyn FnMut(BrokenLink) -> Option<(CowStr, CowStr)>>, got Option<&mut |BrokenLink| -> Option<(CowStr, CowStr)>>
crates/ide/src/doc_links.rs 127:8-127:39: Expected Option<&mut dyn FnMut(BrokenLink) -> Option<(CowStr, CowStr)>>, got Option<&mut fn broken_link_clone_cb(BrokenLink) -> Option<(CowStr, CowStr)>>
crates/proc_macro_srv/src/lib.rs 75:8-80:10: Expected Result<&Expander, String>, got Result<&mut Expander, {unknown}>
crates/proc_macro_srv/src/lib.rs 70:76-81:5: Expected Result<&Expander, String>, got Result<&mut Expander, {unknown}>
crates/proc_macro_srv/src/proc_macro/bridge/rpc.rs 279:39-279:50: Expected Box<&str, Global>, got Box<String, Global>
crates/proc_macro_srv/src/proc_macro/bridge/rpc.rs 292:39-292:46: Expected Option<&&str>, got Option<&String>
crates/proc_macro_srv/src/proc_macro/bridge/rpc.rs 290:8-294:9: Expected Option<&str>, got Option<&&str>
crates/proc_macro_srv/src/proc_macro/bridge/rpc.rs 289:41-295:5: Expected Option<&str>, got Option<&&str>
crates/project_model/src/workspace.rs 148:47-148:64: Expected Option<&AbsPath>, got Option<&AbsPathBuf>
crates/hir_ty/src/diagnostics/expr.rs 115:43-115:68: Expected AstPtr<RecordExpr>, got AstPtr<&RecordExpr>
crates/hir_def/src/item_tree/lower.rs 701:50-701:54: Expected &dyn GenericParamsOwner, got &impl GenericParamsOwner
crates/hir_def/src/item_tree/lower.rs 713:50-713:54: Expected &dyn GenericParamsOwner, got &impl GenericParamsOwner
crates/hir_def/src/item_tree/lower.rs 727:55-727:59: Expected &dyn GenericParamsOwner, got &impl GenericParamsOwner
crates/hir_def/src/item_tree/lower.rs 733:55-733:59: Expected &dyn GenericParamsOwner, got &impl GenericParamsOwner
crates/hir_expand/src/diagnostics.rs 56:33-56:35: Expected &dyn Diagnostic, got &impl Diagnostic
crates/hir_def/src/path.rs 82:59-82:66: Expected &mut dyn FnMut(ModPath, &UseTree, bool, Option<ImportAlias>), got &mut impl FnMut(ModPath, &UseTree, bool, Option<ImportAlias>)

Maybe also

crates/syntax/src/algo.rs 264:39-264:53: Expected &mut (dyn Iterator<Item = NodeOrToken<SyntaxNode<RustLanguage>, SyntaxToken<RustLanguage>>>), got &mut <impl IntoIterator<Item = NodeOrToken<SyntaxNode<RustLanguage>, SyntaxToken<RustLanguage>>> as IntoIterator>::IntoIter
crates/syntax/src/algo.rs 308:41-308:55: Expected &mut (dyn Iterator<Item = NodeOrToken<SyntaxNode<RustLanguage>, SyntaxToken<RustLanguage>>>), got &mut <impl IntoIterator<Item = NodeOrToken<SyntaxNode<RustLanguage>, SyntaxToken<RustLanguage>>> as IntoIterator>::IntoIter

These are the remaining ones I haven't categorized yet (28; I suspect a few are follow-ups from missing attribute macro support or other missing features):

crates/hir_expand/src/builtin_macro.rs 166:61-166:78: Expected usize, got TextSize
crates/hir_expand/src/builtin_macro.rs 166:48-166:78: Expected TextSize, got <usize as Sub<TextSize>>::Output

crates/ide/src/doc_links.rs 314:28-314:67: Expected str, got String
crates/ide/src/doc_links.rs 314:28-314:67: Expected str, got String
crates/ide_assists/src/handlers/raw_string.rs 79:91-79:98: Expected str, got String
crates/syntax/src/ast/make.rs 69:15-69:19: Expected &str, got &String

crates/ide_db/src/search.rs 391:74-391:79: Expected &SyntaxNode<RustLanguage>, got &Lazy<{unknown}, || -> SyntaxNode<RustLanguage>>
crates/ide_db/src/search.rs 409:62-409:67: Expected &SyntaxNode<RustLanguage>, got &Lazy<{unknown}, || -> SyntaxNode<RustLanguage>>

crates/hir/src/semantics/source_to_def.rs 157:8-157:39: Expected Option<ID>, got Copied<{unknown}>
crates/hir/src/semantics/source_to_def.rs 152:20-158:5: Expected Option<ID>, got Copied<{unknown}>
crates/hir/src/semantics/source_to_def.rs 166:8-166:52: Expected Option<TypeParamId>, got Copied<{unknown}>
crates/hir/src/semantics/source_to_def.rs 160:99-167:5: Expected Option<TypeParamId>, got Copied<{unknown}>
crates/hir/src/semantics/source_to_def.rs 178:8-178:56: Expected Option<LifetimeParamId>, got Copied<{unknown}>
crates/hir/src/semantics/source_to_def.rs 172:33-179:5: Expected Option<LifetimeParamId>, got Copied<{unknown}>
crates/hir/src/semantics/source_to_def.rs 190:8-190:53: Expected Option<ConstParamId>, got Copied<{unknown}>
crates/hir/src/semantics/source_to_def.rs 184:30-191:5: Expected Option<ConstParamId>, got Copied<{unknown}>

crates/hir_def/src/find_path.rs 112:67-114:5: Expected &mut dyn FnMut(&DefMap, Idx<ModuleData>) -> Option<Name>, got &mut |{unknown}, {unknown}| -> Map<{unknown}, |({unknown}, {unknown})| -> {unknown}>
crates/hir_def/src/find_path.rs 139:55-141:17: Expected &mut dyn FnMut(&DefMap, Idx<ModuleData>) -> Option<{unknown}>, got &mut |{unknown}, {unknown}| -> Filter<{unknown}, |&{unknown}| -> bool>
crates/hir_def/src/nameres.rs 303:47-309:9: Expected &mut dyn FnMut(&DefMap, Idx<ModuleData>) -> Option<ModuleId>, got &mut |{unknown}, {unknown}| -> Option<{unknown}>
crates/hir_def/src/nameres/path_resolution.rs 257:52-263:17: Expected &mut dyn FnMut(&DefMap, Idx<ModuleData>) -> Option<PerNs>, got &mut |{unknown}, {unknown}| -> Option<PerNs>
crates/hir_def/src/resolver.rs 348:62-355:17: Expected &mut dyn FnMut(&DefMap, Idx<ModuleData>) -> Option<{unknown}>, got &mut |{unknown}, {unknown}| -> Option<()>

crates/hir_ty/src/diagnostics/decl_check/case_conv.rs 54:13-54:54: Expected String, got <String as Add<&String>>::Output
crates/ide_assists/src/handlers/convert_comment_block.rs 170:8-170:43: Expected String, got <String as Add<&&str>>::Output
crates/ide_assists/src/handlers/convert_comment_block.rs 169:11-171:5: Expected String, got <String as Add<&&str>>::Output
crates/tt/src/lib.rs 258:35-260:29: Expected <String as Add<&String>>::Output, got String
crates/tt/src/lib.rs 262:29-262:30: Expected <String as Add<&String>>::Output, got String
crates/tt/src/lib.rs 265:42-265:62: Expected <String as Add<&String>>::Output, got String
crates/tt/src/lib.rs 267:25-267:27: Expected &str, got &<String as Add<&String>>::Output

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-tytype system / type inference / traits / method resolutionS-actionableSomeone could pick this issue up and work on it right now

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions