From 8e1646d19a774496e305434f0893bbcb6381a84a Mon Sep 17 00:00:00 2001 From: Lucian Popescu Date: Fri, 22 May 2026 21:39:33 +0100 Subject: [PATCH 1/8] Delete generated IR files --- rules/algorithm/ir_refcount.json | 1644 -------------- rules/algorithm/ir_unsafe.json | 1403 ------------ rules/arpa_inet/ir_unsafe.json | 98 - rules/array/ir_refcount.json | 48 - rules/array/ir_unsafe.json | 107 - rules/assert/ir_refcount.json | 23 - rules/assert/ir_unsafe.json | 23 - rules/brotli/ir_refcount.json | 558 ----- rules/brotli/ir_unsafe.json | 655 ------ rules/builtin/ir_refcount.json | 146 -- rules/builtin/ir_unsafe.json | 360 --- rules/carray/ir_refcount.json | 10 - rules/carray/ir_unsafe.json | 10 - rules/cmath/ir_unsafe.json | 153 -- rules/cstdlib/ir_unsafe.json | 340 --- rules/cstring/ir_refcount.json | 277 --- rules/cstring/ir_unsafe.json | 1246 ----------- rules/deque/ir_refcount.json | 126 -- rules/deque/ir_unsafe.json | 260 --- rules/errno/ir_unsafe.json | 13 - rules/fstream/ir_refcount.json | 96 - rules/fstream/ir_unsafe.json | 316 --- rules/initializer_list/ir_unsafe.json | 41 - rules/iomanip/ir_unsafe.json | 20 - rules/iostream/ir_refcount.json | 132 -- rules/iostream/ir_unsafe.json | 158 -- rules/ip/ir_unsafe.json | 32 - rules/limits/ir_unsafe.json | 44 - rules/locale/ir_unsafe.json | 40 - rules/map/ir_refcount.json | 1078 --------- rules/map/ir_unsafe.json | 1000 --------- rules/math/ir_unsafe.json | 89 - rules/netdb/ir_unsafe.json | 88 - rules/pair/ir_refcount.json | 651 ------ rules/pair/ir_unsafe.json | 465 ---- rules/poll/ir_unsafe.json | 51 - rules/pwd/ir_unsafe.json | 27 - rules/select/ir_unsafe.json | 78 - rules/signal/ir_unsafe.json | 52 - rules/socket/ir_unsafe.json | 644 ------ rules/stat/ir_unsafe.json | 114 - rules/stdio/ir_refcount.json | 733 ------- rules/stdio/ir_unsafe.json | 692 ------ rules/string/ir_refcount.json | 1484 ------------- rules/string/ir_unsafe.json | 1826 --------------- rules/termios/ir_unsafe.json | 88 - rules/time/ir_unsafe.json | 243 -- rules/unique_ptr/ir_refcount.json | 367 ---- rules/unique_ptr/ir_unsafe.json | 413 ---- rules/unistd/ir_unsafe.json | 354 --- rules/vector/ir_refcount.json | 2198 ------------------- rules/vector/ir_unsafe.json | 2923 ------------------------- rules/xattr/ir_unsafe.json | 77 - 53 files changed, 24114 deletions(-) delete mode 100644 rules/algorithm/ir_refcount.json delete mode 100644 rules/algorithm/ir_unsafe.json delete mode 100644 rules/arpa_inet/ir_unsafe.json delete mode 100644 rules/array/ir_refcount.json delete mode 100644 rules/array/ir_unsafe.json delete mode 100644 rules/assert/ir_refcount.json delete mode 100644 rules/assert/ir_unsafe.json delete mode 100644 rules/brotli/ir_refcount.json delete mode 100644 rules/brotli/ir_unsafe.json delete mode 100644 rules/builtin/ir_refcount.json delete mode 100644 rules/builtin/ir_unsafe.json delete mode 100644 rules/carray/ir_refcount.json delete mode 100644 rules/carray/ir_unsafe.json delete mode 100644 rules/cmath/ir_unsafe.json delete mode 100644 rules/cstdlib/ir_unsafe.json delete mode 100644 rules/cstring/ir_refcount.json delete mode 100644 rules/cstring/ir_unsafe.json delete mode 100644 rules/deque/ir_refcount.json delete mode 100644 rules/deque/ir_unsafe.json delete mode 100644 rules/errno/ir_unsafe.json delete mode 100644 rules/fstream/ir_refcount.json delete mode 100644 rules/fstream/ir_unsafe.json delete mode 100644 rules/initializer_list/ir_unsafe.json delete mode 100644 rules/iomanip/ir_unsafe.json delete mode 100644 rules/iostream/ir_refcount.json delete mode 100644 rules/iostream/ir_unsafe.json delete mode 100644 rules/ip/ir_unsafe.json delete mode 100644 rules/limits/ir_unsafe.json delete mode 100644 rules/locale/ir_unsafe.json delete mode 100644 rules/map/ir_refcount.json delete mode 100644 rules/map/ir_unsafe.json delete mode 100644 rules/math/ir_unsafe.json delete mode 100644 rules/netdb/ir_unsafe.json delete mode 100644 rules/pair/ir_refcount.json delete mode 100644 rules/pair/ir_unsafe.json delete mode 100644 rules/poll/ir_unsafe.json delete mode 100644 rules/pwd/ir_unsafe.json delete mode 100644 rules/select/ir_unsafe.json delete mode 100644 rules/signal/ir_unsafe.json delete mode 100644 rules/socket/ir_unsafe.json delete mode 100644 rules/stat/ir_unsafe.json delete mode 100644 rules/stdio/ir_refcount.json delete mode 100644 rules/stdio/ir_unsafe.json delete mode 100644 rules/string/ir_refcount.json delete mode 100644 rules/string/ir_unsafe.json delete mode 100644 rules/termios/ir_unsafe.json delete mode 100644 rules/time/ir_unsafe.json delete mode 100644 rules/unique_ptr/ir_refcount.json delete mode 100644 rules/unique_ptr/ir_unsafe.json delete mode 100644 rules/unistd/ir_unsafe.json delete mode 100644 rules/vector/ir_refcount.json delete mode 100644 rules/vector/ir_unsafe.json delete mode 100644 rules/xattr/ir_unsafe.json diff --git a/rules/algorithm/ir_refcount.json b/rules/algorithm/ir_refcount.json deleted file mode 100644 index e1c45e35..00000000 --- a/rules/algorithm/ir_refcount.json +++ /dev/null @@ -1,1644 +0,0 @@ -{ - "f1": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".sort(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord" - ] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - } - }, - "f10": { - "body": [ - { - "text": "let count = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": " - " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ";\n if count <= 1 {\n " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": "\n } else {\n let mut write_ptr = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ";\n let mut iter = PtrValueIter::new(&" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", count);\n let mut last_unique = " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "iter" - } - ], - "body": [ - { - "text": ".next()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ";\n\n // the first unique value is already in place\n write_ptr += 1;\n\n for current_val in iter {\n if current_val != last_unique {\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "write_ptr" - } - ], - "body": [ - { - "text": ".write(" - }, - { - "method_call": { - "receiver": [ - { - "text": "current_val" - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n last_unique = current_val;\n write_ptr += 1;\n }\n }\n write_ptr\n }" - } - ], - "generics": { - "T1": [ - "PartialEq", - "Clone", - "ByteRepr" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f12": { - "body": [ - { - "text": "let mut __a0 = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ";\n while __a0 != " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " {\n let v = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 2, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__a0" - } - ], - "body": [ - { - "text": ".write(v)" - } - ] - } - }, - { - "text": ";\n __a0 += 1;\n }" - } - ], - "generics": { - "T1": [ - "Clone", - "ByteRepr" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a2": { - "type": "T1" - } - } - }, - "f13": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 2, - "access": "write" - } - } - ], - "body": [ - { - "text": ".write_all(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".slice_until(&" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".as_slice()" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 2, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_clone()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a2": { - "type": "&mut ::std::fs::File" - } - }, - "return_type": { - "type": "::std::fs::File" - } - }, - "f14": { - "body": [ - { - "text": "let fun = |x: Ptr<" - }, - { - "generic": 1 - }, - { - "text": ">, y: Ptr<" - }, - { - "generic": 1 - }, - { - "text": ">| " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "text": "x" - } - ], - "body": [ - { - "text": ".read()" - } - ] - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ", " - }, - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "text": "y" - } - ], - "body": [ - { - "text": ".read()" - } - ] - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ");\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".sort_with_cmp(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ", fun)" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone", - "ByteRepr" - ], - "T2": [ - "Fn(T1, T1) -> bool" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a2": { - "type": "T2" - } - } - }, - "f15": { - "body": [ - { - "text": "let fun = |x: Ptr<" - }, - { - "generic": 1 - }, - { - "text": ">, y: Ptr<" - }, - { - "generic": 1 - }, - { - "text": ">| " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "text": "x" - } - ], - "body": [ - { - "text": ".read()" - } - ] - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ", " - }, - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "text": "y" - } - ], - "body": [ - { - "text": ".read()" - } - ] - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ");\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".sort_with_cmp(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ", fun)" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone", - "ByteRepr" - ], - "T2": [ - "Fn(T1, T1) -> bool" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a2": { - "type": "T2" - } - } - }, - "f16": { - "body": [ - { - "text": "if " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".read()" - } - ] - } - }, - { - "text": " <= " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".read()" - } - ] - } - }, - { - "text": " { " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " } else { " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " }" - } - ], - "generics": { - "T1": [ - "PartialOrd", - "Clone", - "ByteRepr" - ] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f17": { - "body": [ - { - "text": "if " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".read()" - } - ] - } - }, - { - "text": " >= " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".read()" - } - ] - } - }, - { - "text": " { " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " } else { " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " }" - } - ], - "generics": { - "T1": [ - "PartialOrd", - "Clone", - "ByteRepr" - ] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f2": { - "body": [ - { - "text": "let count = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": " - " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ";\n let mut outptr = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 2, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ";\n for value in PtrValueIter::new(&" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", count) {\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "outptr" - } - ], - "body": [ - { - "text": ".write(" - }, - { - "method_call": { - "receiver": [ - { - "text": "value" - } - ], - "body": [ - { - "text": ".into()" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n outptr += 1;\n }\n outptr" - } - ], - "generics": { - "T1": [ - "Clone", - "PartialOrd", - "ByteRepr" - ], - "T2": [ - "Clone", - "From", - "ByteRepr" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a2": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f3": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".offset(\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - } - ], - "body": [ - { - "text": ".into_iter()" - } - ] - } - } - ], - "body": [ - { - "text": ".enumerate()" - } - ] - } - } - ], - "body": [ - { - "text": ".position(|(index_0, value_0)| {\n index_0 < " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": " as usize && " - }, - { - "method_call": { - "receiver": [ - { - "text": "value_0" - } - ], - "body": [ - { - "text": ".read()" - } - ] - } - }, - { - "text": " == " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": "\n })" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap_or(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": " as usize)" - } - ] - } - }, - { - "text": " as isize,\n )" - } - ] - } - } - ], - "generics": { - "T1": [ - "PartialEq", - "Clone", - "ByteRepr" - ] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a2": { - "type": "T1" - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f6": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".sort_with_cmp(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [ - "FnMut(Ptr, Ptr) -> bool" - ] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a2": { - "type": "T2" - } - } - }, - "f7": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".sort_with_cmp(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [ - "FnMut(Ptr, Ptr) -> bool" - ] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a2": { - "type": "T2" - } - } - }, - "f8": { - "body": [ - { - "text": "let count = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": " - " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ";\n let max_index = " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "PtrValueIter::new(&" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", count)" - } - ], - "body": [ - { - "text": ".enumerate()" - } - ] - } - } - ], - "body": [ - { - "text": ".max_by(|(_, val_a), (_, val_b)| {\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "val_a" - } - ], - "body": [ - { - "text": ".partial_cmp(val_b)" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap_or(std::cmp::Ordering::Equal)" - } - ] - } - }, - { - "text": "\n })" - } - ] - } - } - ], - "body": [ - { - "text": ".map(|(idx, _)| idx)" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap_or(0)" - } - ] - } - }, - { - "text": ";\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " + max_index" - } - ], - "generics": { - "T1": [ - "PartialOrd", - "Clone", - "ByteRepr" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f9": { - "body": [ - { - "text": "let tmp = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".read()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".write(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".read()" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".write(tmp)" - } - ] - } - }, - { - "text": ";" - } - ], - "generics": { - "T1": [ - "Clone", - "ByteRepr" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - } - } -} diff --git a/rules/algorithm/ir_unsafe.json b/rules/algorithm/ir_unsafe.json deleted file mode 100644 index f49370bb..00000000 --- a/rules/algorithm/ir_unsafe.json +++ /dev/null @@ -1,1403 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "let len = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "write" - } - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "::std::slice::from_raw_parts_mut(" - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": ", len)" - } - ], - "body": [ - { - "text": ".sort()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - } - }, - "f10": { - "body": [ - { - "text": "if " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " == " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " {\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": "\n } else {\n let mut write = " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ";\n let mut prev = " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ";\n let mut it = " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ";\n it = " - }, - { - "method_call": { - "receiver": [ - { - "text": "it" - } - ], - "body": [ - { - "text": ".add(1)" - } - ] - } - }, - { - "text": ";\n\n while it != " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " {\n if *prev != *it {\n write = " - }, - { - "method_call": { - "receiver": [ - { - "text": "write" - } - ], - "body": [ - { - "text": ".add(1)" - } - ] - } - }, - { - "text": ";\n *write = " - }, - { - "method_call": { - "receiver": [ - { - "text": "(*it)" - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ";\n prev = write;\n }\n it = " - }, - { - "method_call": { - "receiver": [ - { - "text": "it" - } - ], - "body": [ - { - "text": ".add(1)" - } - ] - } - }, - { - "text": ";\n }\n\n write = " - }, - { - "method_call": { - "receiver": [ - { - "text": "write" - } - ], - "body": [ - { - "text": ".add(1)" - } - ] - } - }, - { - "text": ";\n write\n }" - } - ], - "generics": { - "T1": [ - "PartialOrd", - "Clone" - ] - }, - "params": { - "a0": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f12": { - "body": [ - { - "text": "let count = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "write" - } - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "std::slice::from_raw_parts_mut(" - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": ", count)" - } - ], - "body": [ - { - "text": ".fill(" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a2": { - "type": "T1" - } - } - }, - "f13": { - "body": [ - { - "text": "let __start = " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const u8;\n let __end = " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const u8;\n let __len = " - }, - { - "method_call": { - "receiver": [ - { - "text": "__end" - } - ], - "body": [ - { - "text": ".offset_from(__start)" - } - ] - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 2, - "access": "write" - } - } - ], - "body": [ - { - "text": ".write_all(::std::slice::from_raw_parts(__start, __len))" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 2, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_clone()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a2": { - "type": "&mut ::std::fs::File" - } - }, - "return_type": { - "type": "::std::fs::File" - } - }, - "f14": { - "body": [ - { - "text": "let len = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "write" - } - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "::std::slice::from_raw_parts_mut(" - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": ", len)" - } - ], - "body": [ - { - "text": ".sort_by(|x, y| {\n if (" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")(*x, *y) {\n std::cmp::Ordering::Less\n } else if (" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")(*y, *x) {\n std::cmp::Ordering::Greater\n } else {\n std::cmp::Ordering::Equal\n }\n })" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Copy" - ], - "T2": [ - "FnMut(T1, T1) -> bool" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a2": { - "type": "&mut T2" - } - } - }, - "f15": { - "body": [ - { - "text": "let len = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "write" - } - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "::std::slice::from_raw_parts_mut(" - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": ", len)" - } - ], - "body": [ - { - "text": ".sort_by(|x, y| {\n if (" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")(*x, *y) {\n std::cmp::Ordering::Less\n } else if (" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")(*y, *x) {\n std::cmp::Ordering::Greater\n } else {\n std::cmp::Ordering::Equal\n }\n })" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Copy" - ], - "T2": [ - "FnMut(T1, T1) -> bool" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a2": { - "type": "&mut T2" - } - } - }, - "f16": { - "body": [ - { - "text": "if *" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " <= *" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " {\n (" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ") as *const _\n } else {\n (" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ") as *const _\n }" - } - ], - "generics": { - "T1": [ - "PartialOrd" - ] - }, - "params": { - "a0": { - "type": "*const T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f17": { - "body": [ - { - "text": "if *" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " >= *" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " {\n (" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ") as *const _\n } else {\n (" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ") as *const _\n }" - } - ], - "generics": { - "T1": [ - "PartialOrd" - ] - }, - "params": { - "a0": { - "type": "*const T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f2": { - "body": [ - { - "text": "let mut outptr = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 2, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ";\n let mut curr = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ";\n while curr < " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " {\n *outptr = " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(*curr)" - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - } - ], - "body": [ - { - "text": ".into()" - } - ] - } - }, - { - "text": ";\n curr = " - }, - { - "method_call": { - "receiver": [ - { - "text": "curr" - } - ], - "body": [ - { - "text": ".offset(1)" - } - ] - } - }, - { - "text": ";\n outptr = " - }, - { - "method_call": { - "receiver": [ - { - "text": "outptr" - } - ], - "body": [ - { - "text": ".offset(1)" - } - ] - } - }, - { - "text": ";\n }\n outptr" - } - ], - "generics": { - "T1": [ - "Clone" - ], - "T2": [ - "From" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "*const T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const T1", - "is_unsafe_pointer": true - }, - "a2": { - "type": "*mut T2", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut T2", - "is_unsafe_pointer": true - } - }, - "f3": { - "body": [ - { - "text": "let mut it = " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ";\n while it != " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " && *it != " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " {\n it = " - }, - { - "method_call": { - "receiver": [ - { - "text": "it" - } - ], - "body": [ - { - "text": ".add(1)" - } - ] - } - }, - { - "text": ";\n }\n it" - } - ], - "generics": { - "T1": [ - "PartialEq" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a2": { - "type": "T1" - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f6": { - "body": [ - { - "text": "let len = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "write" - } - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "::std::slice::from_raw_parts_mut(" - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": ", len)" - } - ], - "body": [ - { - "text": ".sort_by(|x, y| {\n if (" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")(x, y) {\n std::cmp::Ordering::Less\n } else if (" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")(y, x) {\n std::cmp::Ordering::Greater\n } else {\n std::cmp::Ordering::Equal\n }\n })" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord" - ], - "T2": [ - "FnMut(&T1, &T1) -> bool" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a2": { - "type": "&mut T2" - } - } - }, - "f7": { - "body": [ - { - "text": "let len = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "write" - } - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "::std::slice::from_raw_parts_mut(" - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": ", len)" - } - ], - "body": [ - { - "text": ".sort_by(|x, y| {\n if (" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")(x, y) {\n std::cmp::Ordering::Less\n } else if (" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")(y, x) {\n std::cmp::Ordering::Greater\n } else {\n std::cmp::Ordering::Equal\n }\n })" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord" - ], - "T2": [ - "FnMut(&T1, &T1) -> bool" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a2": { - "type": "&mut T2" - } - } - }, - "f8": { - "body": [ - { - "text": "let count = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "write" - } - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "std::slice::from_raw_parts(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", count)" - } - ], - "body": [ - { - "text": ".iter()" - } - ] - } - } - ], - "body": [ - { - "text": ".enumerate()" - } - ] - } - } - ], - "body": [ - { - "text": ".max_by(|(_, x), (_, y)| " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "x" - } - ], - "body": [ - { - "text": ".partial_cmp(y)" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap_or(std::cmp::Ordering::Equal)" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".map(|(i, _)| " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".add(i)" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap_or(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "PartialOrd" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f9": { - "body": [ - { - "text": "std::mem::swap(&mut " - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": ", &mut " - }, - { - "placeholder": { - "arg": 1, - "access": "write" - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut T1" - }, - "a1": { - "type": "&mut T1" - } - } - } -} diff --git a/rules/arpa_inet/ir_unsafe.json b/rules/arpa_inet/ir_unsafe.json deleted file mode 100644 index 181d20a1..00000000 --- a/rules/arpa_inet/ir_unsafe.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "u32::from_be(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "u32" - } - }, - "return_type": { - "type": "u32" - } - }, - "f2": { - "body": [ - { - "text": "u16::from_be(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "u16" - } - }, - "return_type": { - "type": "u16" - } - }, - "f3": { - "body": [ - { - "text": "u16::to_be(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "u16" - } - }, - "return_type": { - "type": "u16" - } - }, - "f4": { - "body": [ - { - "text": "u32::to_be(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "u32" - } - }, - "return_type": { - "type": "u32" - } - } -} diff --git a/rules/array/ir_refcount.json b/rules/array/ir_refcount.json deleted file mode 100644 index 07a75f8e..00000000 --- a/rules/array/ir_refcount.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "f1": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f3": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - } -} diff --git a/rules/array/ir_unsafe.json b/rules/array/ir_unsafe.json deleted file mode 100644 index b65aefae..00000000 --- a/rules/array/ir_unsafe.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "f1": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".as_ptr()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f2": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " as u64" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "u64" - } - }, - "f3": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".as_mut_ptr()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "t1": { - "init": "Default::default()", - "type": "Vec" - } -} diff --git a/rules/assert/ir_refcount.json b/rules/assert/ir_refcount.json deleted file mode 100644 index 2deffa9f..00000000 --- a/rules/assert/ir_refcount.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "assert!(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "bool" - } - } - } -} diff --git a/rules/assert/ir_unsafe.json b/rules/assert/ir_unsafe.json deleted file mode 100644 index 2deffa9f..00000000 --- a/rules/assert/ir_unsafe.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "assert!(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "bool" - } - } - } -} diff --git a/rules/brotli/ir_refcount.json b/rules/brotli/ir_refcount.json deleted file mode 100644 index 8b49e33f..00000000 --- a/rules/brotli/ir_refcount.json +++ /dev/null @@ -1,558 +0,0 @@ -{ - "f2": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 5, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|_v5| {\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 6, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|_v6| unsafe {\n ::brotli_sys::BrotliEncoderCompress(\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ",\n " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ",\n " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ",\n " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": " as usize,\n &*" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 4, - "access": "read" - } - } - ], - "body": [ - { - "text": ".upgrade()" - } - ] - } - } - ], - "body": [ - { - "text": ".deref()" - } - ] - } - }, - { - "text": " as *const u8,\n _v5 as *mut u64 as *mut usize,\n _v6,\n )\n })" - } - ] - } - }, - { - "text": "\n })" - } - ] - } - } - ], - "params": { - "a0": { - "type": "libc::c_int" - }, - "a1": { - "type": "libc::c_int" - }, - "a2": { - "type": "brotli_sys::BrotliEncoderMode" - }, - "a3": { - "type": "usize" - }, - "a4": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a5": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a6": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "libc::c_int" - } - }, - "f5": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 2, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|_v2| {\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 3, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|_v3| unsafe {\n ::brotli_sys::BrotliDecoderDecompress(\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as usize,\n &*" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".upgrade()" - } - ] - } - } - ], - "body": [ - { - "text": ".deref()" - } - ] - } - }, - { - "text": ",\n _v2 as *mut u64 as *mut usize,\n _v3,\n )\n })" - } - ] - } - }, - { - "text": "\n })" - } - ] - } - } - ], - "params": { - "a0": { - "type": "usize" - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a2": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a3": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "::brotli_sys::BrotliDecoderResult" - } - }, - "f6": { - "body": [ - { - "text": "unsafe { ::brotli_sys::BrotliDecoderCreateInstance(None, None, std::ptr::null_mut()) }" - } - ], - "params": { - "a0": { - "type": "::brotli_sys::brotli_alloc_func" - }, - "a1": { - "type": "::brotli_sys::brotli_free_func" - }, - "a2": { - "type": "*mut std::ffi::c_void", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut ::brotli_sys::BrotliDecoderState", - "is_unsafe_pointer": true - } - }, - "f7": { - "body": [ - { - "text": "unsafe { ::brotli_sys::BrotliDecoderDestroyInstance(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ") }" - } - ], - "params": { - "a0": { - "type": "*mut ::brotli_sys::BrotliDecoderState", - "is_unsafe_pointer": true - } - } - }, - "f8": { - "body": [ - { - "text": "unsafe {\n let _a2: Ptr<*const u8> =\n Ptr::alloc((&*" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(*" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 2, - "access": "read" - } - } - ], - "body": [ - { - "text": ".upgrade()" - } - ] - } - } - ], - "body": [ - { - "text": ".deref()" - } - ] - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".upgrade()" - } - ] - } - } - ], - "body": [ - { - "text": ".deref()" - } - ] - } - }, - { - "text": ") as *const u8);\n\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|_v1| {\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "_a2" - } - ], - "body": [ - { - "text": ".with_mut(|_v2| {\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 3, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|_v3| {\n ::brotli_sys::BrotliDecoderDecompressStream(\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ",\n _v1 as *mut u64 as *mut usize,\n _v2 as *mut *const u8,\n _v3 as *mut u64 as *mut usize,\n std::ptr::null_mut(),\n std::ptr::null_mut(),\n )\n })" - } - ] - } - }, - { - "text": "\n })" - } - ] - } - }, - { - "text": "\n })" - } - ] - } - }, - { - "text": "\n }" - } - ], - "params": { - "a0": { - "type": "*mut ::brotli_sys::BrotliDecoderState", - "is_unsafe_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a2": { - "type": "Ptr>", - "is_refcount_pointer": true - }, - "a3": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a4": { - "type": "Ptr>", - "is_refcount_pointer": true - }, - "a5": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "::brotli_sys::BrotliDecoderResult" - } - }, - "f9": { - "body": [ - { - "text": "unsafe {\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|_v1| {\n let output: *const u8 =\n ::brotli_sys::BrotliDecoderTakeOutput(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", _v1 as *mut u64 as *mut usize);\n let slice = std::slice::from_raw_parts(output, *_v1 as usize);\n let result: Ptr> = Ptr::alloc(" - }, - { - "method_call": { - "receiver": [ - { - "text": "slice" - } - ], - "body": [ - { - "text": ".to_vec()" - } - ] - } - }, - { - "text": ");\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "result" - } - ], - "body": [ - { - "text": ".to_strong()" - } - ] - } - } - ], - "body": [ - { - "text": ".as_pointer()" - } - ] - } - }, - { - "text": " as Ptr)" - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": "\n })" - } - ] - } - }, - { - "text": "\n }" - } - ], - "params": { - "a0": { - "type": "*mut ::brotli_sys::BrotliDecoderState", - "is_unsafe_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - } -} diff --git a/rules/brotli/ir_unsafe.json b/rules/brotli/ir_unsafe.json deleted file mode 100644 index 7ffd51e6..00000000 --- a/rules/brotli/ir_unsafe.json +++ /dev/null @@ -1,655 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "::brotli_sys::BROTLI_MODE_FONT" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliEncoderMode" - } - }, - "f10": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_RESULT_ERROR" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderResult" - } - }, - "f11": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderResult" - } - }, - "f12": { - "body": [ - { - "text": "::brotli_sys::BROTLI_MODE_GENERIC" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliEncoderMode" - } - }, - "f13": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderResult" - } - }, - "f14": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f15": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f16": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f17": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f18": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_CL_SPACE" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f19": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f2": { - "body": [ - { - "text": "::brotli_sys::BrotliEncoderCompress(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": " as usize, " - }, - { - "placeholder": { - "arg": 4, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 5, - "access": "read" - } - }, - { - "text": " as *mut usize, " - }, - { - "placeholder": { - "arg": 6, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "libc::c_int" - }, - "a1": { - "type": "libc::c_int" - }, - "a2": { - "type": "brotli_sys::BrotliEncoderMode" - }, - "a3": { - "type": "usize" - }, - "a4": { - "type": "*mut u8", - "is_unsafe_pointer": true - }, - "a5": { - "type": "*mut u64", - "is_unsafe_pointer": true - }, - "a6": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "libc::c_int" - } - }, - "f20": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f21": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f22": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f23": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_TRANSFORM" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f24": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_DICTIONARY" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f25": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f26": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_PADDING_1" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f27": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_FORMAT_PADDING_2" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f28": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_INVALID_ARGUMENTS" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f29": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f3": { - "body": [ - { - "text": "::brotli_sys::BROTLI_MODE_TEXT" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliEncoderMode" - } - }, - "f30": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f31": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f32": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f33": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f34": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f35": { - "body": [ - { - "text": "::brotli_sys::BrotliDecoderGetErrorCode(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*const ::brotli_sys::BrotliDecoderState", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f36": { - "body": [ - { - "text": "::brotli_sys::BrotliDecoderVersion()" - } - ], - "return_type": { - "type": "u32" - } - }, - "f37": { - "body": [ - { - "text": "-19_i32 as ::brotli_sys::BrotliDecoderErrorCode" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderErrorCode" - } - }, - "f4": { - "body": [ - { - "text": "::brotli_sys::BROTLI_DECODER_RESULT_SUCCESS" - } - ], - "return_type": { - "type": "::brotli_sys::BrotliDecoderResult" - } - }, - "f5": { - "body": [ - { - "text": "::brotli_sys::BrotliDecoderDecompress(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as usize, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as *mut usize, " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "usize" - }, - "a1": { - "type": "*mut u8", - "is_unsafe_pointer": true - }, - "a2": { - "type": "*mut u64", - "is_unsafe_pointer": true - }, - "a3": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "::brotli_sys::BrotliDecoderResult" - } - }, - "f6": { - "body": [ - { - "text": "::brotli_sys::BrotliDecoderCreateInstance(None, None, std::ptr::null_mut())" - } - ], - "return_type": { - "type": "*mut ::brotli_sys::BrotliDecoderState", - "is_unsafe_pointer": true - } - }, - "f7": { - "body": [ - { - "text": "::brotli_sys::BrotliDecoderDestroyInstance(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut ::brotli_sys::BrotliDecoderState", - "is_unsafe_pointer": true - } - } - }, - "f8": { - "body": [ - { - "text": "::brotli_sys::BrotliDecoderDecompressStream(\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ",\n " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *mut usize,\n " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ",\n " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": " as *mut usize,\n std::ptr::null_mut(),\n std::ptr::null_mut(),\n )" - } - ], - "params": { - "a0": { - "type": "*mut ::brotli_sys::BrotliDecoderState", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u64", - "is_unsafe_pointer": true - }, - "a2": { - "type": "*mut *const u8", - "is_unsafe_pointer": true - }, - "a3": { - "type": "*const u64", - "is_unsafe_pointer": true - }, - "a4": { - "type": "*const *const u8", - "is_unsafe_pointer": true - }, - "a5": { - "type": "*const u64", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "::brotli_sys::BrotliDecoderResult" - } - }, - "f9": { - "body": [ - { - "text": "::brotli_sys::BrotliDecoderTakeOutput(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *mut usize)" - } - ], - "params": { - "a0": { - "type": "*mut ::brotli_sys::BrotliDecoderState", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut u64", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "t1": { - "init": "::brotli_sys::BROTLI_DECODER_RESULT_ERROR", - "type": "::brotli_sys::BrotliDecoderResult" - }, - "t2": { - "init": "::brotli_sys::BROTLI_MODE_GENERIC", - "type": "::brotli_sys::BrotliEncoderMode" - }, - "t3": { - "init": "std::ptr::null_mut()", - "type": "*mut ::brotli_sys::BrotliDecoderState", - "is_unsafe_pointer": true - }, - "t4": { - "init": "std::ptr::null()", - "type": "*const ::brotli_sys::BrotliDecoderState", - "is_unsafe_pointer": true - }, - "t5": { - "init": "::brotli_sys::BROTLI_DECODER_NO_ERROR", - "type": "::brotli_sys::BrotliDecoderErrorCode" - } -} diff --git a/rules/builtin/ir_refcount.json b/rules/builtin/ir_refcount.json deleted file mode 100644 index 6d2c8081..00000000 --- a/rules/builtin/ir_refcount.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "f10": { - "body": [ - { - "text": "let (val, ovf) = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".overflowing_mul(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 2, - "access": "read" - } - } - ], - "body": [ - { - "text": ".write(val)" - } - ] - } - }, - { - "text": ";\n ovf" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "i64" - }, - "a1": { - "type": "i64" - }, - "a2": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "bool" - } - }, - "f9": { - "body": [ - { - "text": "let (val, ovf) = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".overflowing_mul(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 2, - "access": "read" - } - } - ], - "body": [ - { - "text": ".write(val)" - } - ] - } - }, - { - "text": ";\n ovf" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "i64" - }, - "a1": { - "type": "i64" - }, - "a2": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "bool" - } - } -} diff --git a/rules/builtin/ir_unsafe.json b/rules/builtin/ir_unsafe.json deleted file mode 100644 index 16b7c2cd..00000000 --- a/rules/builtin/ir_unsafe.json +++ /dev/null @@ -1,360 +0,0 @@ -{ - "f1": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "params": { - "a0": { - "type": "usize" - }, - "a1": { - "type": "usize" - } - }, - "return_type": { - "type": "usize" - } - }, - "f10": { - "body": [ - { - "text": "let (val, ovf) = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".overflowing_mul(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n *" - }, - { - "placeholder": { - "arg": 2, - "access": "write" - } - }, - { - "text": " = val;\n ovf" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "i64" - }, - "a1": { - "type": "i64" - }, - "a2": { - "type": "*mut i64", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "bool" - } - }, - "f2": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".trailing_zeros()" - } - ] - } - }, - { - "text": " as i32" - } - ], - "params": { - "a0": { - "type": "u32" - } - }, - "return_type": { - "type": "i32" - } - }, - "f3": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".leading_zeros()" - } - ] - } - }, - { - "text": " as i32" - } - ], - "params": { - "a0": { - "type": "u32" - } - }, - "return_type": { - "type": "i32" - } - }, - "f4": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".swap_bytes()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "u16" - } - }, - "return_type": { - "type": "u16" - } - }, - "f5": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".swap_bytes()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "u32" - } - }, - "return_type": { - "type": "u32" - } - }, - "f6": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".swap_bytes()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "u64" - } - }, - "return_type": { - "type": "u64" - } - }, - "f7": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".trailing_zeros()" - } - ] - } - }, - { - "text": " as i32" - } - ], - "params": { - "a0": { - "type": "u64" - } - }, - "return_type": { - "type": "i32" - } - }, - "f8": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".count_ones()" - } - ] - } - }, - { - "text": " as i32" - } - ], - "params": { - "a0": { - "type": "u64" - } - }, - "return_type": { - "type": "i32" - } - }, - "f9": { - "body": [ - { - "text": "let (val, ovf) = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".overflowing_mul(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n *" - }, - { - "placeholder": { - "arg": 2, - "access": "write" - } - }, - { - "text": " = val;\n ovf" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "i64" - }, - "a1": { - "type": "i64" - }, - "a2": { - "type": "*mut i64", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "bool" - } - } -} diff --git a/rules/carray/ir_refcount.json b/rules/carray/ir_refcount.json deleted file mode 100644 index 8dadc6df..00000000 --- a/rules/carray/ir_refcount.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "t1": { - "init": "Box::new([Default::default()])", - "type": "Box<[Value>]>" - }, - "t2": { - "init": "Box::new([Default::default()])", - "type": "Box<[Value>]>>]>" - } -} diff --git a/rules/carray/ir_unsafe.json b/rules/carray/ir_unsafe.json deleted file mode 100644 index a453f98f..00000000 --- a/rules/carray/ir_unsafe.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "t1": { - "init": "libcc2rs::IgnoreRule", - "type": "libcc2rs::IgnoreRule" - }, - "t2": { - "init": "libcc2rs::IgnoreRule", - "type": "libcc2rs::IgnoreRule" - } -} diff --git a/rules/cmath/ir_unsafe.json b/rules/cmath/ir_unsafe.json deleted file mode 100644 index 7afe7fc6..00000000 --- a/rules/cmath/ir_unsafe.json +++ /dev/null @@ -1,153 +0,0 @@ -{ - "f1": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".abs()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "i32" - } - }, - "return_type": { - "type": "i32" - } - }, - "f2": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".abs()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "i32" - } - }, - "return_type": { - "type": "i32" - } - }, - "f3": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".abs()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "i32" - } - }, - "return_type": { - "type": "i32" - } - }, - "f4": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".log2()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "f64" - } - }, - "return_type": { - "type": "f64" - } - }, - "f5": { - "body": [ - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as f64)" - } - ], - "body": [ - { - "text": ".log2()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "i32" - } - }, - "return_type": { - "type": "f64" - } - } -} diff --git a/rules/cstdlib/ir_unsafe.json b/rules/cstdlib/ir_unsafe.json deleted file mode 100644 index a394a08a..00000000 --- a/rules/cstdlib/ir_unsafe.json +++ /dev/null @@ -1,340 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "std::process::abort();" - } - ] - }, - "f2": { - "body": [ - { - "text": "libcc2rs::free_unsafe(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::c_void", - "is_unsafe_pointer": true - } - } - }, - "f3": { - "body": [ - { - "text": "libcc2rs::malloc_unsafe(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "u64" - } - }, - "return_type": { - "type": "*mut ::libc::c_void", - "is_unsafe_pointer": true - } - }, - "f4": { - "body": [ - { - "text": "libcc2rs::realloc_unsafe(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::c_void", - "is_unsafe_pointer": true - }, - "a1": { - "type": "u64" - } - }, - "return_type": { - "type": "*mut ::libc::c_void", - "is_unsafe_pointer": true - } - }, - "f5": { - "body": [ - { - "text": "libcc2rs::calloc_unsafe(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "u64" - }, - "a1": { - "type": "u64" - } - }, - "return_type": { - "type": "*mut ::libc::c_void", - "is_unsafe_pointer": true - } - }, - "f6": { - "body": [ - { - "text": "libc::getenv(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8) as *mut u8" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f7": { - "body": [ - { - "text": "libc::setenv(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a2": { - "type": "i32" - } - }, - "return_type": { - "type": "i32" - } - }, - "f8": { - "body": [ - { - "text": "libc::bsearch(\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ",\n " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ",\n " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as ::libc::size_t,\n " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": " as ::libc::size_t,\n Some(std::mem::transmute::<\n *const (),\n unsafe extern \"C\" fn(*const ::libc::c_void, *const ::libc::c_void) -> i32,\n >(" - }, - { - "placeholder": { - "arg": 4, - "access": "read" - } - }, - { - "text": " as *const ())),\n )" - } - ], - "params": { - "a0": { - "type": "*const ::libc::c_void", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const ::libc::c_void", - "is_unsafe_pointer": true - }, - "a2": { - "type": "u64" - }, - "a3": { - "type": "u64" - }, - "a4": { - "type": "unsafe fn(*const ::libc::c_void, *const ::libc::c_void) -> i32" - } - }, - "return_type": { - "type": "*mut ::libc::c_void", - "is_unsafe_pointer": true - } - }, - "f9": { - "body": [ - { - "text": "libc::qsort(\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ",\n " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as ::libc::size_t,\n " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as ::libc::size_t,\n Some(std::mem::transmute::<\n *const (),\n unsafe extern \"C\" fn(*const ::libc::c_void, *const ::libc::c_void) -> i32,\n >(" - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": " as *const ())),\n )" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::c_void", - "is_unsafe_pointer": true - }, - "a1": { - "type": "u64" - }, - "a2": { - "type": "u64" - }, - "a3": { - "type": "unsafe fn(*const ::libc::c_void, *const ::libc::c_void) -> i32" - } - } - } -} diff --git a/rules/cstring/ir_refcount.json b/rules/cstring/ir_refcount.json deleted file mode 100644 index 15602eb6..00000000 --- a/rules/cstring/ir_refcount.json +++ /dev/null @@ -1,277 +0,0 @@ -{ - "f1": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".memcpy(&" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize)" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "AnyPtr" - }, - "a1": { - "type": "AnyPtr" - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "AnyPtr" - } - }, - "f2": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".memset((" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ") as u8, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize)" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "AnyPtr" - }, - "a1": { - "type": "u8" - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "AnyPtr" - } - }, - "f3": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".memcmp(&" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize)" - } - ] - } - } - ], - "params": { - "a0": { - "type": "AnyPtr" - }, - "a1": { - "type": "AnyPtr" - }, - "a2": { - "type": "u64" - } - }, - "return_type": { - "type": "i32" - } - }, - "f4": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".memcpy(&" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize)" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "AnyPtr" - }, - "a1": { - "type": "AnyPtr" - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "AnyPtr" - } - } -} diff --git a/rules/cstring/ir_unsafe.json b/rules/cstring/ir_unsafe.json deleted file mode 100644 index c39d8459..00000000 --- a/rules/cstring/ir_unsafe.json +++ /dev/null @@ -1,1246 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "if " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " != 0 {\n ::std::ptr::copy_nonoverlapping(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize)\n }\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "*mut u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f10": { - "body": [ - { - "text": "libc::memchr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const ::libc::c_void, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize)" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "i32" - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "*mut ::libc::c_void", - "is_unsafe_pointer": true - } - }, - "f11": { - "body": [ - { - "text": "libc::strrchr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ") as *mut u8" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "i32" - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f12": { - "body": [ - { - "text": "libc::memchr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const ::libc::c_void, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize) as *const ::libc::c_void" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "i32" - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "*const ::libc::c_void", - "is_unsafe_pointer": true - } - }, - "f13": { - "body": [ - { - "text": "libc::strrchr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ") as *const u8" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "i32" - } - }, - "return_type": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "f14": { - "body": [ - { - "text": "libc::strrchr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ") as *mut u8" - } - ], - "params": { - "a0": { - "type": "*mut u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "i32" - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f15": { - "body": [ - { - "text": "libcc2rs::strdup_unsafe(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f16": { - "body": [ - { - "text": "libc::strcspn(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8) as u64" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "u64" - } - }, - "f17": { - "body": [ - { - "text": "libc::strspn(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8) as u64" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "u64" - } - }, - "f18": { - "body": [ - { - "text": "libc::strstr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8) as *mut u8" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f19": { - "body": [ - { - "text": "libc::strstr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8) as *const u8" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "f2": { - "body": [ - { - "text": "let byte_0 = " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *mut u8;\n for offset in 0.." - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " {\n *" - }, - { - "method_call": { - "receiver": [ - { - "text": "byte_0" - } - ], - "body": [ - { - "text": ".offset(offset as isize)" - } - ] - } - }, - { - "text": " = " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as u8;\n }\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "*mut u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f20": { - "body": [ - { - "text": "libc::strstr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8) as *mut u8" - } - ], - "params": { - "a0": { - "type": "*mut u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f21": { - "body": [ - { - "text": "libc::strpbrk(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8) as *mut u8" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f22": { - "body": [ - { - "text": "libc::strpbrk(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8) as *const u8" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "f23": { - "body": [ - { - "text": "libc::strpbrk(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8) as *mut u8" - } - ], - "params": { - "a0": { - "type": "*mut u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f24": { - "body": [ - { - "text": "libc::memrchr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const ::libc::c_void, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize)" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "i32" - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "*mut ::libc::c_void", - "is_unsafe_pointer": true - }, - "target_os": "linux" - }, - "f25": { - "body": [ - { - "text": "libc::memrchr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const ::libc::c_void, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize) as *const ::libc::c_void" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "i32" - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "*const ::libc::c_void", - "is_unsafe_pointer": true - }, - "target_os": "linux" - }, - "f26": { - "body": [ - { - "text": "libc::memrchr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const ::libc::c_void, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize)" - } - ], - "params": { - "a0": { - "type": "*mut u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "i32" - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "*mut ::libc::c_void", - "is_unsafe_pointer": true - }, - "target_os": "linux" - }, - "f27": { - "body": [ - { - "text": "libc::strcasecmp(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8)" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f3": { - "body": [ - { - "text": "let sa = core::slice::from_raw_parts(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const u8, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize);\n let sb = core::slice::from_raw_parts(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const u8, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize);\n let mut diff = 0_i32;\n for (x, y) in " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "sa" - } - ], - "body": [ - { - "text": ".iter()" - } - ] - } - } - ], - "body": [ - { - "text": ".zip(" - }, - { - "method_call": { - "receiver": [ - { - "text": "sb" - } - ], - "body": [ - { - "text": ".iter()" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " {\n if x != y {\n diff = (*x as i32) - (*y as i32);\n break;\n }\n }\n diff" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "i32" - } - }, - "f4": { - "body": [ - { - "text": "if " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " != 0 {\n ::std::ptr::copy_nonoverlapping(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize)\n }\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "*mut u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f5": { - "body": [ - { - "text": "libc::strchr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ") as *mut u8" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "i32" - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f6": { - "body": [ - { - "text": "libc::strchr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ") as *const u8" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "i32" - } - }, - "return_type": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "f7": { - "body": [ - { - "text": "libc::strlen(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8) as u64" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "u64" - } - }, - "f8": { - "body": [ - { - "text": "libc::strcmp(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8)" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f9": { - "body": [ - { - "text": "libc::strncmp(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize)" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "i32" - } - } -} diff --git a/rules/deque/ir_refcount.json b/rules/deque/ir_refcount.json deleted file mode 100644 index 56c24837..00000000 --- a/rules/deque/ir_refcount.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "f1": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_last()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f2": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f7": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|__v: &mut Vec>>| " - }, - { - "method_call": { - "receiver": [ - { - "text": "__v" - } - ], - "body": [ - { - "text": ".push(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "ByteRepr" - ] - }, - "params": { - "a0": { - "type": "Ptr>>>", - "is_refcount_pointer": true - }, - "a1": { - "type": "Value>" - } - } - } -} diff --git a/rules/deque/ir_unsafe.json b/rules/deque/ir_unsafe.json deleted file mode 100644 index 0d91b6a4..00000000 --- a/rules/deque/ir_unsafe.json +++ /dev/null @@ -1,260 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".last_mut()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f2": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".first_mut()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f3": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".is_empty()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "bool" - } - }, - "f4": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".push(" - }, - { - "placeholder": { - "arg": 1, - "access": "move" - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "Default" - ] - }, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "&mut T1" - } - } - }, - "f5": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".remove(0)" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - } - }, - "return_type": { - "type": "T1" - } - }, - "f7": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".push(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec>" - }, - "a1": { - "type": "Vec" - } - } - }, - "t1": { - "init": "Default::default()", - "type": "Vec" - } -} diff --git a/rules/errno/ir_unsafe.json b/rules/errno/ir_unsafe.json deleted file mode 100644 index d910da01..00000000 --- a/rules/errno/ir_unsafe.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libcc2rs::cpp2rust_errno()" - } - ], - "return_type": { - "type": "*mut i32", - "is_unsafe_pointer": true - } - } -} diff --git a/rules/fstream/ir_refcount.json b/rules/fstream/ir_refcount.json deleted file mode 100644 index 2cfd6156..00000000 --- a/rules/fstream/ir_refcount.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "f1": { - "body": [ - { - "method_call": { - "receiver": [ - { - "text": "::std::fs::File::create(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_string()" - } - ] - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".expect(\"Failed to open file\")" - } - ] - } - } - ], - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "::std::fs::File" - } - }, - "f5": { - "body": [ - { - "method_call": { - "receiver": [ - { - "text": "::std::fs::File::open(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_string()" - } - ] - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".expect(\"Failed to open file\")" - } - ] - } - } - ], - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "::std::fs::File" - } - } -} diff --git a/rules/fstream/ir_unsafe.json b/rules/fstream/ir_unsafe.json deleted file mode 100644 index b35fa500..00000000 --- a/rules/fstream/ir_unsafe.json +++ /dev/null @@ -1,316 +0,0 @@ -{ - "f1": { - "body": [ - { - "method_call": { - "receiver": [ - { - "text": "::std::fs::File::create(\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "::std::ffi::CStr::from_ptr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8)" - } - ], - "body": [ - { - "text": ".to_str()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ",\n )" - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "::std::fs::File" - } - }, - "f2": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_clone()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "::std::fs::File" - } - }, - "return_type": { - "type": "::std::fs::File" - } - }, - "f3": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "params": { - "a0": { - "type": "&mut ::std::fs::File" - } - }, - "return_type": { - "type": "&mut ::std::fs::File" - } - }, - "f4": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "params": { - "a0": { - "type": "::std::fs::File" - } - }, - "return_type": { - "type": "::std::fs::File" - } - }, - "f5": { - "body": [ - { - "method_call": { - "receiver": [ - { - "text": "::std::fs::File::open(\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "::std::ffi::CStr::from_ptr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8)" - } - ], - "body": [ - { - "text": ".to_str()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ",\n )" - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "::std::fs::File" - } - }, - "f6": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_clone()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "::std::fs::File" - } - }, - "return_type": { - "type": "::std::fs::File" - } - }, - "f7": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_clone()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "::std::fs::File" - } - }, - "return_type": { - "type": "::std::fs::File" - } - }, - "f8": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "params": { - "a0": { - "type": "::std::fs::File" - } - }, - "return_type": { - "type": "::std::fs::File" - } - }, - "t1": { - "init": "::std::fs::File::open(\"\")?", - "type": "::std::fs::File" - }, - "t2": { - "init": "::std::fs::File::open(\"\")?", - "type": "::std::fs::File" - }, - "t3": { - "init": "::std::fs::File::open(\"\")?", - "type": "::std::fs::File" - } -} diff --git a/rules/initializer_list/ir_unsafe.json b/rules/initializer_list/ir_unsafe.json deleted file mode 100644 index 3103f3f0..00000000 --- a/rules/initializer_list/ir_unsafe.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "f1": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " as u64" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "u64" - } - }, - "t1": { - "init": "Default::default()", - "type": "Vec" - } -} diff --git a/rules/iomanip/ir_unsafe.json b/rules/iomanip/ir_unsafe.json deleted file mode 100644 index 1ed8065d..00000000 --- a/rules/iomanip/ir_unsafe.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "f1": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "params": { - "a0": { - "type": "i32" - } - }, - "return_type": { - "type": "i32" - } - } -} diff --git a/rules/iostream/ir_refcount.json b/rules/iostream/ir_refcount.json deleted file mode 100644 index 0f145754..00000000 --- a/rules/iostream/ir_refcount.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "std::fs::File::from(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "std::io::stdout()" - } - ], - "body": [ - { - "text": ".as_fd()" - } - ] - } - } - ], - "body": [ - { - "text": ".try_clone_to_owned()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ")" - } - ], - "return_type": { - "type": "::std::fs::File" - } - }, - "f2": { - "body": [ - { - "text": "std::fs::File::from(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "std::io::stderr()" - } - ], - "body": [ - { - "text": ".as_fd()" - } - ] - } - } - ], - "body": [ - { - "text": ".try_clone_to_owned()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ")" - } - ], - "return_type": { - "type": "::std::fs::File" - } - }, - "f3": { - "body": [ - { - "text": "libcc2rs::cout()" - } - ], - "return_type": { - "type": "Ptr<::std::fs::File>", - "is_refcount_pointer": true - } - }, - "f4": { - "body": [ - { - "text": "libcc2rs::cerr()" - } - ], - "return_type": { - "type": "Ptr<::std::fs::File>", - "is_refcount_pointer": true - } - }, - "t2": { - "init": "Ptr::null()", - "type": "Ptr", - "is_refcount_pointer": true - }, - "t3": { - "init": "Ptr::null()", - "type": "Ptr", - "is_refcount_pointer": true - } -} diff --git a/rules/iostream/ir_unsafe.json b/rules/iostream/ir_unsafe.json deleted file mode 100644 index 37b94a0d..00000000 --- a/rules/iostream/ir_unsafe.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "std::fs::File::from_raw_fd(\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "std::io::stdout()" - } - ], - "body": [ - { - "text": ".as_fd()" - } - ] - } - } - ], - "body": [ - { - "text": ".try_clone_to_owned()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - } - ], - "body": [ - { - "text": ".into_raw_fd()" - } - ] - } - }, - { - "text": ",\n )" - } - ], - "return_type": { - "type": "::std::fs::File" - } - }, - "f2": { - "body": [ - { - "text": "std::fs::File::from_raw_fd(\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "std::io::stderr()" - } - ], - "body": [ - { - "text": ".as_fd()" - } - ] - } - } - ], - "body": [ - { - "text": ".try_clone_to_owned()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - } - ], - "body": [ - { - "text": ".into_raw_fd()" - } - ] - } - }, - { - "text": ",\n )" - } - ], - "return_type": { - "type": "::std::fs::File" - } - }, - "f3": { - "body": [ - { - "text": "libcc2rs::cout_unsafe()" - } - ], - "return_type": { - "type": "*mut ::std::fs::File", - "is_unsafe_pointer": true - } - }, - "f4": { - "body": [ - { - "text": "libcc2rs::cerr_unsafe()" - } - ], - "return_type": { - "type": "*mut ::std::fs::File", - "is_unsafe_pointer": true - } - }, - "t1": { - "init": "std::fs::File::open(\"\").unwrap()", - "type": "std::fs::File" - }, - "t2": { - "init": "libcc2rs::cout_unsafe()", - "type": "*mut std::fs::File", - "is_unsafe_pointer": true - }, - "t3": { - "init": "libcc2rs::cout_unsafe()", - "type": "*mut std::fs::File", - "is_unsafe_pointer": true - } -} diff --git a/rules/ip/ir_unsafe.json b/rules/ip/ir_unsafe.json deleted file mode 100644 index 8aed2831..00000000 --- a/rules/ip/ir_unsafe.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libc::IPPROTO_TCP" - } - ], - "return_type": { - "type": "i32" - } - }, - "f2": { - "body": [ - { - "text": "libc::IPPROTO_UDP" - } - ], - "return_type": { - "type": "i32" - } - }, - "f3": { - "body": [ - { - "text": "libc::IPPROTO_IP" - } - ], - "return_type": { - "type": "i32" - } - } -} diff --git a/rules/limits/ir_unsafe.json b/rules/limits/ir_unsafe.json deleted file mode 100644 index 0e41b5f9..00000000 --- a/rules/limits/ir_unsafe.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "<" - }, - { - "generic": 1 - }, - { - "text": ">::MAX" - } - ], - "generics": { - "T1": [ - "HasMinMax" - ] - }, - "return_type": { - "type": "T1" - } - }, - "f2": { - "body": [ - { - "text": "<" - }, - { - "generic": 1 - }, - { - "text": ">::MIN" - } - ], - "generics": { - "T1": [ - "HasMinMax" - ] - }, - "return_type": { - "type": "T1" - } - } -} diff --git a/rules/locale/ir_unsafe.json b/rules/locale/ir_unsafe.json deleted file mode 100644 index 09a799e1..00000000 --- a/rules/locale/ir_unsafe.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libc::setlocale(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8) as *mut u8" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - } -} diff --git a/rules/map/ir_refcount.json b/rules/map/ir_refcount.json deleted file mode 100644 index 5730c1fb..00000000 --- a/rules/map/ir_refcount.json +++ /dev/null @@ -1,1078 +0,0 @@ -{ - "f1": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|__v: &mut BTreeMap<" - }, - { - "generic": 1 - }, - { - "text": ", Value<" - }, - { - "generic": 2 - }, - { - "text": ">>| {\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "__v" - } - ], - "body": [ - { - "text": ".entry(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".or_insert_with(|| Rc::new(RefCell::new(<" - }, - { - "generic": 2 - }, - { - "text": ">::default())))" - } - ] - } - } - ], - "body": [ - { - "text": ".as_pointer()" - } - ] - } - }, - { - "text": "\n })" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone", - "ByteRepr" - ], - "T2": [ - "Default", - "ByteRepr" - ] - }, - "params": { - "a0": { - "type": "Ptr>>", - "is_refcount_pointer": true - }, - "a1": { - "type": "T1" - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f10": { - "body": [ - { - "text": "RefcountMapIter::find_key(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", &" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "Ptr>>", - "is_refcount_pointer": true - }, - "a1": { - "type": "T1" - } - }, - "return_type": { - "type": "RefcountMapIter" - } - }, - "f11": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " != " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "generics": { - "T1": [ - "PartialEq" - ], - "T2": [ - "PartialEq" - ] - }, - "params": { - "a0": { - "type": "RefcountMapIter" - }, - "a1": { - "type": "RefcountMapIter" - } - }, - "return_type": { - "type": "bool" - } - }, - "f12": { - "body": [ - { - "text": "RefcountMapIter::begin(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "Ptr>>", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "RefcountMapIter" - } - }, - "f13": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " == " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "generics": { - "T1": [ - "PartialEq" - ], - "T2": [ - "PartialEq" - ] - }, - "params": { - "a0": { - "type": "RefcountMapIter" - }, - "a1": { - "type": "RefcountMapIter" - } - }, - "return_type": { - "type": "bool" - } - }, - "f14": { - "body": [ - { - "text": "RefcountMapIter::end(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "Ptr>>", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "RefcountMapIter" - } - }, - "f15": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get(&" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"out of range!\")" - } - ] - } - } - ], - "body": [ - { - "text": ".as_pointer()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord" - ], - "T2": [ - "Default" - ] - }, - "params": { - "a0": { - "type": "&mut BTreeMap>" - }, - "a1": { - "type": "T1" - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f16": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " == " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "generics": { - "T1": [ - "PartialEq" - ], - "T2": [ - "PartialEq" - ] - }, - "params": { - "a0": { - "type": "RefcountMapIter" - }, - "a1": { - "type": "RefcountMapIter" - } - }, - "return_type": { - "type": "bool" - } - }, - "f17": { - "body": [ - { - "text": "RefcountMapIter::find_key(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", &" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "Ptr>>", - "is_refcount_pointer": true - }, - "a1": { - "type": "T1" - } - }, - "return_type": { - "type": "RefcountMapIter" - } - }, - "f19": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "RefcountMapIter" - } - }, - "return_type": { - "type": "RefcountMapIter" - } - }, - "f2": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " as u64" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "BTreeMap>" - } - }, - "return_type": { - "type": "u64" - } - }, - "f20": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".first()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "RefcountMapIter" - } - }, - "return_type": { - "type": "Value" - } - }, - "f21": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".second()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "RefcountMapIter" - } - }, - "return_type": { - "type": "Value" - } - }, - "f22": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".first()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "RefcountMapIter" - } - }, - "return_type": { - "type": "Value" - } - }, - "f23": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".second()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "RefcountMapIter" - } - }, - "return_type": { - "type": "Value" - } - }, - "f3": { - "body": [ - { - "text": "RefcountMapIter::erase(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", &" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "Ptr>>", - "is_refcount_pointer": true - }, - "a1": { - "type": "RefcountMapIter" - } - }, - "return_type": { - "type": "RefcountMapIter" - } - }, - "f5": { - "body": [ - { - "text": "BTreeMap::new()" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "return_type": { - "type": "BTreeMap>" - } - }, - "f6": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".iter()" - } - ] - } - } - ], - "body": [ - { - "text": ".map(|(k, v)| (" - }, - { - "method_call": { - "receiver": [ - { - "text": "k" - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ", Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "v" - } - ], - "body": [ - { - "text": ".borrow()" - } - ] - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": "))))" - } - ] - } - } - ], - "body": [ - { - "text": ".collect()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [ - "Clone" - ] - }, - "params": { - "a0": { - "type": "BTreeMap>" - } - }, - "return_type": { - "type": "BTreeMap>" - } - }, - "f7": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get(&" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"out of range!\")" - } - ] - } - } - ], - "body": [ - { - "text": ".as_pointer()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord" - ], - "T2": [ - "Default" - ] - }, - "params": { - "a0": { - "type": "&mut BTreeMap>" - }, - "a1": { - "type": "T1" - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f8": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|__v: &mut BTreeMap<" - }, - { - "generic": 1 - }, - { - "text": ", Value<" - }, - { - "generic": 2 - }, - { - "text": ">>| {\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "__v" - } - ], - "body": [ - { - "text": ".entry(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".or_insert_with(|| Rc::new(RefCell::new(<" - }, - { - "generic": 2 - }, - { - "text": ">::default())))" - } - ] - } - } - ], - "body": [ - { - "text": ".as_pointer()" - } - ] - } - }, - { - "text": "\n })" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone", - "ByteRepr" - ], - "T2": [ - "Default", - "ByteRepr" - ] - }, - "params": { - "a0": { - "type": "Ptr>>", - "is_refcount_pointer": true - }, - "a1": { - "type": "T1" - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f9": { - "body": [ - { - "text": "RefcountMapIter::end(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "Ptr>>", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "RefcountMapIter" - } - }, - "t1": { - "init": "BTreeMap::new()", - "type": "BTreeMap>" - }, - "t2": { - "init": "RefcountMapIter::null()", - "type": "RefcountMapIter" - }, - "t3": { - "init": "RefcountMapIter::null()", - "type": "RefcountMapIter" - } -} diff --git a/rules/map/ir_unsafe.json b/rules/map/ir_unsafe.json deleted file mode 100644 index a8f9aeaf..00000000 --- a/rules/map/ir_unsafe.json +++ /dev/null @@ -1,1000 +0,0 @@ -{ - "f1": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".entry(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".or_default()" - } - ] - } - } - ], - "body": [ - { - "text": ".as_mut()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [ - "Default" - ] - }, - "params": { - "a0": { - "type": "&mut BTreeMap>" - }, - "a1": { - "type": "T1" - } - }, - "return_type": { - "type": "&mut T2" - } - }, - "f10": { - "body": [ - { - "text": "UnsafeMapIterator::find_key(&" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const BTreeMap<" - }, - { - "generic": 1 - }, - { - "text": ", Box<" - }, - { - "generic": 2 - }, - { - "text": ">>, &" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "&mut BTreeMap>" - }, - "a1": { - "type": "T1" - } - }, - "return_type": { - "type": "UnsafeMapIterator" - } - }, - "f11": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " != " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "generics": { - "T1": [ - "PartialEq" - ], - "T2": [ - "PartialEq" - ] - }, - "params": { - "a0": { - "type": "UnsafeMapIterator" - }, - "a1": { - "type": "UnsafeMapIterator" - } - }, - "return_type": { - "type": "bool" - } - }, - "f12": { - "body": [ - { - "text": "UnsafeMapIterator::begin(&" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const BTreeMap<" - }, - { - "generic": 1 - }, - { - "text": ", Box<" - }, - { - "generic": 2 - }, - { - "text": ">>)" - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "&mut BTreeMap>" - } - }, - "return_type": { - "type": "UnsafeMapIterator" - } - }, - "f13": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " == " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "generics": { - "T1": [ - "PartialEq" - ], - "T2": [ - "PartialEq" - ] - }, - "params": { - "a0": { - "type": "UnsafeMapIterator" - }, - "a1": { - "type": "UnsafeMapIterator" - } - }, - "return_type": { - "type": "bool" - } - }, - "f14": { - "body": [ - { - "text": "UnsafeMapIterator::end(&" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const BTreeMap<" - }, - { - "generic": 1 - }, - { - "text": ", Box<" - }, - { - "generic": 2 - }, - { - "text": ">>)" - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "&mut BTreeMap>" - } - }, - "return_type": { - "type": "UnsafeMapIterator" - } - }, - "f15": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get(&" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"out of range!\")" - } - ] - } - } - ], - "body": [ - { - "text": ".as_ref()" - } - ] - } - }, - { - "text": " as *const " - }, - { - "generic": 2 - }, - { - "text": ")" - } - ], - "generics": { - "T1": [ - "Ord" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "&mut BTreeMap>" - }, - "a1": { - "type": "T1" - } - }, - "return_type": { - "type": "*const T2", - "is_unsafe_pointer": true - } - }, - "f16": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " == " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "generics": { - "T1": [ - "PartialEq" - ], - "T2": [ - "PartialEq" - ] - }, - "params": { - "a0": { - "type": "UnsafeMapIterator" - }, - "a1": { - "type": "UnsafeMapIterator" - } - }, - "return_type": { - "type": "bool" - } - }, - "f17": { - "body": [ - { - "text": "UnsafeMapIterator::find_key(&" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const BTreeMap<" - }, - { - "generic": 1 - }, - { - "text": ", Box<" - }, - { - "generic": 2 - }, - { - "text": ">>, &" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "BTreeMap>" - }, - "a1": { - "type": "T1" - } - }, - "return_type": { - "type": "UnsafeMapIterator" - } - }, - "f19": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "UnsafeMapIterator" - } - }, - "return_type": { - "type": "UnsafeMapIterator" - } - }, - "f2": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " as u64" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "BTreeMap>" - } - }, - "return_type": { - "type": "u64" - } - }, - "f20": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".first()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "UnsafeMapIterator" - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f21": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".second()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "UnsafeMapIterator" - } - }, - "return_type": { - "type": "*mut T2", - "is_unsafe_pointer": true - } - }, - "f22": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".first()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "UnsafeMapIterator" - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f23": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".second()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "UnsafeMapIterator" - } - }, - "return_type": { - "type": "*mut T2", - "is_unsafe_pointer": true - } - }, - "f3": { - "body": [ - { - "text": "UnsafeMapIterator::erase(&" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const BTreeMap<" - }, - { - "generic": 1 - }, - { - "text": ", Box<" - }, - { - "generic": 2 - }, - { - "text": ">>, &" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "&mut BTreeMap>" - }, - "a1": { - "type": "UnsafeMapIterator" - } - }, - "return_type": { - "type": "UnsafeMapIterator" - } - }, - "f5": { - "body": [ - { - "text": "BTreeMap::new()" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "return_type": { - "type": "BTreeMap>" - } - }, - "f6": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone" - ], - "T2": [ - "Clone" - ] - }, - "params": { - "a0": { - "type": "BTreeMap>" - } - }, - "return_type": { - "type": "BTreeMap>" - } - }, - "f7": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get(&" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"out of range!\")" - } - ] - } - } - ], - "body": [ - { - "text": ".as_ref()" - } - ] - } - }, - { - "text": " as *const " - }, - { - "generic": 2 - }, - { - "text": ")" - } - ], - "generics": { - "T1": [ - "Ord" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "&mut BTreeMap>" - }, - "a1": { - "type": "T1" - } - }, - "return_type": { - "type": "*const T2", - "is_unsafe_pointer": true - } - }, - "f8": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".entry(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".or_default()" - } - ] - } - } - ], - "body": [ - { - "text": ".as_mut()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [ - "Default" - ] - }, - "params": { - "a0": { - "type": "&mut BTreeMap>" - }, - "a1": { - "type": "T1" - } - }, - "return_type": { - "type": "&mut T2" - } - }, - "f9": { - "body": [ - { - "text": "UnsafeMapIterator::end(&" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const BTreeMap<" - }, - { - "generic": 1 - }, - { - "text": ", Box<" - }, - { - "generic": 2 - }, - { - "text": ">>)" - } - ], - "generics": { - "T1": [ - "Ord", - "Clone" - ], - "T2": [] - }, - "params": { - "a0": { - "type": "BTreeMap>" - } - }, - "return_type": { - "type": "UnsafeMapIterator" - } - }, - "t1": { - "init": "BTreeMap::new()", - "type": "BTreeMap>" - }, - "t2": { - "init": "UnsafeMapIterator::null()", - "type": "UnsafeMapIterator" - }, - "t3": { - "init": "UnsafeMapIterator::null()", - "type": "UnsafeMapIterator" - } -} diff --git a/rules/math/ir_unsafe.json b/rules/math/ir_unsafe.json deleted file mode 100644 index 869aec28..00000000 --- a/rules/math/ir_unsafe.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "f1": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".cos()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "f64" - } - }, - "return_type": { - "type": "f64" - } - }, - "f2": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".round()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "f64" - } - }, - "return_type": { - "type": "f64" - } - }, - "f3": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".sin()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "f64" - } - }, - "return_type": { - "type": "f64" - } - } -} diff --git a/rules/netdb/ir_unsafe.json b/rules/netdb/ir_unsafe.json deleted file mode 100644 index 8b4897a1..00000000 --- a/rules/netdb/ir_unsafe.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libc::getaddrinfo(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a2": { - "type": "*const ::libc::addrinfo", - "is_unsafe_pointer": true - }, - "a3": { - "type": "*mut *mut ::libc::addrinfo", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f2": { - "body": [ - { - "text": "libc::freeaddrinfo(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::addrinfo", - "is_unsafe_pointer": true - } - } - } -} diff --git a/rules/pair/ir_refcount.json b/rules/pair/ir_refcount.json deleted file mode 100644 index 7fb7f4d6..00000000 --- a/rules/pair/ir_refcount.json +++ /dev/null @@ -1,651 +0,0 @@ -{ - "f1": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ".1" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "(Value, Value)" - } - }, - "return_type": { - "type": "Value" - } - }, - "f10": { - "body": [ - { - "text": "(\n Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_into()" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"failed conversion\")" - } - ] - } - }, - { - "text": ")),\n Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_into()" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"failed conversion\")" - } - ] - } - }, - { - "text": ")),\n )" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "T1" - }, - "a1": { - "type": "T2" - } - }, - "return_type": { - "type": "(Value, Value)" - } - }, - "f11": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ".0" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "(Value, Value)" - } - }, - "return_type": { - "type": "Value" - } - }, - "f2": { - "body": [ - { - "text": "(\n Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ".0" - } - ], - "body": [ - { - "text": ".borrow()" - } - ] - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ")),\n Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ".1" - } - ], - "body": [ - { - "text": ".borrow()" - } - ] - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ")),\n )" - } - ], - "generics": { - "T1": [ - "Clone" - ], - "T2": [ - "Clone" - ] - }, - "params": { - "a0": { - "type": "(Value, Value)" - } - }, - "return_type": { - "type": "(Value, Value)" - } - }, - "f4": { - "body": [ - { - "text": "(\n Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_into()" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"failed conversion\")" - } - ] - } - }, - { - "text": ")),\n Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_into()" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"failed conversion\")" - } - ] - } - }, - { - "text": ")),\n )" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "T1" - }, - "a1": { - "type": "T2" - } - }, - "return_type": { - "type": "(Value, Value)" - } - }, - "f5": { - "body": [ - { - "text": "(\n Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_into()" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"failed conversion\")" - } - ] - } - }, - { - "text": ")),\n Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_into()" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"failed conversion\")" - } - ] - } - }, - { - "text": ")),\n )" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "T1" - }, - "a1": { - "type": "T2" - } - }, - "return_type": { - "type": "(Value, Value)" - } - }, - "f6": { - "body": [ - { - "text": "(\n Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_into()" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"failed conversion\")" - } - ] - } - }, - { - "text": ")),\n Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_into()" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"failed conversion\")" - } - ] - } - }, - { - "text": ")),\n )" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "T1" - }, - "a1": { - "type": "T2" - } - }, - "return_type": { - "type": "(Value, Value)" - } - }, - "f7": { - "body": [ - { - "text": "(\n Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_into()" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"failed conversion\")" - } - ] - } - }, - { - "text": ")),\n Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_into()" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"failed conversion\")" - } - ] - } - }, - { - "text": ")),\n )" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "T1" - }, - "a1": { - "type": "T2" - } - }, - "return_type": { - "type": "(Value, Value)" - } - }, - "f9": { - "body": [ - { - "text": "(\n Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_into()" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"failed conversion\")" - } - ] - } - }, - { - "text": ")),\n Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".try_into()" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"failed conversion\")" - } - ] - } - }, - { - "text": ")),\n )" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "T1" - }, - "a1": { - "type": "T2" - } - }, - "return_type": { - "type": "(Value, Value)" - } - }, - "t1": { - "init": "(\n Rc::new(RefCell::new(T1::default())),\n Rc::new(RefCell::new(T2::default())),\n )", - "type": "(Value, Value)" - } -} diff --git a/rules/pair/ir_unsafe.json b/rules/pair/ir_unsafe.json deleted file mode 100644 index c4892eb0..00000000 --- a/rules/pair/ir_unsafe.json +++ /dev/null @@ -1,465 +0,0 @@ -{ - "f1": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ".1" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "(T1, T2)" - } - }, - "return_type": { - "type": "T2" - } - }, - "f10": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".into()" - } - ] - } - }, - { - "text": ", " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".into()" - } - ] - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "T1" - }, - "a1": { - "type": "T2" - } - }, - "return_type": { - "type": "(T1, T2)" - } - }, - "f11": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ".0" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "(T1, T2)" - } - }, - "return_type": { - "type": "T1" - } - }, - "f2": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone" - ], - "T2": [ - "Clone" - ] - }, - "params": { - "a0": { - "type": "(T1, T2)" - } - }, - "return_type": { - "type": "(T1, T2)" - } - }, - "f4": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".into()" - } - ] - } - }, - { - "text": ", " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".into()" - } - ] - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "T1" - }, - "a1": { - "type": "T2" - } - }, - "return_type": { - "type": "(T1, T2)" - } - }, - "f5": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".into()" - } - ] - } - }, - { - "text": ", " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".into()" - } - ] - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "T1" - }, - "a1": { - "type": "T2" - } - }, - "return_type": { - "type": "(T1, T2)" - } - }, - "f6": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".into()" - } - ] - } - }, - { - "text": ", " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".into()" - } - ] - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "T1" - }, - "a1": { - "type": "T2" - } - }, - "return_type": { - "type": "(T1, T2)" - } - }, - "f7": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".into()" - } - ] - } - }, - { - "text": ", " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".into()" - } - ] - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "T1" - }, - "a1": { - "type": "T2" - } - }, - "return_type": { - "type": "(T1, T2)" - } - }, - "f9": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".into()" - } - ] - } - }, - { - "text": ", " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".into()" - } - ] - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [], - "T2": [] - }, - "params": { - "a0": { - "type": "T1" - }, - "a1": { - "type": "T2" - } - }, - "return_type": { - "type": "(T1, T2)" - } - }, - "t1": { - "init": "<(T1, T2)>::default()", - "type": "(T1, T2)" - } -} diff --git a/rules/poll/ir_unsafe.json b/rules/poll/ir_unsafe.json deleted file mode 100644 index 121c8fce..00000000 --- a/rules/poll/ir_unsafe.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libc::poll(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as ::libc::nfds_t, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::pollfd", - "is_unsafe_pointer": true - }, - "a1": { - "type": "u64" - }, - "a2": { - "type": "i32" - } - }, - "return_type": { - "type": "i32" - } - } -} diff --git a/rules/pwd/ir_unsafe.json b/rules/pwd/ir_unsafe.json deleted file mode 100644 index 93501989..00000000 --- a/rules/pwd/ir_unsafe.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libc::getpwuid(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "u32" - } - }, - "return_type": { - "type": "*mut ::libc::passwd", - "is_unsafe_pointer": true - } - } -} diff --git a/rules/select/ir_unsafe.json b/rules/select/ir_unsafe.json deleted file mode 100644 index 23b58098..00000000 --- a/rules/select/ir_unsafe.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libc::select(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 4, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*mut ::libc::fd_set", - "is_unsafe_pointer": true - }, - "a2": { - "type": "*mut ::libc::fd_set", - "is_unsafe_pointer": true - }, - "a3": { - "type": "*mut ::libc::fd_set", - "is_unsafe_pointer": true - }, - "a4": { - "type": "*mut ::libc::timeval", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - } -} diff --git a/rules/signal/ir_unsafe.json b/rules/signal/ir_unsafe.json deleted file mode 100644 index 5b2436f6..00000000 --- a/rules/signal/ir_unsafe.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libc::sigaction(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*const ::libc::sigaction", - "is_unsafe_pointer": true - }, - "a2": { - "type": "*mut ::libc::sigaction", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - } -} diff --git a/rules/socket/ir_unsafe.json b/rules/socket/ir_unsafe.json deleted file mode 100644 index b13e512b..00000000 --- a/rules/socket/ir_unsafe.json +++ /dev/null @@ -1,644 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libc::MSG_NOSIGNAL" - } - ], - "return_type": { - "type": "i32" - } - }, - "f10": { - "body": [ - { - "text": "libc::send(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize, " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": ") as i64" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*const ::libc::c_void", - "is_unsafe_pointer": true - }, - "a2": { - "type": "u64" - }, - "a3": { - "type": "i32" - } - }, - "return_type": { - "type": "i64" - } - }, - "f11": { - "body": [ - { - "text": "libc::socketpair(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "i32" - }, - "a2": { - "type": "i32" - }, - "a3": { - "type": "*mut i32", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f12": { - "body": [ - { - "text": "libc::getsockname(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*mut ::libc::sockaddr", - "is_unsafe_pointer": true - }, - "a2": { - "type": "*mut u32", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f13": { - "body": [ - { - "text": "libc::connect(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*const ::libc::sockaddr", - "is_unsafe_pointer": true - }, - "a2": { - "type": "u32" - } - }, - "return_type": { - "type": "i32" - } - }, - "f14": { - "body": [ - { - "text": "libc::getpeername(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*mut ::libc::sockaddr", - "is_unsafe_pointer": true - }, - "a2": { - "type": "*mut u32", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f15": { - "body": [ - { - "text": "libc::accept4(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*mut ::libc::sockaddr", - "is_unsafe_pointer": true - }, - "a2": { - "type": "*mut u32", - "is_unsafe_pointer": true - }, - "a3": { - "type": "i32" - } - }, - "return_type": { - "type": "i32" - }, - "target_os": "linux" - }, - "f2": { - "body": [ - { - "text": "libc::SOCK_STREAM" - } - ], - "return_type": { - "type": "i32" - } - }, - "f3": { - "body": [ - { - "text": "libc::SOCK_DGRAM" - } - ], - "return_type": { - "type": "i32" - } - }, - "f4": { - "body": [ - { - "text": "libc::SOCK_CLOEXEC" - } - ], - "return_type": { - "type": "i32" - }, - "target_os": "linux" - }, - "f5": { - "body": [ - { - "text": "libc::SOCK_NONBLOCK" - } - ], - "return_type": { - "type": "i32" - }, - "target_os": "linux" - }, - "f6": { - "body": [ - { - "text": "libc::socket(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "i32" - }, - "a2": { - "type": "i32" - } - }, - "return_type": { - "type": "i32" - } - }, - "f7": { - "body": [ - { - "text": "libc::setsockopt(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 4, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "i32" - }, - "a2": { - "type": "i32" - }, - "a3": { - "type": "*const ::libc::c_void", - "is_unsafe_pointer": true - }, - "a4": { - "type": "u32" - } - }, - "return_type": { - "type": "i32" - } - }, - "f8": { - "body": [ - { - "text": "libc::getsockopt(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 4, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "i32" - }, - "a2": { - "type": "i32" - }, - "a3": { - "type": "*mut ::libc::c_void", - "is_unsafe_pointer": true - }, - "a4": { - "type": "*mut u32", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f9": { - "body": [ - { - "text": "libc::recv(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize, " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": ") as i64" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*mut ::libc::c_void", - "is_unsafe_pointer": true - }, - "a2": { - "type": "u64" - }, - "a3": { - "type": "i32" - } - }, - "return_type": { - "type": "i64" - } - } -} diff --git a/rules/stat/ir_unsafe.json b/rules/stat/ir_unsafe.json deleted file mode 100644 index b6236de8..00000000 --- a/rules/stat/ir_unsafe.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libc::stat(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut ::libc::stat", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f2": { - "body": [ - { - "text": "libc::fstat(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*mut ::libc::stat", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f3": { - "body": [ - { - "text": "libc::mkdir(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as ::libc::mode_t)" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "::libc::mode_t" - } - }, - "return_type": { - "type": "i32" - } - } -} diff --git a/rules/stdio/ir_refcount.json b/rules/stdio/ir_refcount.json deleted file mode 100644 index 39fdde38..00000000 --- a/rules/stdio/ir_refcount.json +++ /dev/null @@ -1,733 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "match " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_rust_string()" - } - ] - } - }, - { - "text": " {\n v if v == \"rb\" => " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "std::fs::OpenOptions::new()" - } - ], - "body": [ - { - "text": ".read(true)" - } - ] - } - } - ], - "body": [ - { - "text": ".open(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_rust_string()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".ok()" - } - ] - } - } - ], - "body": [ - { - "text": ".map_or(Ptr::null(), |f| Ptr::alloc(f))" - } - ] - } - }, - { - "text": ",\n v if v == \"wb\" => " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "std::fs::OpenOptions::new()" - } - ], - "body": [ - { - "text": ".write(true)" - } - ] - } - } - ], - "body": [ - { - "text": ".create(true)" - } - ] - } - } - ], - "body": [ - { - "text": ".truncate(true)" - } - ] - } - } - ], - "body": [ - { - "text": ".open(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_rust_string()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".ok()" - } - ] - } - } - ], - "body": [ - { - "text": ".map_or(Ptr::null(), |f| Ptr::alloc(f))" - } - ] - } - }, - { - "text": ",\n _ => panic!(\"unsupported mode\"),\n }" - } - ], - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr<::std::fs::File>", - "is_refcount_pointer": true - } - }, - "f10": { - "body": [ - { - "text": "libcc2rs::cin()" - } - ], - "return_type": { - "type": "Ptr<::std::fs::File>", - "is_refcount_pointer": true - } - }, - "f2": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".delete()" - } - ] - } - }, - { - "text": ";\n 0" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr<::std::fs::File>", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f3": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|v| match " - }, - { - "method_call": { - "receiver": [ - { - "text": "v" - } - ], - "body": [ - { - "text": ".stream_position()" - } - ] - } - }, - { - "text": " {\n Ok(pos) => pos as i64,\n Err(_) => -1,\n })" - } - ] - } - } - ], - "params": { - "a0": { - "type": "Ptr<::std::fs::File>", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "i64" - } - }, - "f4": { - "body": [ - { - "text": "if " - }, - { - "method_call": { - "receiver": [ - { - "text": "(match " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " {\n 0 => " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".seek(std::io::SeekFrom::Start(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as u64))" - } - ] - } - }, - { - "text": ",\n 1 => " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".seek(std::io::SeekFrom::Current(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": "))" - } - ] - } - }, - { - "text": ",\n 2 => " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".seek(std::io::SeekFrom::End(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": "))" - } - ] - } - }, - { - "text": ",\n _ => Err(std::io::Error::other(\"unsupported whence for fseek.\")),\n })" - } - ], - "body": [ - { - "text": ".is_ok()" - } - ] - } - }, - { - "text": "\n {\n 0\n } else {\n -1\n }" - } - ], - "params": { - "a0": { - "type": "&mut ::std::fs::File" - }, - "a1": { - "type": "i64" - }, - "a2": { - "type": "i32" - } - }, - "return_type": { - "type": "i32" - } - }, - "f5": { - "body": [ - { - "text": "let __a0 = " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ";\n let __a1 = " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ";\n let __a2 = " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ";\n let __a3 = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 3, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ";\n libcc2rs::fread_refcount(__a0, __a1, __a2, __a3)" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "AnyPtr" - }, - "a1": { - "type": "u64" - }, - "a2": { - "type": "u64" - }, - "a3": { - "type": "Ptr<::std::fs::File>", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "u64" - } - }, - "f6": { - "body": [ - { - "text": "let __a0 = " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ";\n let __a1 = " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ";\n let __a2 = " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ";\n let __a3 = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 3, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ";\n libcc2rs::fwrite_refcount(__a0, __a1, __a2, __a3)" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "AnyPtr" - }, - "a1": { - "type": "u64" - }, - "a2": { - "type": "u64" - }, - "a3": { - "type": "Ptr<::std::fs::File>", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "u64" - } - }, - "f7": { - "body": [ - { - "text": "if !" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".is_null()" - } - ] - } - }, - { - "text": " {\n match " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|v| " - }, - { - "method_call": { - "receiver": [ - { - "text": "v" - } - ], - "body": [ - { - "text": ".sync_all()" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " {\n Ok(_) => 0,\n Err(_) => -1,\n }\n } else {\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "::std::io::stdout()" - } - ], - "body": [ - { - "text": ".flush()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "::std::io::stderr()" - } - ], - "body": [ - { - "text": ".flush()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ";\n 0\n }" - } - ], - "params": { - "a0": { - "type": "Ptr<::std::fs::File>", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f8": { - "body": [ - { - "text": "libcc2rs::cout()" - } - ], - "return_type": { - "type": "Ptr<::std::fs::File>", - "is_refcount_pointer": true - } - }, - "f9": { - "body": [ - { - "text": "libcc2rs::cerr()" - } - ], - "return_type": { - "type": "Ptr<::std::fs::File>", - "is_refcount_pointer": true - } - }, - "t1": { - "init": "Ptr::null()", - "type": "Ptr<::std::fs::File>", - "is_refcount_pointer": true - } -} diff --git a/rules/stdio/ir_unsafe.json b/rules/stdio/ir_unsafe.json deleted file mode 100644 index 983bab9c..00000000 --- a/rules/stdio/ir_unsafe.json +++ /dev/null @@ -1,692 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libc::fopen(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8)" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "f10": { - "body": [ - { - "text": "libcc2rs::stdin_unsafe()" - } - ], - "return_type": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "f11": { - "body": [ - { - "text": "libc::fputc(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f12": { - "body": [ - { - "text": "libc::fputs(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f13": { - "body": [ - { - "text": "libc::puts(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8)" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f14": { - "body": [ - { - "text": "libc::fileno(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f15": { - "body": [ - { - "text": "libc::ferror(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f16": { - "body": [ - { - "text": "libc::feof(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f17": { - "body": [ - { - "text": "libc::fgets(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *mut i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ") as *mut u8" - } - ], - "params": { - "a0": { - "type": "*mut u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "i32" - }, - "a2": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f18": { - "body": [ - { - "text": "libc::freopen(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a2": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "f19": { - "body": [ - { - "text": "libc::fseeko(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as ::libc::off_t, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - }, - "a1": { - "type": "i64" - }, - "a2": { - "type": "i32" - } - }, - "return_type": { - "type": "i32" - } - }, - "f2": { - "body": [ - { - "text": "libc::fclose(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f20": { - "body": [ - { - "text": "libc::fdopen(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8)" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "f3": { - "body": [ - { - "text": "libc::ftell(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ") as i64" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i64" - } - }, - "f4": { - "body": [ - { - "text": "libc::fseek(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as ::libc::c_long, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - }, - "a1": { - "type": "i64" - }, - "a2": { - "type": "i32" - } - }, - "return_type": { - "type": "i32" - } - }, - "f5": { - "body": [ - { - "text": "libcc2rs::fread_unsafe(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::c_void", - "is_unsafe_pointer": true - }, - "a1": { - "type": "u64" - }, - "a2": { - "type": "u64" - }, - "a3": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "u64" - } - }, - "f6": { - "body": [ - { - "text": "libcc2rs::fwrite_unsafe(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*const ::libc::c_void", - "is_unsafe_pointer": true - }, - "a1": { - "type": "u64" - }, - "a2": { - "type": "u64" - }, - "a3": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "u64" - } - }, - "f7": { - "body": [ - { - "text": "libc::fflush(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f8": { - "body": [ - { - "text": "libcc2rs::stdout_unsafe()" - } - ], - "return_type": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "f9": { - "body": [ - { - "text": "libcc2rs::stderr_unsafe()" - } - ], - "return_type": { - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } - }, - "t1": { - "init": "std::ptr::null_mut()", - "type": "*mut ::libc::FILE", - "is_unsafe_pointer": true - } -} diff --git a/rules/string/ir_refcount.json b/rules/string/ir_refcount.json deleted file mode 100644 index 1cb69c54..00000000 --- a/rules/string/ir_refcount.json +++ /dev/null @@ -1,1484 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "let mut __tmp1 = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read", - "is_index_base": true - } - }, - { - "text": "[(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ") as usize..::std::cmp::min((" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " + " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ") as usize, " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " - 1)]" - } - ], - "body": [ - { - "text": ".to_vec()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__tmp1" - } - ], - "body": [ - { - "text": ".push(0)" - } - ] - } - }, - { - "text": ";\n __tmp1" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "Vec" - }, - "a1": { - "type": "usize" - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "Vec" - } - }, - "f10": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_c_string_iterator()" - } - ] - } - } - ], - "body": [ - { - "text": ".chain(std::iter::once(0))" - } - ] - } - } - ], - "body": [ - { - "text": ".collect::>()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Vec" - } - }, - "f11": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f12": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f14": { - "body": [ - { - "text": "let pos = " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize;\n let end = std::cmp::min(pos + " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize, " - }, - { - "method_call": { - "receiver": [ - { - "text": "(*" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".upgrade()" - } - ] - } - } - ], - "body": [ - { - "text": ".deref()" - } - ] - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " - 1);\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|__v: &mut Vec| {\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__v" - } - ], - "body": [ - { - "text": ".splice(pos..end, " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 3, - "access": "read" - } - } - ], - "body": [ - { - "text": ".map(|c| " - }, - { - "method_call": { - "receiver": [ - { - "text": "c" - } - ], - "body": [ - { - "text": ".read()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".take((" - }, - { - "placeholder": { - "arg": 4, - "access": "read" - } - }, - { - "text": ") as usize)" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n })" - } - ] - } - }, - { - "text": ";\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr>", - "is_refcount_pointer": true - }, - "a1": { - "type": "usize" - }, - "a2": { - "type": "usize" - }, - "a3": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a4": { - "type": "usize" - } - }, - "return_type": { - "type": "Ptr>", - "is_refcount_pointer": true - } - }, - "f15": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_last()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f16": { - "body": [ - { - "text": "match " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".iter()" - } - ] - } - } - ], - "body": [ - { - "text": ".take(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " - 1)" - } - ] - } - } - ], - "body": [ - { - "text": ".rposition(|&x| " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_c_string_iterator()" - } - ] - } - } - ], - "body": [ - { - "text": ".position(|ch| ch == x)" - } - ] - } - } - ], - "body": [ - { - "text": ".is_some()" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": "\n {\n Some(idx) => idx as u64,\n None => u64::MAX,\n }" - } - ], - "params": { - "a0": { - "type": "Vec" - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "u64" - } - }, - "f17": { - "body": [ - { - "text": "let mut __tmp2 = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__tmp2" - } - ], - "body": [ - { - "text": ".pop()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__tmp2" - } - ], - "body": [ - { - "text": ".extend(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_c_string_iterator()" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__tmp2" - } - ], - "body": [ - { - "text": ".push(0)" - } - ] - } - }, - { - "text": ";\n __tmp2" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "Vec" - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Vec" - } - }, - "f18": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".iter()" - } - ] - } - } - ], - "body": [ - { - "text": ".copied()" - } - ] - } - } - ], - "body": [ - { - "text": ".take(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " - 1)" - } - ] - } - } - ], - "body": [ - { - "text": ".eq(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_c_string_iterator()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "params": { - "a0": { - "type": "Vec" - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "bool" - } - }, - "f20": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".offset(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as isize)" - } - ] - } - } - ], - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "usize" - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f21": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".pop()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".extend(" - }, - { - "method_call": { - "receiver": [ - { - "text": "std::iter::repeat(" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".take((" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ") as usize)" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".push(0)" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "usize" - }, - "a2": { - "type": "u8" - } - }, - "return_type": { - "type": "Vec" - } - }, - "f26": { - "body": [ - { - "text": "if " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize >= " - }, - { - "method_call": { - "receiver": [ - { - "text": "(*" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".upgrade()" - } - ] - } - } - ], - "body": [ - { - "text": ".deref()" - } - ] - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " - 1 {\n panic!(\"out of bounds access\")\n } else {\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_strong()" - } - ] - } - } - ], - "body": [ - { - "text": ".as_pointer()" - } - ] - } - }, - { - "text": " as Ptr)" - } - ], - "body": [ - { - "text": ".offset(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as isize)" - } - ] - } - }, - { - "text": "\n }" - } - ], - "params": { - "a0": { - "type": "Ptr>", - "is_refcount_pointer": true - }, - "a1": { - "type": "usize" - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f3": { - "body": [ - { - "text": "let mut r = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "r" - } - ], - "body": [ - { - "text": ".pop()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "r" - } - ], - "body": [ - { - "text": ".extend(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_c_string_iterator()" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "r" - } - ], - "body": [ - { - "text": ".push(0)" - } - ] - } - }, - { - "text": ";\n r" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "Vec" - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Vec" - } - }, - "f4": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|__v: &mut Vec| {\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__v" - } - ], - "body": [ - { - "text": ".pop()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__v" - } - ], - "body": [ - { - "text": ".extend(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".map(|c| " - }, - { - "method_call": { - "receiver": [ - { - "text": "c" - } - ], - "body": [ - { - "text": ".read()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".take((" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ") as usize)" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__v" - } - ], - "body": [ - { - "text": ".push(0)" - } - ] - } - }, - { - "text": ";\n })" - } - ] - } - }, - { - "text": ";\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr>", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "Ptr>", - "is_refcount_pointer": true - } - }, - "f5": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f6": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f7": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".map(|c| " - }, - { - "method_call": { - "receiver": [ - { - "text": "c" - } - ], - "body": [ - { - "text": ".read()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".take(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize)" - } - ] - } - } - ], - "body": [ - { - "text": ".chain(std::iter::once(0))" - } - ] - } - } - ], - "body": [ - { - "text": ".collect::>()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "usize" - } - }, - "return_type": { - "type": "Vec" - } - }, - "t2": { - "init": "Ptr::null()", - "type": "Ptr", - "is_refcount_pointer": true - } -} diff --git a/rules/string/ir_unsafe.json b/rules/string/ir_unsafe.json deleted file mode 100644 index a497e176..00000000 --- a/rules/string/ir_unsafe.json +++ /dev/null @@ -1,1826 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "let mut __tmp1 = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read", - "is_index_base": true - } - }, - { - "text": "[(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ") as usize..::std::cmp::min((" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " + " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ") as usize, " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " - 1)]" - } - ], - "body": [ - { - "text": ".to_vec()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__tmp1" - } - ], - "body": [ - { - "text": ".push(0)" - } - ] - } - }, - { - "text": ";\n __tmp1" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "Vec" - }, - "a1": { - "type": "usize" - }, - "a2": { - "type": "usize" - } - }, - "return_type": { - "type": "Vec" - } - }, - "f10": { - "body": [ - { - "text": "let s = " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "std::slice::from_raw_parts(s, " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(0..)" - } - ], - "body": [ - { - "text": ".take_while(|&i| *" - }, - { - "method_call": { - "receiver": [ - { - "text": "s" - } - ], - "body": [ - { - "text": ".add(i)" - } - ] - } - }, - { - "text": " != 0)" - } - ] - } - } - ], - "body": [ - { - "text": ".count()" - } - ] - } - }, - { - "text": " + 1)" - } - ], - "body": [ - { - "text": ".to_vec()" - } - ] - } - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "Vec" - } - }, - "f11": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".as_ptr()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "f12": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".as_mut_ptr()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "&mut Vec" - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f13": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".pop()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".resize((" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ") as usize, 0)" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".push(0)" - } - ] - } - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "usize" - } - } - }, - "f14": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".splice(\n " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize.." - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize + " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize,\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "::std::slice::from_raw_parts(" - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 4, - "access": "read" - } - }, - { - "text": " as usize)" - } - ], - "body": [ - { - "text": ".to_vec()" - } - ] - } - }, - { - "text": ",\n )" - } - ] - } - }, - { - "text": ";" - } - ], - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "usize" - }, - "a2": { - "type": "usize" - }, - "a3": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a4": { - "type": "usize" - } - } - }, - "f15": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".as_mut_ptr()" - } - ] - } - } - ], - "body": [ - { - "text": ".add(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " - 1)" - } - ] - } - } - ], - "params": { - "a0": { - "type": "&mut Vec" - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f16": { - "body": [ - { - "text": "match " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".iter()" - } - ] - } - } - ], - "body": [ - { - "text": ".rposition(|&c| {\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "::std::ffi::CStr::from_ptr(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8)" - } - ], - "body": [ - { - "text": ".to_str()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - } - ], - "body": [ - { - "text": ".contains(c as u8 as char)" - } - ] - } - }, - { - "text": "\n })" - } - ] - } - }, - { - "text": " {\n Some(idx) => idx as u64,\n None => u64::MAX,\n }" - } - ], - "params": { - "a0": { - "type": "Vec" - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "u64" - } - }, - "f17": { - "body": [ - { - "text": "let mut __tmp2 = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__tmp2" - } - ], - "body": [ - { - "text": ".pop()" - } - ] - } - }, - { - "text": ";\n let __from = " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__tmp2" - } - ], - "body": [ - { - "text": ".extend_from_slice(::std::slice::from_raw_parts(\n __from,\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(0..)" - } - ], - "body": [ - { - "text": ".position(|i| *" - }, - { - "method_call": { - "receiver": [ - { - "text": "__from" - } - ], - "body": [ - { - "text": ".add(i)" - } - ] - } - }, - { - "text": " == 0)" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ",\n ))" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__tmp2" - } - ], - "body": [ - { - "text": ".push(0)" - } - ] - } - }, - { - "text": ";\n __tmp2" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "Vec" - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "Vec" - } - }, - "f18": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " == {\n let s = " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "std::slice::from_raw_parts(s, " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(0..)" - } - ], - "body": [ - { - "text": ".take_while(|&i| *" - }, - { - "method_call": { - "receiver": [ - { - "text": "s" - } - ], - "body": [ - { - "text": ".add(i)" - } - ] - } - }, - { - "text": " != 0)" - } - ] - } - } - ], - "body": [ - { - "text": ".count()" - } - ] - } - }, - { - "text": " + 1)" - } - ], - "body": [ - { - "text": ".to_vec()" - } - ] - } - }, - { - "text": "\n }" - } - ], - "params": { - "a0": { - "type": "Vec" - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "bool" - } - }, - "f19": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " - 1) as u64" - } - ], - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "u64" - } - }, - "f2": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " - 1) as u64" - } - ], - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "u64" - } - }, - "f20": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".add(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize)" - } - ] - } - } - ], - "params": { - "a0": { - "type": "*mut u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "usize" - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f21": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".splice(\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " - 1.." - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " - 1,\n ::std::vec::from_elem(" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize),\n )" - } - ] - } - }, - { - "text": ";" - } - ], - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "usize" - }, - "a2": { - "type": "u8" - } - } - }, - "f22": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " <= 1" - } - ], - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "bool" - } - }, - "f23": { - "body": [ - { - "text": "vec![0]" - } - ], - "return_type": { - "type": "Vec" - } - }, - "f24": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".clear()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".push(0)" - } - ] - } - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "&mut Vec" - } - } - }, - "f25": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".shrink_to_fit()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "&mut Vec" - } - } - }, - "f26": { - "body": [ - { - "text": "if " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize >= " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " - 1 {\n panic!(\"out of bounds access\")\n } else {\n &mut " - }, - { - "placeholder": { - "arg": 0, - "access": "write", - "is_index_base": true - } - }, - { - "text": "[" - }, - { - "placeholder": { - "arg": 1, - "access": "write" - } - }, - { - "text": " as usize]\n }" - } - ], - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "usize" - } - }, - "return_type": { - "type": "*mut u8", - "is_unsafe_pointer": true - } - }, - "f3": { - "body": [ - { - "text": "let mut __tmp2 = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__tmp2" - } - ], - "body": [ - { - "text": ".pop()" - } - ] - } - }, - { - "text": ";\n let __from = " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__tmp2" - } - ], - "body": [ - { - "text": ".extend_from_slice(::std::slice::from_raw_parts(\n __from,\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(0..)" - } - ], - "body": [ - { - "text": ".position(|i| *" - }, - { - "method_call": { - "receiver": [ - { - "text": "__from" - } - ], - "body": [ - { - "text": ".add(i)" - } - ] - } - }, - { - "text": " == 0)" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ",\n ))" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__tmp2" - } - ], - "body": [ - { - "text": ".push(0)" - } - ] - } - }, - { - "text": ";\n __tmp2" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "Vec" - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "Vec" - } - }, - "f4": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".splice(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - } - ], - "body": [ - { - "text": ".saturating_sub(1)" - } - ] - } - }, - { - "text": ".." - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": ", {\n let mut v = " - }, - { - "method_call": { - "receiver": [ - { - "text": "::std::slice::from_raw_parts(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize)" - } - ], - "body": [ - { - "text": ".to_vec()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "v" - } - ], - "body": [ - { - "text": ".push(0)" - } - ] - } - }, - { - "text": ";\n v\n })" - } - ] - } - }, - { - "text": ";" - } - ], - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "*mut u8", - "is_unsafe_pointer": true - }, - "a2": { - "type": "usize" - } - } - }, - "f5": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".as_ptr()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "f6": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".as_mut_ptr()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "&mut Vec" - } - }, - "return_type": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "f7": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "std::slice::from_raw_parts(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize)" - } - ], - "body": [ - { - "text": ".to_vec()" - } - ] - } - } - ], - "body": [ - { - "text": ".iter()" - } - ] - } - } - ], - "body": [ - { - "text": ".copied()" - } - ] - } - } - ], - "body": [ - { - "text": ".chain(std::iter::once(0))" - } - ] - } - } - ], - "body": [ - { - "text": ".collect()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "usize" - } - }, - "return_type": { - "type": "Vec" - } - }, - "f8": { - "body": [ - { - "text": "let mut __buf: Vec = Vec::new();\n let mut __f = &" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "__f" - } - ], - "body": [ - { - "text": ".read_to_end(&mut __buf)" - } - ] - } - } - ], - "body": [ - { - "text": ".expect(\"couldn't read the file\")" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "__buf" - } - ], - "body": [ - { - "text": ".push(0)" - } - ] - } - }, - { - "text": ";\n __buf" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "std::fs::File" - }, - "a1": { - "type": "std::fs::File" - } - }, - "return_type": { - "type": "Vec" - } - }, - "f9": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "vec![" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": "; (" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ") as usize]" - } - ], - "body": [ - { - "text": ".iter()" - } - ] - } - } - ], - "body": [ - { - "text": ".cloned()" - } - ] - } - } - ], - "body": [ - { - "text": ".chain(std::iter::once(0))" - } - ] - } - } - ], - "body": [ - { - "text": ".collect()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "usize" - }, - "a1": { - "type": "u8" - } - }, - "return_type": { - "type": "Vec" - } - }, - "t1": { - "init": "Vec::new()", - "type": "Vec" - }, - "t2": { - "init": "::std::ptr::null_mut()", - "type": "*mut u8", - "is_unsafe_pointer": true - } -} diff --git a/rules/termios/ir_unsafe.json b/rules/termios/ir_unsafe.json deleted file mode 100644 index 8a242408..00000000 --- a/rules/termios/ir_unsafe.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libc::tcsetattr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "i32" - }, - "a2": { - "type": "*const ::libc::termios", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f2": { - "body": [ - { - "text": "libc::tcgetattr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*mut ::libc::termios", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - } -} diff --git a/rules/time/ir_unsafe.json b/rules/time/ir_unsafe.json deleted file mode 100644 index 207e6902..00000000 --- a/rules/time/ir_unsafe.json +++ /dev/null @@ -1,243 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libc::time(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut ::libc::time_t", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "::libc::time_t" - } - }, - "f2": { - "body": [ - { - "text": "libc::clock_gettime(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "::libc::clockid_t" - }, - "a1": { - "type": "*mut ::libc::timespec", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f4": { - "body": [ - { - "text": "libc::gmtime_r(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*const ::libc::time_t", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut ::libc::tm", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut ::libc::tm", - "is_unsafe_pointer": true - } - }, - "f5": { - "body": [ - { - "text": "libc::localtime_r(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*const ::libc::time_t", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut ::libc::tm", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut ::libc::tm", - "is_unsafe_pointer": true - } - }, - "f6": { - "body": [ - { - "text": "libc::strftime(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *mut i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as ::libc::size_t, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": ") as u64" - } - ], - "params": { - "a0": { - "type": "*mut u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "u64" - }, - "a2": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a3": { - "type": "*const ::libc::tm", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "u64" - } - }, - "f7": { - "body": [ - { - "text": "libc::utimes(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const ::libc::timeval", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - } -} diff --git a/rules/unique_ptr/ir_refcount.json b/rules/unique_ptr/ir_refcount.json deleted file mode 100644 index 1287c20e..00000000 --- a/rules/unique_ptr/ir_refcount.json +++ /dev/null @@ -1,367 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "Some(Rc::new(RefCell::new(\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(0.." - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".map(|_| <" - }, - { - "generic": 1 - }, - { - "text": ">::default())" - } - ] - } - } - ], - "body": [ - { - "text": ".collect::>()" - } - ] - } - }, - { - "text": ",\n )))" - } - ], - "generics": { - "T1": [ - "Default" - ] - }, - "params": { - "a0": { - "type": "usize" - } - }, - "return_type": { - "type": "Option>>" - } - }, - "f10": { - "body": [ - { - "text": "None" - } - ], - "return_type": { - "type": "Option>" - } - }, - "f11": { - "body": [ - { - "text": "None" - } - ], - "return_type": { - "type": "Option>>" - } - }, - "f2": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".as_pointer()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Value" - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f3": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_owned_opt()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Option>" - } - }, - "f4": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_owned_opt()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Option>" - } - }, - "f5": { - "body": [ - { - "text": "let _p: Ptr<_> = " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ";\n " - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": " = " - }, - { - "method_call": { - "receiver": [ - { - "text": "_p" - } - ], - "body": [ - { - "text": ".to_owned_opt()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "&mut Option>" - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - } - }, - "f6": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": " = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_owned_opt()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Option>>" - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - } - }, - "f7": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".as_pointer()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Value" - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f8": { - "body": [ - { - "text": "Some(Rc::new(RefCell::new(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")))" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "T1" - } - }, - "return_type": { - "type": "Option>" - } - }, - "f9": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": " = None" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Option>>" - } - } - }, - "t1": { - "init": "None", - "type": "Option>" - }, - "t2": { - "init": "None", - "type": "Option>>" - } -} diff --git a/rules/unique_ptr/ir_unsafe.json b/rules/unique_ptr/ir_unsafe.json deleted file mode 100644 index e12ff0d6..00000000 --- a/rules/unique_ptr/ir_unsafe.json +++ /dev/null @@ -1,413 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "Some(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(0.." - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".map(|_| <" - }, - { - "generic": 1 - }, - { - "text": ">::default())" - } - ] - } - } - ], - "body": [ - { - "text": ".collect::>()" - } - ] - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [ - "Default" - ] - }, - "params": { - "a0": { - "type": "usize" - } - }, - "return_type": { - "type": "Option>" - } - }, - "f10": { - "body": [ - { - "text": "None" - } - ], - "generics": { - "T1": [ - "Default" - ] - }, - "return_type": { - "type": "Option>" - } - }, - "f11": { - "body": [ - { - "text": "None" - } - ], - "generics": { - "T1": [] - }, - "return_type": { - "type": "Option>" - } - }, - "f2": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".as_deref_mut()" - } - ] - } - } - ], - "body": [ - { - "text": ".map_or(::std::ptr::null_mut(), |v| v as *mut " - }, - { - "generic": 1 - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Option>" - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f3": { - "body": [ - { - "text": "Some(Box::from_raw(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": "))" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "Option>" - } - }, - "f4": { - "body": [ - { - "text": "Some(Box::from_raw(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": "))" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "Option>" - } - }, - "f5": { - "body": [ - { - "text": "let _a0: *mut " - }, - { - "generic": 1 - }, - { - "text": " = " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ";\n " - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": " = if " - }, - { - "method_call": { - "receiver": [ - { - "text": "_a0" - } - ], - "body": [ - { - "text": ".is_null()" - } - ] - } - }, - { - "text": " {\n None\n } else {\n Some(Box::from_raw(_a0))\n }" - } - ], - "generics": { - "T1": [ - "Default" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "&mut Option>" - }, - "a1": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - } - }, - "f6": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": " = Some(Box::from_raw(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": "))" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Option>" - }, - "a1": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - } - }, - "f7": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".as_deref_mut()" - } - ] - } - } - ], - "body": [ - { - "text": ".map_or(::std::ptr::null_mut(), |s| " - }, - { - "method_call": { - "receiver": [ - { - "text": "s" - } - ], - "body": [ - { - "text": ".as_mut_ptr()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Option>" - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f8": { - "body": [ - { - "text": "Some(Box::new(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": "))" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "T1" - } - }, - "return_type": { - "type": "Option>" - } - }, - "f9": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": " = None" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Option>" - } - } - }, - "t1": { - "init": "None", - "type": "Option>" - }, - "t2": { - "init": "None", - "type": "Option>" - } -} diff --git a/rules/unistd/ir_unsafe.json b/rules/unistd/ir_unsafe.json deleted file mode 100644 index 6d4aaddd..00000000 --- a/rules/unistd/ir_unsafe.json +++ /dev/null @@ -1,354 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libc::close(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - } - }, - "return_type": { - "type": "i32" - } - }, - "f10": { - "body": [ - { - "text": "libc::write(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize) as i64" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*const ::libc::c_void", - "is_unsafe_pointer": true - }, - "a2": { - "type": "u64" - } - }, - "return_type": { - "type": "i64" - } - }, - "f11": { - "body": [ - { - "text": "libc::rmdir(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8)" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f2": { - "body": [ - { - "text": "libc::lseek(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "i64" - }, - "a2": { - "type": "i32" - } - }, - "return_type": { - "type": "i64" - } - }, - "f3": { - "body": [ - { - "text": "libc::read(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": " as usize) as i64" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*mut ::libc::c_void", - "is_unsafe_pointer": true - }, - "a2": { - "type": "u64" - } - }, - "return_type": { - "type": "i64" - } - }, - "f4": { - "body": [ - { - "text": "libc::unlink(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *const i8)" - } - ], - "params": { - "a0": { - "type": "*const u8", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f5": { - "body": [ - { - "text": "libc::pipe(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "*mut i32", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "i32" - } - }, - "f6": { - "body": [ - { - "text": "libc::ftruncate(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "i64" - } - }, - "return_type": { - "type": "i32" - } - }, - "f7": { - "body": [ - { - "text": "libc::isatty(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - } - }, - "return_type": { - "type": "i32" - } - }, - "f8": { - "body": [ - { - "text": "libc::geteuid()" - } - ], - "return_type": { - "type": "u32" - } - }, - "f9": { - "body": [ - { - "text": "libc::gethostname(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as *mut i8, " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize)" - } - ], - "params": { - "a0": { - "type": "*mut u8", - "is_unsafe_pointer": true - }, - "a1": { - "type": "u64" - } - }, - "return_type": { - "type": "i32" - } - } -} diff --git a/rules/vector/ir_refcount.json b/rules/vector/ir_refcount.json deleted file mode 100644 index 771e1e47..00000000 --- a/rules/vector/ir_refcount.json +++ /dev/null @@ -1,2198 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "let idx = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|__v: &mut Vec<" - }, - { - "generic": 1 - }, - { - "text": ">| " - }, - { - "method_call": { - "receiver": [ - { - "text": "__v" - } - ], - "body": [ - { - "text": ".remove(idx)" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_strong()" - } - ] - } - } - ], - "body": [ - { - "text": ".as_pointer()" - } - ] - } - }, - { - "text": " as Ptr<" - }, - { - "generic": 1 - }, - { - "text": ">" - } - ], - "generics": { - "T1": [ - "ByteRepr" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr>", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f10": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_last()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f13": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f17": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_end()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f18": { - "body": [ - { - "text": "let __off = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".insert(__off, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "generics": { - "T1": [ - "ByteRepr" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a2": { - "type": "T1" - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f20": { - "body": [ - { - "text": "let __off = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".insert(__off, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";\n " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "generics": { - "T1": [ - "ByteRepr" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a2": { - "type": "T1" - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f22": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f23": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f24": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f25": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".offset(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as isize)" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "usize" - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f26": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " != " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "bool" - } - }, - "f27": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " == " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "bool" - } - }, - "f28": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".postfix_inc()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f29": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".iter()" - } - ] - } - } - ], - "body": [ - { - "text": ".map(|inner_vec| Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "inner_vec" - } - ], - "body": [ - { - "text": ".borrow()" - } - ] - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ")))" - } - ] - } - } - ], - "body": [ - { - "text": ".collect()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone" - ] - }, - "params": { - "a0": { - "type": "Vec>>" - } - }, - "return_type": { - "type": "Vec>>" - } - }, - "f30": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(0..(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ") as usize)" - } - ], - "body": [ - { - "text": ".map(|_| >>::default())" - } - ] - } - } - ], - "body": [ - { - "text": ".collect::>()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Default", - "Clone" - ] - }, - "params": { - "a0": { - "type": "usize" - } - }, - "return_type": { - "type": "Vec>>" - } - }, - "f31": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|__v: &mut Vec>>| " - }, - { - "method_call": { - "receiver": [ - { - "text": "__v" - } - ], - "body": [ - { - "text": ".push(Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ")))" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "ByteRepr", - "Clone" - ] - }, - "params": { - "a0": { - "type": "Ptr>>>", - "is_refcount_pointer": true - }, - "a1": { - "type": "Vec" - } - } - }, - "f32": { - "body": [ - { - "text": "let _a0 = " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|__v: &mut Vec>>| " - }, - { - "method_call": { - "receiver": [ - { - "text": "__v" - } - ], - "body": [ - { - "text": ".resize_with(_a0, >>::default)" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "Default", - "ByteRepr" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr>>>", - "is_refcount_pointer": true - }, - "a1": { - "type": "usize" - } - } - }, - "f33": { - "body": [ - { - "text": "((" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": " as isize) - (" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": " as isize))" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "isize" - } - }, - "f34": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".prefix_inc()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f35": { - "body": [ - { - "text": "let __count = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": " - " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "PtrValueIter::new(&" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", __count)" - } - ], - "body": [ - { - "text": ".collect::>()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone", - "ByteRepr" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Vec" - } - }, - "f37": { - "body": [ - { - "text": "let __count = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": " - " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "PtrValueIter::new(&" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", __count)" - } - ], - "body": [ - { - "text": ".map(|item| " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "generic": 1 - }, - { - "text": "::try_from(item)" - } - ], - "body": [ - { - "text": ".ok()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".collect::>()" - } - ] - } - } - ], - "generics": { - "T1": [ - "TryFrom" - ], - "T2": [ - "Clone", - "ByteRepr" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Vec" - } - }, - "f40": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_end()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f41": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f42": { - "body": [ - { - "text": "let __count = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": " - " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ";\n let max_index = " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "PtrValueIter::new(&" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", __count)" - } - ], - "body": [ - { - "text": ".enumerate()" - } - ] - } - } - ], - "body": [ - { - "text": ".max_by_key(|&(_, val)| val)" - } - ] - } - } - ], - "body": [ - { - "text": ".map(|(idx, _)| idx)" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap_or(0)" - } - ] - } - }, - { - "text": ";\n\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " + max_index" - } - ], - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f43": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f44": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_end()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f50": { - "body": [ - { - "text": "if " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize >= " - }, - { - "method_call": { - "receiver": [ - { - "text": "(*" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".upgrade()" - } - ] - } - } - ], - "body": [ - { - "text": ".deref()" - } - ] - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " {\n panic!(\"out of bounds access\")\n } else {\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".offset(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as isize)" - } - ] - } - }, - { - "text": "\n }" - } - ], - "generics": { - "T1": [ - "ByteRepr" - ] - }, - "params": { - "a0": { - "type": "Ptr>", - "is_refcount_pointer": true - }, - "a1": { - "type": "usize" - } - }, - "return_type": { - "type": "Ptr>", - "is_refcount_pointer": true - } - }, - "f51": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_last()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f52": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|__v: &mut Vec>>| " - }, - { - "method_call": { - "receiver": [ - { - "text": "__v" - } - ], - "body": [ - { - "text": ".push(Rc::new(RefCell::new(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ")))" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone", - "ByteRepr" - ] - }, - "params": { - "a0": { - "type": "Ptr>>>", - "is_refcount_pointer": true - }, - "a1": { - "type": "Vec" - } - } - }, - "f53": { - "body": [ - { - "text": "let start_idx = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ";\n let count = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 3, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": " - " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 2, - "access": "read" - } - } - ], - "body": [ - { - "text": ".get_offset()" - } - ] - } - }, - { - "text": ";\n let temp_vec: Vec<" - }, - { - "generic": 1 - }, - { - "text": "> = " - }, - { - "method_call": { - "receiver": [ - { - "text": "PtrValueIter::new(&" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ", count)" - } - ], - "body": [ - { - "text": ".collect()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".with_mut(|v: &mut Vec<" - }, - { - "generic": 1 - }, - { - "text": ">| {\n " - }, - { - "method_call": { - "receiver": [ - { - "text": "v" - } - ], - "body": [ - { - "text": ".splice(start_idx..start_idx, temp_vec)" - } - ] - } - }, - { - "text": ";\n })" - } - ] - } - }, - { - "text": ";\n " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " + start_idx" - } - ], - "generics": { - "T1": [ - "Clone", - "ByteRepr" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "Ptr>", - "is_refcount_pointer": true - }, - "a1": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a2": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a3": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr>", - "is_refcount_pointer": true - } - }, - "f55": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".write(" - }, - { - "placeholder": { - "arg": 1, - "access": "move" - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "ByteRepr", - "Clone" - ] - }, - "params": { - "a0": { - "type": "Ptr>", - "is_refcount_pointer": true - }, - "a1": { - "type": "&mut Vec" - } - } - }, - "f56": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read", - "is_index_base": true - } - }, - { - "text": "[" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " - 1]" - } - ], - "body": [ - { - "text": ".as_pointer()" - } - ] - } - } - ], - "generics": { - "T1": [ - "ByteRepr" - ] - }, - "params": { - "a0": { - "type": "&Vec>>" - } - }, - "return_type": { - "type": "Ptr>", - "is_refcount_pointer": true - } - }, - "f57": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".to_end()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f58": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".write(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone", - "ByteRepr" - ] - }, - "params": { - "a0": { - "type": "Ptr>", - "is_refcount_pointer": true - }, - "a1": { - "type": "Vec" - } - } - }, - "f6": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f7": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".offset(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as isize)" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - }, - "a1": { - "type": "usize" - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "f9": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "return_type": { - "type": "Ptr", - "is_refcount_pointer": true - } - }, - "t2": { - "init": "Ptr::null()", - "type": "Ptr", - "is_refcount_pointer": true - }, - "t3": { - "init": "Vec::new()", - "type": "Vec>>" - }, - "t4": { - "init": "Ptr::null()", - "type": "Ptr", - "is_refcount_pointer": true - } -} diff --git a/rules/vector/ir_unsafe.json b/rules/vector/ir_unsafe.json deleted file mode 100644 index 88566aca..00000000 --- a/rules/vector/ir_unsafe.json +++ /dev/null @@ -1,2923 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "let pos = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".as_ptr()" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".remove(pos)" - } - ] - } - }, - { - "text": ";\n " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f10": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".last_mut()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f11": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".capacity()" - } - ] - } - }, - { - "text": " as u64" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "u64" - } - }, - "f12": { - "body": [ - { - "text": "if " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize > " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".capacity()" - } - ] - } - }, - { - "text": " as usize {\n let len_0 = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".reserve_exact(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize - len_0 as usize)" - } - ] - } - }, - { - "text": ";\n }" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "usize" - } - } - }, - "f13": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".as_mut_ptr()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f14": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".push(" - }, - { - "placeholder": { - "arg": 1, - "access": "move" - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "Default" - ] - }, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "&mut T1" - } - } - }, - "f15": { - "body": [ - { - "text": "let __a0 = " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".resize_with(__a0, || <" - }, - { - "generic": 1 - }, - { - "text": ">::default())" - } - ] - } - } - ], - "generics": { - "T1": [ - "Default" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "usize" - } - } - }, - "f16": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".clear()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - } - } - }, - "f17": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".as_mut_ptr()" - } - ] - } - } - ], - "body": [ - { - "text": ".add(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f18": { - "body": [ - { - "text": "let pos = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".as_ptr()" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".insert(pos, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";" - } - ], - "generics": { - "T1": [] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "*const T1", - "is_unsafe_pointer": true - }, - "a2": { - "type": "T1" - } - } - }, - "f19": { - "body": [ - { - "text": "vec![" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": "; " - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " as usize]" - } - ], - "generics": { - "T1": [ - "Default", - "Clone" - ] - }, - "params": { - "a0": { - "type": "usize" - }, - "a1": { - "type": "T1" - } - }, - "return_type": { - "type": "Vec" - } - }, - "f2": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " as u64" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "u64" - } - }, - "f20": { - "body": [ - { - "text": "let pos = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".as_ptr()" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".insert(pos, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": ";" - } - ], - "generics": { - "T1": [] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "*const T1", - "is_unsafe_pointer": true - }, - "a2": { - "type": "T1" - } - } - }, - "f21": { - "body": [ - { - "text": "let a0_clone = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".push(a0_clone)" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "T1" - } - } - }, - "f22": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f23": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f24": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f25": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".add(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize)" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "usize" - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f26": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " != " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "*const T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "bool" - } - }, - "f27": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": " == " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "*const T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "bool" - } - }, - "f28": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".postfix_inc()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut *mut T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f29": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone" - ] - }, - "params": { - "a0": { - "type": "Vec>" - } - }, - "return_type": { - "type": "Vec>" - } - }, - "f3": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".is_empty()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "bool" - } - }, - "f30": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(0..(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ") as usize)" - } - ], - "body": [ - { - "text": ".map(|_| >::default())" - } - ] - } - } - ], - "body": [ - { - "text": ".collect::>()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Default", - "Clone" - ] - }, - "params": { - "a0": { - "type": "usize" - } - }, - "return_type": { - "type": "Vec>" - } - }, - "f31": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".push(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec>" - }, - "a1": { - "type": "Vec" - } - } - }, - "f32": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".resize_with(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize, || >::default())" - } - ] - } - } - ], - "generics": { - "T1": [ - "Default" - ] - }, - "params": { - "a0": { - "type": "&mut Vec>" - }, - "a1": { - "type": "usize" - } - } - }, - "f33": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "*const T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "isize" - } - }, - "f34": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".prefix_inc()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut *mut T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f35": { - "body": [ - { - "method_call": { - "receiver": [ - { - "text": "core::slice::from_raw_parts(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize)" - } - ], - "body": [ - { - "text": ".to_vec()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone" - ] - }, - "params": { - "a0": { - "type": "*const T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "Vec" - } - }, - "f36": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "Vec" - } - }, - "f37": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "core::slice::from_raw_parts(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "placeholder": { - "arg": 1, - "access": "write" - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize)" - } - ], - "body": [ - { - "text": ".iter()" - } - ] - } - } - ], - "body": [ - { - "text": ".map(|x| " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "generic": 1 - }, - { - "text": "::try_from(" - }, - { - "method_call": { - "receiver": [ - { - "text": "x" - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".ok()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".collect()" - } - ] - } - } - ], - "generics": { - "T1": [ - "TryFrom" - ], - "T2": [ - "Clone" - ] - }, - "params": { - "a0": { - "type": "*mut T2", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*mut T2", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "Vec" - } - }, - "f38": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(0..(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ") as usize)" - } - ], - "body": [ - { - "text": ".map(|_| " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "body": [ - { - "text": ".collect::>()" - } - ] - } - } - ], - "params": { - "a0": { - "type": "usize" - }, - "a1": { - "type": "bool" - } - }, - "return_type": { - "type": "Vec" - } - }, - "f4": { - "body": [ - { - "text": "Vec::new()" - } - ], - "generics": { - "T1": [] - }, - "return_type": { - "type": "Vec" - } - }, - "f40": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".as_ptr()" - } - ] - } - } - ], - "body": [ - { - "text": ".add(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f41": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".as_ptr()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f42": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "core::slice::from_raw_parts(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize)" - } - ], - "body": [ - { - "text": ".iter()" - } - ] - } - } - ], - "body": [ - { - "text": ".max()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Ord" - ] - }, - "params": { - "a0": { - "type": "*const T1", - "is_unsafe_pointer": true - }, - "a1": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f43": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".as_ptr()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f44": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".as_ptr()" - } - ] - } - } - ], - "body": [ - { - "text": ".add(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f47": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "Vec" - } - }, - "f48": { - "body": [ - { - "text": "std::mem::swap(&mut " - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": ", &mut " - }, - { - "placeholder": { - "arg": 1, - "access": "write" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "&mut Vec" - } - } - }, - "f5": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".pop()" - } - ] - } - }, - { - "text": ";" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - } - } - }, - "f50": { - "body": [ - { - "text": "if " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize >= " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": " {\n panic!(\"out of bounds access\")\n } else {\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".as_mut_ptr()" - } - ] - } - } - ], - "body": [ - { - "text": ".add(" - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize)" - } - ] - } - }, - { - "text": "\n }" - } - ], - "generics": { - "T1": [ - "Copy" - ] - }, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "usize" - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f51": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".last()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&Vec" - } - }, - "return_type": { - "type": "&T1" - } - }, - "f52": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".push(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone" - ] - }, - "params": { - "a0": { - "type": "&mut Vec>" - }, - "a1": { - "type": "Vec" - } - } - }, - "f53": { - "body": [ - { - "text": "let __off = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".as_ptr()" - } - ] - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize;\n let count = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 3, - "access": "read" - } - } - ], - "body": [ - { - "text": ".offset_from(" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".splice(\n __off..__off,\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "std::slice::from_raw_parts(" - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ", count)" - } - ], - "body": [ - { - "text": ".iter()" - } - ] - } - } - ], - "body": [ - { - "text": ".cloned()" - } - ] - } - }, - { - "text": ",\n )" - } - ] - } - }, - { - "text": ";\n " - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".as_mut_ptr()" - } - ] - } - } - ], - "body": [ - { - "text": ".add(__off)" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "*const T1", - "is_unsafe_pointer": true - }, - "a2": { - "type": "*const T1", - "is_unsafe_pointer": true - }, - "a3": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f54": { - "body": [ - { - "text": "let __a0 = " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as usize;\n " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".resize(__a0, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [ - "Default", - "Clone" - ] - }, - "multi_statement": true, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "usize" - }, - "a2": { - "type": "T1" - } - } - }, - "f55": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": " = " - }, - { - "placeholder": { - "arg": 1, - "access": "move" - } - } - ], - "generics": { - "T1": [ - "Clone" - ] - }, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "&mut Vec" - } - } - }, - "f56": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".last_mut()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec>" - } - }, - "return_type": { - "type": "*mut Vec", - "is_unsafe_pointer": true - } - }, - "f57": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".as_ptr()" - } - ] - } - } - ], - "body": [ - { - "text": ".add(" - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "read" - } - } - ], - "body": [ - { - "text": ".len()" - } - ] - } - }, - { - "text": ")" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "Vec" - } - }, - "return_type": { - "type": "*const T1", - "is_unsafe_pointer": true - } - }, - "f58": { - "body": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": " = " - }, - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 1, - "access": "read" - } - } - ], - "body": [ - { - "text": ".clone()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Clone" - ] - }, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "Vec" - } - } - }, - "f59": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".shrink_to_fit()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - } - } - }, - "f6": { - "body": [ - { - "method_call": { - "receiver": [ - { - "placeholder": { - "arg": 0, - "access": "write" - } - } - ], - "body": [ - { - "text": ".as_mut_ptr()" - } - ] - } - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f7": { - "body": [ - { - "text": "&mut (" - }, - { - "placeholder": { - "arg": 0, - "access": "write", - "is_index_base": true - } - }, - { - "text": ")[" - }, - { - "placeholder": { - "arg": 1, - "access": "write" - } - }, - { - "text": " as usize]" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - }, - "a1": { - "type": "usize" - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "f8": { - "body": [ - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(0..(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ") as usize)" - } - ], - "body": [ - { - "text": ".map(|_| <" - }, - { - "generic": 1 - }, - { - "text": ">::default())" - } - ] - } - } - ], - "body": [ - { - "text": ".collect::>()" - } - ] - } - } - ], - "generics": { - "T1": [ - "Default" - ] - }, - "params": { - "a0": { - "type": "usize" - } - }, - "return_type": { - "type": "Vec" - } - }, - "f9": { - "body": [ - { - "text": "(" - }, - { - "method_call": { - "receiver": [ - { - "method_call": { - "receiver": [ - { - "text": "(" - }, - { - "placeholder": { - "arg": 0, - "access": "write" - } - }, - { - "text": ")" - } - ], - "body": [ - { - "text": ".first_mut()" - } - ] - } - } - ], - "body": [ - { - "text": ".unwrap()" - } - ] - } - }, - { - "text": ")" - } - ], - "generics": { - "T1": [] - }, - "params": { - "a0": { - "type": "&mut Vec" - } - }, - "return_type": { - "type": "*mut T1", - "is_unsafe_pointer": true - } - }, - "t1": { - "init": "Default::default()", - "type": "Vec" - }, - "t2": { - "init": "Default::default()", - "type": "*mut T1", - "is_unsafe_pointer": true - }, - "t3": { - "init": "Vec::new()", - "type": "Vec>" - }, - "t4": { - "init": "Default::default()", - "type": "*const T1", - "is_unsafe_pointer": true - } -} diff --git a/rules/xattr/ir_unsafe.json b/rules/xattr/ir_unsafe.json deleted file mode 100644 index fccd3b47..00000000 --- a/rules/xattr/ir_unsafe.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "f1": { - "body": [ - { - "text": "libc::fsetxattr(" - }, - { - "placeholder": { - "arg": 0, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 1, - "access": "read" - } - }, - { - "text": " as *const i8, " - }, - { - "placeholder": { - "arg": 2, - "access": "read" - } - }, - { - "text": ", " - }, - { - "placeholder": { - "arg": 3, - "access": "read" - } - }, - { - "text": " as ::libc::size_t, " - }, - { - "placeholder": { - "arg": 4, - "access": "read" - } - }, - { - "text": ")" - } - ], - "params": { - "a0": { - "type": "i32" - }, - "a1": { - "type": "*const u8", - "is_unsafe_pointer": true - }, - "a2": { - "type": "*const ::libc::c_void", - "is_unsafe_pointer": true - }, - "a3": { - "type": "u64" - }, - "a4": { - "type": "i32" - } - }, - "return_type": { - "type": "i32" - }, - "target_os": "linux" - } -} From 2be7263254b08a0c4125a93b55474e2f28acee1d Mon Sep 17 00:00:00 2001 From: Lucian Popescu Date: Fri, 22 May 2026 22:02:03 +0100 Subject: [PATCH 2/8] Delete ignore rule for json files --- .gitignore | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitignore b/.gitignore index efe2a8bd..be1c10e9 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,3 @@ tmp *.BASE.* *.LOCAL.* *.REMOTE.* - -# Generated by cpp-rule-preprocessor at build time. -rules/*/ir_src.json From ca07e63ae1aa1fa6a64315857fe37b54b9c1bcb4 Mon Sep 17 00:00:00 2001 From: Lucian Popescu Date: Fri, 22 May 2026 22:02:14 +0100 Subject: [PATCH 3/8] Drop check-rules from github runner --- .github/workflows/run-tests.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 23276bb1..c14d8414 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -44,10 +44,6 @@ jobs: run: ninja working-directory: build - - name: Check rules - run: ninja check-rules - working-directory: build - - name: Run unit tests run: ninja check working-directory: build From 8eb3f89f3ed7ead364fd3f466db3a1c1ac5cc3f5 Mon Sep 17 00:00:00 2001 From: Lucian Popescu Date: Fri, 22 May 2026 22:03:17 +0100 Subject: [PATCH 4/8] Generate ir files in build/rules --- CMakeLists.txt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2dd2157f..6e148fd2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -151,6 +151,8 @@ add_custom_target("check" DEPENDS check-libcc2rs check-unit ) +set(RULES_IR_DIR "${CMAKE_BINARY_DIR}/rules") + file(GLOB rule_subdirs ${PROJECT_SOURCE_DIR}/rules/*) set(cpp_rules_ir_outputs) set(rust_rules_ir_outputs) @@ -160,20 +162,23 @@ foreach(_rule_dir IN LISTS rule_subdirs) if(NOT _srcs) continue() endif() - set(_out ${_rule_dir}/ir_src.json) + get_filename_component(_rule_name ${_rule_dir} NAME) + set(_out_dir ${RULES_IR_DIR}/${_rule_name}) + set(_out ${_out_dir}/ir_src.json) add_custom_command( OUTPUT ${_out} - COMMAND $ --dir ${_rule_dir} + COMMAND ${CMAKE_COMMAND} -E make_directory ${_out_dir} + COMMAND $ --dir ${_rule_dir} --out ${_out} DEPENDS ${_srcs} ${PROJECT_SOURCE_DIR}/cpp2rust/cpp_rule_preprocessor.cpp VERBATIM ) list(APPEND cpp_rules_ir_outputs ${_out}) if(EXISTS ${_rule_dir}/tgt_unsafe.rs) - list(APPEND rust_rules_ir_outputs ${_rule_dir}/ir_unsafe.json) + list(APPEND rust_rules_ir_outputs ${_out_dir}/ir_unsafe.json) list(APPEND rust_rules_inputs ${_rule_dir}/tgt_unsafe.rs) endif() if(EXISTS ${_rule_dir}/tgt_refcount.rs) - list(APPEND rust_rules_ir_outputs ${_rule_dir}/ir_refcount.json) + list(APPEND rust_rules_ir_outputs ${_out_dir}/ir_refcount.json) list(APPEND rust_rules_inputs ${_rule_dir}/tgt_refcount.rs) endif() endforeach() @@ -189,6 +194,7 @@ add_custom_command( COMMAND ${CMAKE_COMMAND} -E env CARGO_TARGET_DIR=${CMAKE_BINARY_DIR}/target_preprocessor cargo +${RUST_NIGHTLY_VERSION} run --release --manifest-path "${PROJECT_SOURCE_DIR}/rule-preprocessor/Cargo.toml" + -- "${RULES_IR_DIR}" DEPENDS ${rust_rules_inputs} ${rule_preprocessor_sources} "${RUST_STAMP_FILE}" VERBATIM ) @@ -197,10 +203,9 @@ add_custom_target("preprocess-rust-rules" ALL DEPENDS ${rust_rules_ir_outputs}) add_custom_target("check-rules" - COMMAND find rules "\\(" -name ir_unsafe.json -o -name ir_refcount.json -o -name ir_src.json "\\)" -delete + COMMAND ${CMAKE_COMMAND} -E rm -rf "${RULES_IR_DIR}" COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target preprocess-cpp-rules COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target preprocess-rust-rules - COMMAND git diff --exit-code -- rules/ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} ) From 15de03b6a8338743c45f7d63852085b03c808d9c Mon Sep 17 00:00:00 2001 From: Lucian Popescu Date: Fri, 22 May 2026 22:06:08 +0100 Subject: [PATCH 5/8] Write tgt IR in build/rules --- rule-preprocessor/src/ir.rs | 22 +++++++++++++--------- rule-preprocessor/src/main.rs | 5 ++++- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/rule-preprocessor/src/ir.rs b/rule-preprocessor/src/ir.rs index 362aeb07..8929bcb8 100644 --- a/rule-preprocessor/src/ir.rs +++ b/rule-preprocessor/src/ir.rs @@ -221,19 +221,23 @@ pub struct RulesIR { } impl RulesIR { - pub fn write_ir(&self) { - let crate_root = self.crate_root.canonicalize().unwrap(); + pub fn write_ir(&self, out_dir: &Path) { for (rule_path, file_ir) in &self.all_ir { let rule_path = Path::new(rule_path); - let file_name = rule_path.file_name().unwrap().to_str().unwrap(); - let json_name = file_name.replace("tgt_", "ir_").replace(".rs", ".json"); - let json_path = rule_path.parent().unwrap().join(json_name); - + let rule_name = rule_path.parent().unwrap().file_name().unwrap(); + let json_name = rule_path + .file_name() + .unwrap() + .to_str() + .unwrap() + .replace("tgt_", "ir_") + .replace(".rs", ".json"); + let json_path = out_dir.join(rule_name).join(json_name); + + std::fs::create_dir_all(json_path.parent().unwrap()).unwrap(); let json = serde_json::to_string_pretty(file_ir).unwrap(); std::fs::write(&json_path, format!("{json}\n")).unwrap(); - - let json_rel = json_path.strip_prefix(&crate_root).unwrap_or(&json_path); - println!("{}", json_rel.display()); + println!("{}", json_path.display()); } } } diff --git a/rule-preprocessor/src/main.rs b/rule-preprocessor/src/main.rs index 8a7e6f80..bd0cca15 100644 --- a/rule-preprocessor/src/main.rs +++ b/rule-preprocessor/src/main.rs @@ -17,8 +17,11 @@ use semantic::SemanticAnalysis; use syntactic::SyntacticAnalysis; fn main() { + let out_dir = std::env::args() + .nth(1) + .expect("usage: rule-preprocessor "); SemanticAnalysis::run(SyntacticAnalysis::run( &std::fs::canonicalize("../rules").unwrap(), )) - .write_ir(); + .write_ir(&std::path::PathBuf::from(out_dir)); } From b85de8b8e5aa9fe36ab69e4470f2da831a88a81f Mon Sep 17 00:00:00 2001 From: Lucian Popescu Date: Fri, 22 May 2026 22:07:12 +0100 Subject: [PATCH 6/8] Receive write destination in cpp-rule-preprocessor --- cpp2rust/cpp_rule_preprocessor.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cpp2rust/cpp_rule_preprocessor.cpp b/cpp2rust/cpp_rule_preprocessor.cpp index cd0a49fe..e7d1ae2f 100644 --- a/cpp2rust/cpp_rule_preprocessor.cpp +++ b/cpp2rust/cpp_rule_preprocessor.cpp @@ -779,10 +779,15 @@ llvm::cl::OptionCategory cat("cpp-rule-preprocessor options"); llvm::cl::opt SrcDir("dir", llvm::cl::desc("Path to a rule directory containing src.c and/or " - "src.cpp. ir_src.json is written into this dir."), + "src.cpp."), llvm::cl::value_desc("rule-dir"), llvm::cl::Required, llvm::cl::cat(cat)); +llvm::cl::opt + OutPath("out", llvm::cl::desc("Path of the ir_src.json file to write."), + llvm::cl::value_desc("out.json"), llvm::cl::Required, + llvm::cl::cat(cat)); + } // namespace int main(int argc, char *argv[]) { @@ -809,7 +814,7 @@ int main(int argc, char *argv[]) { } } - auto out_path = dir / "ir_src.json"; + fs::path out_path = OutPath.getValue(); std::error_code ec; llvm::raw_fd_ostream out(out_path.string(), ec); if (ec) { From 649050fa98473d454d89f0ffd504dbd25a28383b Mon Sep 17 00:00:00 2001 From: Lucian Popescu Date: Fri, 22 May 2026 22:18:25 +0100 Subject: [PATCH 7/8] Choose the rules dir that contains ir*.json files --- cpp2rust/cpp2rust.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/cpp2rust/cpp2rust.cpp b/cpp2rust/cpp2rust.cpp index 52626643..9dc630dc 100644 --- a/cpp2rust/cpp2rust.cpp +++ b/cpp2rust/cpp2rust.cpp @@ -86,13 +86,29 @@ static fs::path GetExecutableDir() { return "."; } +static bool HasIRFiles(const fs::path &dir) { + std::error_code ec; + for (auto it = fs::recursive_directory_iterator(dir, ec); + !ec && it != fs::recursive_directory_iterator(); it.increment(ec)) { + if (!it->is_directory()) { + continue; + } + const auto &p = it->path(); + if (fs::exists(p / "ir_src.json") && (fs::exists(p / "ir_unsafe.json") || + fs::exists(p / "ir_refcount.json"))) { + return true; + } + } + return false; +} + static bool ResolveRulesDir() { std::array candidates = {fs::path("./rules"), fs::path("../rules"), GetExecutableDir() / "../../rules"}; for (const auto &dir : candidates) { - if (fs::exists(dir) && fs::is_directory(dir)) { + if (fs::exists(dir) && fs::is_directory(dir) && HasIRFiles(dir)) { RulesDir = fs::canonical(dir).string(); llvm::errs() << "Using rules directory: " << RulesDir << '\n'; return true; From 033889dbd400884920c46c1bc36a37816862751a Mon Sep 17 00:00:00 2001 From: Lucian Popescu Date: Fri, 22 May 2026 22:21:42 +0100 Subject: [PATCH 8/8] Iterate over all dirs in build/rules when addRulesFromDirectory --- cpp2rust/converter/mapper.cpp | 31 +++++++++++++------------ cpp2rust/converter/translation_rule.cpp | 3 +-- cpp2rust/converter/translation_rule.h | 2 +- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/cpp2rust/converter/mapper.cpp b/cpp2rust/converter/mapper.cpp index c86f903a..8a7109a4 100644 --- a/cpp2rust/converter/mapper.cpp +++ b/cpp2rust/converter/mapper.cpp @@ -409,21 +409,22 @@ TranslationRule::TypeRule *search(clang::QualType qual_type) { } void addRulesFromDirectory(const std::filesystem::path &dir, Model model) { - for (const auto &entry : std::filesystem::recursive_directory_iterator(dir)) { - auto &path = entry.path(); - if (entry.is_regular_file() && - (path.extension() == ".cpp" || path.extension() == ".c")) { - auto [expr_rules, type_rules] = TranslationRule::Load(path, model); - if (expr_rules.empty() && type_rules.empty()) { - log() << "No rules found in " << path << '\n'; - continue; - } - for (auto &[_, rule] : expr_rules) { - exprs_.emplace(GetExprMapKey(rule.src), std::move(rule)); - } - for (auto &[_, rule] : type_rules) { - types_.emplace(GetTypeMapKey(rule.src), std::move(rule)); - } + namespace fs = std::filesystem; + for (const auto &entry : fs::directory_iterator(dir)) { + const auto &path = entry.path(); + assert(fs::exists(path / "ir_src.json") && + (fs::exists(path / "ir_unsafe.json") || + fs::exists(path / "ir_refcount.json"))); + auto [expr_rules, type_rules] = TranslationRule::Load(path, model); + if (expr_rules.empty() && type_rules.empty()) { + log() << "No rules found in " << path << '\n'; + continue; + } + for (auto &[_, rule] : expr_rules) { + exprs_.emplace(GetExprMapKey(rule.src), std::move(rule)); + } + for (auto &[_, rule] : type_rules) { + types_.emplace(GetTypeMapKey(rule.src), std::move(rule)); } } } diff --git a/cpp2rust/converter/translation_rule.cpp b/cpp2rust/converter/translation_rule.cpp index e38928ae..15979654 100644 --- a/cpp2rust/converter/translation_rule.cpp +++ b/cpp2rust/converter/translation_rule.cpp @@ -344,11 +344,10 @@ void TypeRule::dump() const { } } -std::pair Load(const std::filesystem::path &path, +std::pair Load(const std::filesystem::path &dir, Model model) { ExprRules exprs; TypeRules types; - auto dir = path.parent_path(); LoadTgtFromIR(exprs, types, dir / "ir_unsafe.json"); if (model == Model::kRefCount) { diff --git a/cpp2rust/converter/translation_rule.h b/cpp2rust/converter/translation_rule.h index fa3e7333..75853646 100644 --- a/cpp2rust/converter/translation_rule.h +++ b/cpp2rust/converter/translation_rule.h @@ -96,6 +96,6 @@ struct TypeRule { using ExprRules = std::unordered_map; using TypeRules = std::unordered_map; -std::pair Load(const std::filesystem::path &path, +std::pair Load(const std::filesystem::path &dir, Model model); } // namespace cpp2rust::TranslationRule