@@ -348,68 +348,73 @@ def one_interface_ancestors(type_name)
348348 end
349349
350350 def mixin_ancestors0 ( decl , type_name , align_params :, included_modules :, included_interfaces :, extended_modules :, prepended_modules :, extended_interfaces :)
351- decl . each_mixin do |member |
352- case member
353- when AST ::Members ::Include
354- module_name = member . name
355- module_args = member . args . map { |type | align_params ? type . sub ( align_params ) : type }
351+ case decl
352+ when AST ::Declarations ::Base
353+ decl . each_mixin do |member |
354+ case member
355+ when AST ::Members ::Include
356+ module_name = member . name
357+ module_args = member . args . map { |type | align_params ? type . sub ( align_params ) : type }
356358
357- case
358- when member . name . class? && included_modules
359- MixinClassError . check! ( type_name : type_name , env : env , member : member )
360- NoMixinFoundError . check! ( member . name , env : env , member : member )
359+ case
360+ when member . name . class? && included_modules
361+ MixinClassError . check! ( type_name : type_name , env : env , member : member )
362+ NoMixinFoundError . check! ( member . name , env : env , member : member )
361363
362- module_decl = env . normalized_module_entry ( module_name ) or raise
363- module_args = AST ::TypeParam . normalize_args ( module_decl . type_params , module_args )
364+ module_decl = env . normalized_module_entry ( module_name ) or raise
365+ module_args = AST ::TypeParam . normalize_args ( module_decl . type_params , module_args )
364366
365- module_name = env . normalize_module_name ( module_name )
366- included_modules << Definition ::Ancestor ::Instance . new ( name : module_name , args : module_args , source : member )
367- when member . name . interface? && included_interfaces
368- NoMixinFoundError . check! ( member . name , env : env , member : member )
367+ module_name = env . normalize_module_name ( module_name )
368+ included_modules << Definition ::Ancestor ::Instance . new ( name : module_name , args : module_args , source : member )
369+ when member . name . interface? && included_interfaces
370+ NoMixinFoundError . check! ( member . name , env : env , member : member )
369371
370- interface_decl = env . interface_decls . fetch ( module_name )
371- module_args = AST ::TypeParam . normalize_args ( interface_decl . decl . type_params , module_args )
372+ interface_decl = env . interface_decls . fetch ( module_name )
373+ module_args = AST ::TypeParam . normalize_args ( interface_decl . decl . type_params , module_args )
372374
373- included_interfaces << Definition ::Ancestor ::Instance . new ( name : module_name , args : module_args , source : member )
374- end
375+ included_interfaces << Definition ::Ancestor ::Instance . new ( name : module_name , args : module_args , source : member )
376+ end
375377
376- when AST ::Members ::Prepend
377- if prepended_modules
378- MixinClassError . check! ( type_name : type_name , env : env , member : member )
379- NoMixinFoundError . check! ( member . name , env : env , member : member )
378+ when AST ::Members ::Prepend
379+ if prepended_modules
380+ MixinClassError . check! ( type_name : type_name , env : env , member : member )
381+ NoMixinFoundError . check! ( member . name , env : env , member : member )
380382
381- module_decl = env . normalized_module_entry ( member . name ) or raise
382- module_name = module_decl . name
383+ module_decl = env . normalized_module_entry ( member . name ) or raise
384+ module_name = module_decl . name
383385
384- module_args = member . args . map { |type | align_params ? type . sub ( align_params ) : type }
385- module_args = AST ::TypeParam . normalize_args ( module_decl . type_params , module_args )
386+ module_args = member . args . map { |type | align_params ? type . sub ( align_params ) : type }
387+ module_args = AST ::TypeParam . normalize_args ( module_decl . type_params , module_args )
386388
387- prepended_modules << Definition ::Ancestor ::Instance . new ( name : module_name , args : module_args , source : member )
388- end
389+ prepended_modules << Definition ::Ancestor ::Instance . new ( name : module_name , args : module_args , source : member )
390+ end
389391
390- when AST ::Members ::Extend
391- module_name = member . name
392- module_args = member . args
392+ when AST ::Members ::Extend
393+ module_name = member . name
394+ module_args = member . args
393395
394- case
395- when member . name . class? && extended_modules
396- MixinClassError . check! ( type_name : type_name , env : env , member : member )
397- NoMixinFoundError . check! ( member . name , env : env , member : member )
396+ case
397+ when member . name . class? && extended_modules
398+ MixinClassError . check! ( type_name : type_name , env : env , member : member )
399+ NoMixinFoundError . check! ( member . name , env : env , member : member )
398400
399- module_decl = env . normalized_module_entry ( module_name ) or raise
400- module_args = AST ::TypeParam . normalize_args ( module_decl . type_params , module_args )
401+ module_decl = env . normalized_module_entry ( module_name ) or raise
402+ module_args = AST ::TypeParam . normalize_args ( module_decl . type_params , module_args )
401403
402- module_name = env . normalize_module_name ( module_name )
403- extended_modules << Definition ::Ancestor ::Instance . new ( name : module_name , args : module_args , source : member )
404- when member . name . interface? && extended_interfaces
405- NoMixinFoundError . check! ( member . name , env : env , member : member )
404+ module_name = env . normalize_module_name ( module_name )
405+ extended_modules << Definition ::Ancestor ::Instance . new ( name : module_name , args : module_args , source : member )
406+ when member . name . interface? && extended_interfaces
407+ NoMixinFoundError . check! ( member . name , env : env , member : member )
406408
407- interface_decl = env . interface_decls . fetch ( module_name )
408- module_args = AST ::TypeParam . normalize_args ( interface_decl . decl . type_params , module_args )
409+ interface_decl = env . interface_decls . fetch ( module_name )
410+ module_args = AST ::TypeParam . normalize_args ( interface_decl . decl . type_params , module_args )
409411
410- extended_interfaces << Definition ::Ancestor ::Instance . new ( name : module_name , args : module_args , source : member )
412+ extended_interfaces << Definition ::Ancestor ::Instance . new ( name : module_name , args : module_args , source : member )
413+ end
411414 end
412415 end
416+ when AST ::Ruby ::Declarations ::Base
417+ # noop
413418 end
414419 end
415420
0 commit comments