Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: thecodingmachine/safe
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.0.0
Choose a base ref
...
head repository: thecodingmachine/safe
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v3.0.1
Choose a head ref
  • 13 commits
  • 252 files changed
  • 3 contributors

Commits on Feb 11, 2025

  1. Fix typos

    szepeviktor authored and shish committed Feb 11, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    MadVikingGod Aaron Clawson
    Copy the full SHA
    019edb0 View commit details

Commits on Feb 17, 2025

  1. Update .gitattributes

    Don't export `.devcontainer`, it's not needed for composer based installation
    mfn authored and shish committed Feb 17, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    bab89f5 View commit details
  2. [generator] better error handling

    - reset docs to master before building DTD entities from them
    - use symfony Finder to remove all generated files, instead of glob to remove some of them
    - less spammy log output (unless --verbose is passed)
    - more detailed error messages
    shish committed Feb 17, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    MadVikingGod Aaron Clawson
    Copy the full SHA
    3043e7b View commit details
  3. [generator] remove unused function

    I'm planning on refactoring this code, let's get a trivial change out of the way first
    shish committed Feb 17, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    MadVikingGod Aaron Clawson
    Copy the full SHA
    6b5efbb View commit details
  4. Make _all_ return types alphabetical

    Currently we're treating `null` and `false` as special cases, adding and removing them at various points in the process; this results in the return type list being `sorted(types-except-null) + null`. I want to remove the special-case magic, which will have the side effect of changing the return type to `sorted(types)`. I'm pulling that out into a separate PR because it makes the future PR easier to understand, and I also think it's valid to do this by itself
    shish committed Feb 17, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    MadVikingGod Aaron Clawson
    Copy the full SHA
    03e6e19 View commit details
  5. More thorough nullability detection

    Before:
    - When scanning for unsafe functions, check phpdoc type and phpstan type
    - When writing wrappers, _occasionally_ check if default value is `null` and infer nullability at the last minute
    
    After:
    - When scanning for unsafe functions, check phpdoc type, phpstan type, and default value
    shish committed Feb 17, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    MadVikingGod Aaron Clawson
    Copy the full SHA
    c87a46b View commit details
  6. [generator] remove some redundant edge-cases

    Special-cases to handle 7.X-era bugs are no longer needed
    
    Evidence that these cases are redundant: removing them doesn't affect the generated code
    shish committed Feb 17, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    78b5bff View commit details
  7. Hide a couple of parameters from stack traces

    When something goes wrong, the stack trace contains ~10,000 lines of spam, often repeated several times over, which makes it hard to find the actual error
    shish committed Feb 17, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    MadVikingGod Aaron Clawson
    Copy the full SHA
    1fb13c3 View commit details
  8. [generator] defer nullable/falsable handling

    Rather than "always strip false/null from return types, and then add them back when the function is non-nullsy / non-falsy", we can reduce complexity by "leave return types alone, strip them only when needed"
    
    This results in no chanes to generated files, but makes future development simpler
    shish committed Feb 17, 2025
    Copy the full SHA
    288a30a View commit details
  9. Add a hidden functions list, fixes #618

    shish committed Feb 17, 2025
    Copy the full SHA
    5f1338b View commit details
  10. Generate full functions even for pass-through wrappers, fixes #621

    The minimalist pass-through stubs we used originally would sometimes behave differently and not actually pass things through as intended D:
    shish committed Feb 17, 2025
    Copy the full SHA
    5c2ce65 View commit details
  11. Remove another redundant "bugfix" (and in doing so, fix pg_copy_from)

    shish committed Feb 17, 2025
    Copy the full SHA
    5bdf054 View commit details

Commits on Feb 18, 2025

  1. More consistent formatting for generated files

    shish committed Feb 18, 2025
    Copy the full SHA
    37123c3 View commit details
