@@ -84,7 +84,7 @@ def get_ql_class(cls: schema.Class, lookup: typing.Dict[str, schema.Class]):
8484
8585def _to_db_type (x : str ) -> str :
8686 if x [0 ].isupper ():
87- return "@ " + inflection . underscore ( x )
87+ return "Db:: " + x
8888 return x
8989
9090
@@ -93,14 +93,15 @@ def _to_db_type(x: str) -> str:
9393
9494def get_ql_ipa_class (cls : schema .Class ):
9595 if cls .derived :
96- return ql .Ipa .NonFinalClass (name = cls .name , derived = sorted (cls .derived ), root = (cls .name == schema .root_class_name ))
96+ return ql .Ipa .NonFinalClass (name = cls .name , derived = sorted (cls .derived ),
97+ root = (cls .name == schema .root_class_name ))
9798 if cls .ipa and cls .ipa .from_class is not None :
9899 source = cls .ipa .from_class
99100 _final_db_class_lookup .setdefault (source , ql .Ipa .FinalClassDb (source )).subtract_type (cls .name )
100- return ql .Ipa .FinalClassIpaFrom (name = cls .name , type = _to_db_type (source ))
101+ return ql .Ipa .FinalClassDerivedIpa (name = cls .name , params = [ ql . Ipa . Param ( "id" , _to_db_type (source ))] )
101102 if cls .ipa and cls .ipa .on_arguments is not None :
102- return ql .Ipa .FinalClassIpaOn (name = cls .name ,
103- params = [ ql . Ipa . Param ( k , _to_db_type ( v )) for k , v in cls .ipa .on_arguments .items ()])
103+ return ql .Ipa .FinalClassFreshIpa (name = cls .name , params = [ ql . Ipa . Param ( k , _to_db_type ( v )) for k , v in
104+ cls .ipa .on_arguments .items ()])
104105 return _final_db_class_lookup .setdefault (cls .name , ql .Ipa .FinalClassDb (cls .name ))
105106
106107
@@ -120,9 +121,11 @@ def get_classes_used_by(cls: ql.Class):
120121 return sorted (set (t for t in get_types_used_by (cls ) if t [0 ].isupper ()))
121122
122123
123- _generated_stub_re = re .compile (r"\n*private import .*\n+class \w+ extends \w+ \{[ \n]?\}"
124+ _generated_stub_re = re .compile (r"\n*private import .*\n+("
125+ r"class \w+ extends \w+ \{[ \n]?\}"
124126 "|"
125- r"\n*predicate construct\w+\(.*?\) \{ none\(\) \}" , re .MULTILINE )
127+ r"predicate construct\w+\(.*?\) \{ none\(\) \}"
128+ ")" , re .MULTILINE )
126129
127130
128131def _is_generated_stub (file ):
@@ -271,7 +274,7 @@ def generate(opts, renderer):
271274 ipa_type = get_ql_ipa_class (cls )
272275 if ipa_type .is_final :
273276 final_ipa_types .append (ipa_type )
274- if ipa_type .is_ipa_from or ( ipa_type . is_ipa_on and ipa_type .has_params ) :
277+ if ipa_type .is_ipa and ipa_type .has_params :
275278 stub_file = stub_out / cls .dir / f"{ cls .name } Constructor.qll"
276279 if not stub_file .is_file () or _is_generated_stub (stub_file ):
277280 renderer .render (ql .Ipa .ConstructorStub (ipa_type ), stub_file )
0 commit comments