File tree Expand file tree Collapse file tree
crates/emmylua_ls/src/handlers Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -435,18 +435,20 @@ fn get_super_member_id(
435435 member_key : & LuaMemberKey ,
436436 infer_guard : & mut InferGuard ,
437437) -> Option < LuaMemberId > {
438- if let LuaType :: Ref ( super_type_id) = & super_type {
439- infer_guard. check ( super_type_id) . ok ( ) ?;
440- let member_map = semantic_model. get_member_info_map ( & super_type) ?;
441-
442- if let Some ( member_infos) = member_map. get ( & member_key) {
443- let first_property = member_infos. first ( ) ?. property_owner_id . clone ( ) ?;
444- if let LuaSemanticDeclId :: Member ( member_id) = first_property {
445- return Some ( member_id) ;
446- }
438+ let super_type_id = match & super_type {
439+ LuaType :: Ref ( id) => id,
440+ LuaType :: Generic ( generic) => generic. get_base_type_id_ref ( ) ,
441+ _ => return None ,
442+ } ;
443+ infer_guard. check ( super_type_id) . ok ( ) ?;
444+ let member_map = semantic_model. get_member_info_map ( & super_type) ?;
445+
446+ if let Some ( member_infos) = member_map. get ( & member_key) {
447+ let first_property = member_infos. first ( ) ?. property_owner_id . clone ( ) ?;
448+ if let LuaSemanticDeclId :: Member ( member_id) = first_property {
449+ return Some ( member_id) ;
447450 }
448451 }
449-
450452 None
451453}
452454
Original file line number Diff line number Diff line change @@ -319,4 +319,28 @@ mod tests {
319319 . unwrap ( ) ;
320320 assert_eq ! ( result. len( ) , 1 ) ;
321321 }
322+
323+ #[ test]
324+ fn test_generic_type_override ( ) {
325+ let mut ws = ProviderVirtualWorkspace :: new ( ) ;
326+ ws. def (
327+ r#"
328+ ---@class A<T>
329+ ---@field aaa fun(a: integer): integer
330+ "# ,
331+ ) ;
332+ let result = ws
333+ . check_inlay_hint (
334+ r#"
335+ ---@class B<T>: A<T>
336+ local B
337+
338+ function B:aaa(a)
339+ return a
340+ end
341+ "# ,
342+ )
343+ . unwrap ( ) ;
344+ assert_eq ! ( result. len( ) , 1 ) ;
345+ }
322346}
You can’t perform that action at this time.
0 commit comments