Showing with 8,096 additions and 2,199 deletions.
  1. +1 −0 .gitattributes
  2. +2 −2 generated/8.1/array.php
  3. +1 −1 generated/8.1/bzip2.php
  4. +1 −1 generated/8.1/calendar.php
  5. +1 −1 generated/8.1/com.php
  6. +2 −2 generated/8.1/curl.php
  7. +23 −23 generated/8.1/datetime.php
  8. +3 −3 generated/8.1/dir.php
  9. +30 −30 generated/8.1/eio.php
  10. +4 −4 generated/8.1/exec.php
  11. +1 −1 generated/8.1/fileinfo.php
  12. +3 −3 generated/8.1/filesystem.php
  13. +1 −1 generated/8.1/ftp.php
  14. +7 −7 generated/8.1/ibase.php
  15. +2 −2 generated/8.1/iconv.php
  16. +16 −16 generated/8.1/image.php
  17. +11 −11 generated/8.1/imap.php
  18. +27 −27 generated/8.1/ldap.php
  19. +17 −17 generated/8.1/mbstring.php
  20. +1 −1 generated/8.1/misc.php
  21. +18 −18 generated/8.1/mysql.php
  22. +4 −4 generated/8.1/network.php
  23. +4 −4 generated/8.1/oci8.php
  24. +36 −36 generated/8.1/openssl.php
  25. +1 −1 generated/8.1/outcontrol.php
  26. +2 −2 generated/8.1/pcntl.php
  27. +1 −1 generated/8.1/pcre.php
  28. +4 −4 generated/8.1/pgsql.php
  29. +2 −2 generated/8.1/readline.php
  30. +1 −1 generated/8.1/sem.php
  31. +4 −4 generated/8.1/session.php
  32. +4 −4 generated/8.1/sockets.php
  33. +1 −1 generated/8.1/spl.php
  34. +1 −1 generated/8.1/sqlsrv.php
  35. +1 −1 generated/8.1/ssh2.php
  36. +4 −4 generated/8.1/stream.php
  37. +15 −15 generated/8.1/uodbc.php
  38. +2 −2 generated/8.1/url.php
  39. +1 −1 generated/8.1/xdiff.php
  40. +3 −3 generated/8.1/yaml.php
  41. +2 −2 generated/8.1/zlib.php
  42. +112 −20 generated/8.2/array.php
  43. +1 −1 generated/8.2/bzip2.php
  44. +1 −1 generated/8.2/calendar.php
  45. +1 −1 generated/8.2/com.php
  46. +2 −2 generated/8.2/curl.php
  47. +75 −23 generated/8.2/datetime.php
  48. +3 −3 generated/8.2/dir.php
  49. +30 −30 generated/8.2/eio.php
  50. +2 −2 generated/8.2/errorfunc.php
  51. +4 −4 generated/8.2/exec.php
  52. +1 −1 generated/8.2/fileinfo.php
  53. +14 −14 generated/8.2/filesystem.php
  54. +1 −1 generated/8.2/ftp.php
  55. +25 −0 generated/8.2/gmp.php
  56. +34 −5 generated/8.2/hash.php
  57. +7 −7 generated/8.2/ibase.php
  58. +2 −2 generated/8.2/iconv.php
  59. +34 −21 generated/8.2/image.php
  60. +11 −11 generated/8.2/imap.php
  61. +27 −27 generated/8.2/ldap.php
  62. +17 −17 generated/8.2/mbstring.php
  63. +23 −6 generated/8.2/misc.php
  64. +18 −18 generated/8.2/mysql.php
  65. +18 −0 generated/8.2/mysqli.php
  66. +4 −4 generated/8.2/network.php
  67. +4 −4 generated/8.2/oci8.php
  68. +61 −42 generated/8.2/openssl.php
  69. +1 −1 generated/8.2/outcontrol.php
  70. +2 −2 generated/8.2/pcntl.php
  71. +1 −1 generated/8.2/pcre.php
  72. +4 −4 generated/8.2/pgsql.php
  73. +2 −2 generated/8.2/readline.php
  74. +1 −1 generated/8.2/sem.php
  75. +4 −4 generated/8.2/session.php
  76. +4 −4 generated/8.2/sockets.php
  77. +1 −1 generated/8.2/spl.php
  78. +1 −1 generated/8.2/sqlsrv.php
  79. +1 −1 generated/8.2/ssh2.php
  80. +10 −10 generated/8.2/stream.php
  81. +15 −15 generated/8.2/uodbc.php
  82. +2 −2 generated/8.2/url.php
  83. +1 −1 generated/8.2/xdiff.php
  84. +3 −3 generated/8.2/yaml.php
  85. +2 −2 generated/8.2/zlib.php
  86. +112 −20 generated/8.3/array.php
  87. +1 −1 generated/8.3/bzip2.php
  88. +1 −1 generated/8.3/calendar.php
  89. +1 −1 generated/8.3/com.php
  90. +2 −2 generated/8.3/curl.php
  91. +75 −23 generated/8.3/datetime.php
  92. +3 −3 generated/8.3/dir.php
  93. +30 −30 generated/8.3/eio.php
  94. +2 −2 generated/8.3/errorfunc.php
  95. +4 −4 generated/8.3/exec.php
  96. +1 −1 generated/8.3/fileinfo.php
  97. +14 −14 generated/8.3/filesystem.php
  98. +1 −1 generated/8.3/ftp.php
  99. +25 −0 generated/8.3/gmp.php
  100. +34 −5 generated/8.3/hash.php
  101. +7 −7 generated/8.3/ibase.php
  102. +2 −2 generated/8.3/iconv.php
  103. +34 −21 generated/8.3/image.php
  104. +11 −11 generated/8.3/imap.php
  105. +27 −27 generated/8.3/ldap.php
  106. +17 −17 generated/8.3/mbstring.php
  107. +23 −6 generated/8.3/misc.php
  108. +18 −18 generated/8.3/mysql.php
  109. +18 −0 generated/8.3/mysqli.php
  110. +4 −4 generated/8.3/network.php
  111. +4 −4 generated/8.3/oci8.php
  112. +61 −42 generated/8.3/openssl.php
  113. +1 −1 generated/8.3/outcontrol.php
  114. +2 −2 generated/8.3/pcntl.php
  115. +1 −1 generated/8.3/pcre.php
  116. +4 −4 generated/8.3/pgsql.php
  117. +2 −2 generated/8.3/readline.php
  118. +1 −1 generated/8.3/sem.php
  119. +4 −4 generated/8.3/session.php
  120. +4 −4 generated/8.3/sockets.php
  121. +1 −1 generated/8.3/spl.php
  122. +1 −1 generated/8.3/sqlsrv.php
  123. +1 −1 generated/8.3/ssh2.php
  124. +10 −10 generated/8.3/stream.php
  125. +15 −15 generated/8.3/uodbc.php
  126. +2 −2 generated/8.3/url.php
  127. +1 −1 generated/8.3/xdiff.php
  128. +3 −3 generated/8.3/yaml.php
  129. +2 −2 generated/8.3/zlib.php
  130. +48 −15 generated/8.4/apache.php
  131. +138 −12 generated/8.4/array.php
  132. +1 −1 generated/8.4/bzip2.php
  133. +1 −1 generated/8.4/calendar.php
  134. +1 −1 generated/8.4/com.php
  135. +32 −12 generated/8.4/curl.php
  136. +318 −38 generated/8.4/datetime.php
  137. +3 −3 generated/8.4/dir.php
  138. +30 −30 generated/8.4/eio.php
  139. +2 −2 generated/8.4/errorfunc.php
  140. +4 −4 generated/8.4/exec.php
  141. +1 −1 generated/8.4/fileinfo.php
  142. +14 −14 generated/8.4/filesystem.php
  143. +1 −1 generated/8.4/ftp.php
  144. +0 −1 generated/8.4/functionsList.php
  145. +1 −1 generated/8.4/gettext.php
  146. +25 −0 generated/8.4/gmp.php
  147. +34 −5 generated/8.4/hash.php
  148. +7 −7 generated/8.4/ibase.php
  149. +2 −2 generated/8.4/iconv.php
  150. +66 −31 generated/8.4/image.php
  151. +192 −41 generated/8.4/imap.php
  152. +307 −15 generated/8.4/info.php
  153. +55 −32 generated/8.4/ldap.php
  154. +32 −22 generated/8.4/mbstring.php
  155. +207 −16 generated/8.4/misc.php
  156. +18 −18 generated/8.4/mysql.php
  157. +18 −0 generated/8.4/mysqli.php
  158. +116 −20 generated/8.4/network.php
  159. +4 −4 generated/8.4/oci8.php
  160. +62 −43 generated/8.4/openssl.php
  161. +1 −1 generated/8.4/outcontrol.php
  162. +2 −2 generated/8.4/pcntl.php
  163. +1 −1 generated/8.4/pcre.php
  164. +4 −4 generated/8.4/pgsql.php
  165. +40 −5 generated/8.4/pspell.php
  166. +56 −17 generated/8.4/readline.php
  167. +0 −1 generated/8.4/rector-migrate.php
  168. +1 −1 generated/8.4/sem.php
  169. +4 −4 generated/8.4/session.php
  170. +4 −4 generated/8.4/sockets.php
  171. +16 −5 generated/8.4/sodium.php
  172. +1 −1 generated/8.4/spl.php
  173. +1 −1 generated/8.4/sqlsrv.php
  174. +1 −1 generated/8.4/ssh2.php
  175. +10 −10 generated/8.4/stream.php
  176. +537 −64 generated/8.4/uodbc.php
  177. +2 −2 generated/8.4/url.php
  178. +1 −1 generated/8.4/xdiff.php
  179. +753 −20 generated/8.4/xml.php
  180. +3 −3 generated/8.4/yaml.php
  181. +35 −12 generated/8.4/zlib.php
  182. +48 −15 generated/8.5/apache.php
  183. +138 −12 generated/8.5/array.php
  184. +1 −1 generated/8.5/bzip2.php
  185. +1 −1 generated/8.5/calendar.php
  186. +1 −1 generated/8.5/com.php
  187. +32 −12 generated/8.5/curl.php
  188. +318 −38 generated/8.5/datetime.php
  189. +3 −3 generated/8.5/dir.php
  190. +30 −30 generated/8.5/eio.php
  191. +2 −2 generated/8.5/errorfunc.php
  192. +4 −4 generated/8.5/exec.php
  193. +1 −1 generated/8.5/fileinfo.php
  194. +14 −14 generated/8.5/filesystem.php
  195. +1 −1 generated/8.5/ftp.php
  196. +0 −1 generated/8.5/functionsList.php
  197. +1 −1 generated/8.5/gettext.php
  198. +25 −0 generated/8.5/gmp.php
  199. +34 −5 generated/8.5/hash.php
  200. +7 −7 generated/8.5/ibase.php
  201. +2 −2 generated/8.5/iconv.php
  202. +66 −31 generated/8.5/image.php
  203. +192 −41 generated/8.5/imap.php
  204. +307 −15 generated/8.5/info.php
  205. +55 −32 generated/8.5/ldap.php
  206. +32 −22 generated/8.5/mbstring.php
  207. +207 −16 generated/8.5/misc.php
  208. +18 −18 generated/8.5/mysql.php
  209. +18 −0 generated/8.5/mysqli.php
  210. +116 −20 generated/8.5/network.php
  211. +4 −4 generated/8.5/oci8.php
  212. +62 −43 generated/8.5/openssl.php
  213. +1 −1 generated/8.5/outcontrol.php
  214. +2 −2 generated/8.5/pcntl.php
  215. +1 −1 generated/8.5/pcre.php
  216. +4 −4 generated/8.5/pgsql.php
  217. +40 −5 generated/8.5/pspell.php
  218. +56 −17 generated/8.5/readline.php
  219. +0 −1 generated/8.5/rector-migrate.php
  220. +1 −1 generated/8.5/sem.php
  221. +4 −4 generated/8.5/session.php
  222. +19 −2 generated/8.5/shmop.php
  223. +4 −4 generated/8.5/sockets.php
  224. +16 −5 generated/8.5/sodium.php
  225. +1 −1 generated/8.5/spl.php
  226. +1 −1 generated/8.5/sqlsrv.php
  227. +1 −1 generated/8.5/ssh2.php
  228. +10 −10 generated/8.5/stream.php
  229. +541 −68 generated/8.5/uodbc.php
  230. +2 −2 generated/8.5/url.php
  231. +1 −1 generated/8.5/xdiff.php
  232. +753 −20 generated/8.5/xml.php
  233. +3 −3 generated/8.5/yaml.php
  234. +35 −12 generated/8.5/zlib.php
  235. +12 −0 generated/gmp.php
  236. +12 −0 generated/mysqli.php
  237. +11 −0 generator/config/hiddenFunctions.php
  238. +33 −39 generator/src/Commands/GenerateCommand.php
  239. +1 −1 generator/src/Commands/ScanObjectsCommand.php
  240. +18 −20 generator/src/Generator/FileCreator.php
  241. +8 −14 generator/src/Generator/WritePhpFunction.php
  242. +41 −70 generator/src/PhpStanFunctions/PhpStanType.php
  243. +3 −1 generator/src/XmlDocParser/Method.php
  244. +10 −10 generator/src/XmlDocParser/Parameter.php
  245. +24 −3 generator/src/XmlDocParser/Scanner.php
  246. +6 −16 generator/tests/PhpStanFunctions/PhpStanTypeTest.php
  247. +1 −1 generator/tests/XmlDocParser/MethodTest.php
  248. +1 −1 generator/tests/XmlDocParser/ScannerTest.php
  249. +1 −1 lib/DateTimeImmutable.php
  250. +1 −1 lib/special_cases.php
  251. +1 −1 tests/DateTimeImmutableTest.php
  252. +24 −0 tests/DeprecationTest.php
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/.devcontainer export-ignore
/.gitattributes export-ignore
/.github export-ignore
/.gitignore export-ignore
4 changes: 2 additions & 2 deletions generated/8.1/array.php

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion generated/8.1/bzip2.php

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion generated/8.1/calendar.php

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion generated/8.1/com.php

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated/8.1/curl.php

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

46 changes: 23 additions & 23 deletions generated/8.1/datetime.php

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions generated/8.1/dir.php

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading