packages feed

dhscanner-kbgen 1.0.14 → 1.0.15

raw patch · 2 files changed

+10/−6 lines, 2 filesdep ~dhscanner-bitcodePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: dhscanner-bitcode

API changes (from Hackage documentation)

Files

dhscanner-kbgen.cabal view
@@ -33,7 +33,7 @@         * explain in plain English your query's purpose
         * et voilà !
 
-version:            1.0.14
+version:            1.0.15
 license:            GPL-3.0-only
 license-file:       LICENSE
 author:             OrenGitHub
@@ -60,7 +60,7 @@         base >= 4.18 && < 4.19,
         containers < 0.7,
         dhscanner-ast >= 1.1.4,
-        dhscanner-bitcode >= 1.0.12
+        dhscanner-bitcode >= 1.0.13
 
     hs-source-dirs:
         src
src/Kbgen.hs view
@@ -296,7 +296,7 @@ -- This is how the fact will look inside the Prolog file
 --
 -- @
--- kb_call_method_of_super( Call, Method, ResolvedSuper ).
+-- kb_call_method_of_class( Call, Method, Class ).
 -- @
 --
 -- __When should I use this fact__ ( motivation: [CVE-2024-53995](https://nvd.nist.gov/vuln/detail/CVE-2024-53995) )
@@ -580,11 +580,15 @@ prologify_ConstString :: ConstString -> String
 prologify_ConstString (ConstString (ConstStr loc) (Token.ConstStr value _)) = prologify_ConstString' loc value
 
-prologify_CallResolved' :: Location -> String -> String
-prologify_CallResolved' call resolved = printf "kb_call_resolved( %s, \'%s\' )." (locationify call) resolved
+prologify_CallResolved'' :: Location -> String -> Token.ClassName -> String
+prologify_CallResolved'' call m c = printf "kb_call_method_of_class( %s, %s, %s )." (locationify call) m (locationify (Token.getClassNameLocation c))
 
+prologify_CallResolved' :: Location -> Fqn.Fqn -> String
+prologify_CallResolved' call (Fqn.CallMethodOfClass _ m c) = prologify_CallResolved'' call m c 
+prologify_CallResolved' call fqn = printf "kb_call_resolved( %s, \'%s\' )." (locationify call) (show fqn)
+
 prologify_CallResolved :: CallResolved -> String
-prologify_CallResolved (CallResolved (Call call) (Resolved fqn)) = prologify_CallResolved' call (show fqn)
+prologify_CallResolved (CallResolved (Call call) (Resolved fqn)) = prologify_CallResolved' call fqn
 
 prologify_ConstBoolTrue' :: Location -> String
 prologify_ConstBoolTrue' trueValue = printf "kb_class_name( %s, \'%s\' )." (locationify trueValue)