@@ -89,23 +89,26 @@ def _to_db_type(x: str) -> str:
8989_final_db_class_lookup = {}
9090
9191
92+ def get_ql_ipa_class_db (name : str ) -> ql .Synth .FinalClassDb :
93+ return _final_db_class_lookup .setdefault (name , ql .Synth .FinalClassDb (name = name ,
94+ params = [
95+ ql .Synth .Param ("id" , _to_db_type (name ))]))
96+
97+
9298def get_ql_ipa_class (cls : schema .Class ):
9399 if cls .derived :
94100 return ql .Synth .NonFinalClass (name = cls .name , derived = sorted (cls .derived ),
95101 root = (cls .name == schema .root_class_name ))
96102 if cls .ipa and cls .ipa .from_class is not None :
97103 source = cls .ipa .from_class
98- _final_db_class_lookup . setdefault (source , ql . Synth . FinalClassDb ( source ) ).subtract_type (cls .name )
104+ get_ql_ipa_class_db (source ).subtract_type (cls .name )
99105 return ql .Synth .FinalClassDerivedIpa (name = cls .name ,
100106 params = [ql .Synth .Param ("id" , _to_db_type (source ))])
101107 if cls .ipa and cls .ipa .on_arguments is not None :
102108 return ql .Synth .FinalClassFreshIpa (name = cls .name ,
103109 params = [ql .Synth .Param (k , _to_db_type (v ))
104110 for k , v in cls .ipa .on_arguments .items ()])
105- ret = ql .Synth .FinalClassDb (name = cls .name ,
106- params = [ql .Synth .Param ("id" , _to_db_type (cls .name ))])
107- _final_db_class_lookup [cls .name ] = ret
108- return ret
111+ return get_ql_ipa_class_db (cls .name )
109112
110113
111114def get_import (file : pathlib .Path , swift_dir : pathlib .Path ):
0 commit comments