@@ -86,8 +86,10 @@ def parse_getters(self, tvm: TVM, getters: List[int] = None) -> dict:
8686
8787 for parser in parsers :
8888 data = parser .parse_getters (tvm , self .tlb_sources )
89- if data :
89+ if isinstance ( data , dict ) :
9090 result ['abi_interfaces' ].append (parser .name )
91+ if 'extra_names' in parser .instance ['labels' ]:
92+ result ['abi_interfaces' ].extend (parser .instance ['labels' ]['extra_names' ])
9193 result .update (data )
9294
9395 return result
@@ -104,8 +106,10 @@ async def aparse_getters(self, tvm: TVM, getters: List[int] = None) -> dict:
104106
105107 for parser in parsers :
106108 data = await parser .aparse_getters (tvm , self .tlb_sources )
107- if data :
109+ if isinstance ( data , dict ) :
108110 result ['abi_interfaces' ].append (parser .name )
111+ if 'extra_names' in parser .instance ['labels' ]:
112+ result ['abi_interfaces' ].extend (parser .instance ['labels' ]['extra_names' ])
109113 result .update (data )
110114
111115 return result
@@ -121,8 +125,10 @@ def parse_getter_lazy(self, code_hash, get_tvm: Callable, getters: List[int] = N
121125
122126 for parser in parsers :
123127 data = parser .parse_getters (tvm , self .tlb_sources )
124- if data :
128+ if isinstance ( data , dict ) :
125129 result ['abi_interfaces' ].append (parser .name )
130+ if 'extra_names' in parser .instance ['labels' ]:
131+ result ['abi_interfaces' ].extend (parser .instance ['labels' ]['extra_names' ])
126132 for key , value in data .items ():
127133 if key not in result :
128134 result [key ] = value
@@ -145,16 +151,20 @@ async def aparse_getter_lazy(self, code_hash, get_tvm: Callable, getters: List[i
145151 tvm = await get_tvm ()
146152
147153 for parser in parsers :
148- result ['abi_interfaces' ].append (parser .name )
149- for key , value in (await parser .aparse_getters (tvm , self .tlb_sources )).items ():
150- if key not in result :
151- result [key ] = value
152- else :
153- if result [key ] is not None :
154+ data = await parser .aparse_getters (tvm , self .tlb_sources )
155+ if isinstance (data , dict ):
156+ result ['abi_interfaces' ].append (parser .name )
157+ if 'extra_names' in parser .instance ['labels' ]:
158+ result ['abi_interfaces' ].extend (parser .instance ['labels' ]['extra_names' ])
159+ for key , value in data .items ():
160+ if key not in result :
154161 result [key ] = value
155162 else :
156- logger .warning (f"Got multiple not null answers for getter { key } in { parser .name } " )
157- result .update ()
163+ if result [key ] is not None :
164+ result [key ] = value
165+ else :
166+ logger .warning (f"Got multiple not null answers for getter { key } in { parser .name } " )
167+ result .update ()
158168
159169 return result
160170
0 commit comments