@@ -9,7 +9,7 @@ use fil_utils::{
99} ;
1010use itertools:: Itertools ;
1111use pest:: pratt_parser:: { Assoc , Op , PrattParser } ;
12- use pest_consume:: { match_nodes , Error , Parser } ;
12+ use pest_consume:: { Error , Parser , match_nodes } ;
1313use std:: fs;
1414use std:: hash:: Hash ;
1515use std:: path:: Path ;
@@ -42,8 +42,8 @@ lazy_static::lazy_static! {
4242}
4343
4444pub enum BodyEl {
45- Ext ( ast:: Extern ) ,
46- Comp ( ast:: Component ) ,
45+ Ext ( Box < ast:: Extern > ) ,
46+ Comp ( Box < ast:: Component > ) ,
4747}
4848
4949#[ derive( Clone ) ]
@@ -73,10 +73,10 @@ impl FilamentParser {
7373 } ) ?;
7474 // Add a new file to the position table
7575 let string_content = std:: str:: from_utf8 ( content) ?. to_string ( ) ;
76- let file = GlobalPositionTable :: as_mut ( )
76+ let file = GlobalPositionTable :: get ( )
7777 . add_file ( path. to_string_lossy ( ) . to_string ( ) , string_content) ;
7878 let user_data = UserData { file } ;
79- let ( _, content) = GlobalPositionTable :: as_ref ( ) . get_file_data ( file) ;
79+ let ( _, content) = GlobalPositionTable :: get ( ) . get_file_data ( file) ;
8080 // Parse the file
8181 let inputs =
8282 FilamentParser :: parse_with_userdata ( Rule :: file, content, user_data)
@@ -111,11 +111,8 @@ impl FilamentParser {
111111 fn get_span ( node : & Node ) -> GPosIdx {
112112 let ud = node. user_data ( ) ;
113113 let sp = node. as_span ( ) ;
114- let pos = GlobalPositionTable :: as_mut ( ) . add_pos (
115- ud. file ,
116- sp. start ( ) ,
117- sp. end ( ) ,
118- ) ;
114+ let pos =
115+ GlobalPositionTable :: get ( ) . add_pos ( ud. file , sp. start ( ) , sp. end ( ) ) ;
119116 GPosIdx ( pos)
120117 }
121118
@@ -901,9 +898,9 @@ impl FilamentParser {
901898 fn comp_or_ext ( input : Node ) -> ParseResult < BodyEl > {
902899 Ok ( match_nodes ! (
903900 input. into_children( ) ;
904- [ external( sig) ] => BodyEl :: Ext ( sig) ,
905- [ generate( sig) ] => BodyEl :: Ext ( sig) ,
906- [ component( comp) ] => BodyEl :: Comp ( comp) ,
901+ [ external( sig) ] => BodyEl :: Ext ( Box :: new ( sig) ) ,
902+ [ generate( sig) ] => BodyEl :: Ext ( Box :: new ( sig) ) ,
903+ [ component( comp) ] => BodyEl :: Comp ( Box :: new ( comp) ) ,
907904 ) )
908905 }
909906
@@ -925,8 +922,8 @@ impl FilamentParser {
925922
926923 for m in mixed {
927924 match m {
928- BodyEl :: Ext ( sig) => namespace. externs. push( sig) ,
929- BodyEl :: Comp ( comp) => namespace. components. push( comp) ,
925+ BodyEl :: Ext ( sig) => namespace. externs. push( * sig) ,
926+ BodyEl :: Comp ( comp) => namespace. components. push( * comp) ,
930927 }
931928 }
932929 namespace
0 commit comments