File tree Expand file tree Collapse file tree 1 file changed +18
-1
lines changed
Expand file tree Collapse file tree 1 file changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -1038,7 +1038,7 @@ impl CompositionGraph {
10381038 if let NodeKind :: Definition = node. kind {
10391039 log:: debug!(
10401040 "removing type definition `{name}`" ,
1041- name = node. name . as_ref( ) . unwrap( )
1041+ name = node. export . as_ref( ) . unwrap( )
10421042 ) ;
10431043 let removed = self . defined . remove ( & node. item_kind . ty ( ) ) ;
10441044 assert ! ( removed. is_some( ) ) ;
@@ -1969,6 +1969,23 @@ mod test {
19691969 ) ) ;
19701970 }
19711971
1972+ #[ test]
1973+ fn it_can_remove_a_type_definition ( ) {
1974+ let mut graph = CompositionGraph :: new ( ) ;
1975+ let ty_id = graph
1976+ . types_mut ( )
1977+ . add_defined_type ( DefinedType :: Alias ( ValueType :: Primitive ( PrimitiveType :: S32 ) ) ) ;
1978+ let node_id = graph
1979+ . define_type ( "foo" , Type :: Value ( ValueType :: Defined ( ty_id) ) )
1980+ . unwrap ( ) ;
1981+
1982+ // Definition nodes store their name in `export`, not `name`.
1983+ // Removing a definition node should not panic.
1984+ graph. remove_node ( node_id) ;
1985+
1986+ // Verify the definition and export were cleaned up
1987+ assert ! ( graph. get_export( "foo" ) . is_none( ) ) ;
1988+ }
19721989 #[ test]
19731990 fn it_cleans_up_exports_on_unregister_package ( ) {
19741991 let mut graph = CompositionGraph :: new ( ) ;
You can’t perform that action at this time.
0 commit comments