diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 96f12505868..86016b745f3 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -58,7 +58,7 @@ lib/codeql/rust/elements/FieldList.qll 72f3eace2f0c0600b1ad059819ae756f1feccd155 lib/codeql/rust/elements/FnPtrTypeRepr.qll d4586ac5ee2382b5ef9daafa77c7b3c1b7564647aa20d1efb1626299cde87ba9 48d9b63725c9cd89d79f9806fa5d5f22d7815e70bbd78d8da40a2359ac53fef5 lib/codeql/rust/elements/ForBinder.qll ee29b55cb4c1fa5180cc4ee1236ac089fe9f67ffa9e5a1474003b717f1ac6e0f 5b811c8cf9550cb675034315e03c5cbbfa7544ad3a696988e04d780037d434bf lib/codeql/rust/elements/ForExpr.qll a050f60cf6fcc3ce66f5042be1b8096e5207fe2674d7477f9e299091ca99a4bd d7198495139649778894e930163add2d16b5588dd12bd6e094a9aec6863cb16f -lib/codeql/rust/elements/ForTypeRepr.qll 32473eeafc32aabfda770d585fd77a19f4eb0b55f1d78ae78f220b6371b6169c a3c4d5d406abe5513f3ed7a80a3d1cbd4d5cdeec2704eb1c12081220ebe44618 +lib/codeql/rust/elements/ForTypeRepr.qll c85c5e368b9db4a308b55259b3e6b1f4d37050984de43b24971243d6ca6dcec5 51b1c3ddac2fb9616ec44816bcbb549df2c15bbbe674d045a7b1c352c1e335e3 lib/codeql/rust/elements/Format.qll 1b186730710e7e29ea47594998f0b359ad308927f84841adae0c0cb35fc8aeda d6f7bfdda60a529fb9e9a1975628d5bd11aa28a45e295c7526692ac662fd19f8 lib/codeql/rust/elements/FormatArgsArg.qll a2c23cd512d44dd60b7d65eba52cc3adf6e2fbbcd0588be375daa16002cd7741 d9c5fe183fb228375223d83f857b7a9ee686f1d3e341bcf323d7c6f39652f88b lib/codeql/rust/elements/FormatArgsExpr.qll 8127cbe4082f7acc3d8a05298c2c9bea302519b8a6cd2d158a83c516d18fc487 88cf9b3bedd69a1150968f9a465c904bbb6805da0e0b90cfd1fc0dab1f6d9319 @@ -274,7 +274,7 @@ lib/codeql/rust/elements/internal/FnPtrTypeReprImpl.qll 6b66f9bda1b5deba50a02b6a lib/codeql/rust/elements/internal/ForBinderConstructor.qll 98f16b0106a19210713404f4be8b1b9f70c88efb0b88bdf2f9ea9c8fbd129842 a7af9e75f11d824a60c367924542a31a0f46f7b1f88d3ee330d4dd26b2f29df5 lib/codeql/rust/elements/internal/ForExprConstructor.qll d79b88dac19256300b758ba0f37ce3f07e9f848d6ae0c1fdb87bd348e760aa3e 62123b11858293429aa609ea77d2f45cb8c8eebae80a1d81da6f3ad7d1dbc19b lib/codeql/rust/elements/internal/ForTypeReprConstructor.qll eae141dbe9256ab0eb812a926ebf226075d150f6506dfecb56c85eb169cdc76b 721c2272193a6f9504fb780d40e316a93247ebfb1f302bb0a0222af689300245 -lib/codeql/rust/elements/internal/ForTypeReprImpl.qll d710208dfd3f54d973e86356f051e2938fed1025562965d6ecf6b19c0701de16 510baafa9ebc9b32969cefc5b68716fa02696f5814ae417b0cd2d9aece69f6ac +lib/codeql/rust/elements/internal/ForTypeReprImpl.qll dbbcb86626dcba3d5534d461d7306c354a15f800ff37c1d039801b868179b387 f942eebb20fb2603b7bab0e90f3e3f7a3f87dd6229090fc011c692a52164ac90 lib/codeql/rust/elements/internal/FormatArgsArgConstructor.qll 8bd9b4e035ef8adeb3ac510dd68043934c0140facb933be1f240096d01cdfa11 74e9d3bbd8882ae59a7e88935d468e0a90a6529a4e2af6a3d83e93944470f0ee lib/codeql/rust/elements/internal/FormatArgsArgImpl.qll 6a8f55e51e141e4875ed03a7cc65eea49daa349de370b957e1e8c6bc4478425c 7efab8981ccbe75a4843315404674793dda66dde02ba432edbca25c7d355778a lib/codeql/rust/elements/internal/FormatArgsExprConstructor.qll ce29ff5a839b885b1ab7a02d6a381ae474ab1be3e6ee7dcfd7595bdf28e4b558 63bf957426871905a51ea319662a59e38104c197a1024360aca364dc145b11e8 @@ -514,7 +514,7 @@ lib/codeql/rust/elements/internal/generated/FieldList.qll 35bb72a673c02afafc1f61 lib/codeql/rust/elements/internal/generated/FnPtrTypeRepr.qll f218fa57a01ecc39b58fa15893d6499c15ff8ab8fd9f4ed3078f0ca8b3f15c7e 2d1a7325cf2bd0174ce6fc15e0cbe39c7c1d8b40db5f91e5329acb339a1ad1e8 lib/codeql/rust/elements/internal/generated/ForBinder.qll 7be6b8e3934db8cd4ac326625cf637dda4b175fd7573a52d2feb147769c4c6a1 234484b9b4cf3a20c97334417700db5029da65313410b3c9e929512c509e5c27 lib/codeql/rust/elements/internal/generated/ForExpr.qll 7c497d2c612fd175069037d6d7ff9339e8aec63259757bb56269e9ca8b0114ea dc48c0ad3945868d6bd5e41ca34a41f8ee74d8ba0adc62b440256f59c7f21096 -lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll 11f21528d55f41d28d2b1da71631da1c02053ac723e697b886e586572c919999 852b977fe46b87efd6741a2f3c7e3d22a7e2a55a75b9c26d9dc4ea2154fe3653 +lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll 7daa3b938592b590d604203e7d0fc5c34c2bffe6adcceee5a5e0c681ed16214c f1380179cbdc188ad133c946d9e17e85aed0d77771b319f663d8eada0f7cf17d lib/codeql/rust/elements/internal/generated/Format.qll 934351f8a8ffd914cc3fd88aca8e81bf646236fe34d15e0df7aeeb0b942b203f da9f146e6f52bafd67dcfd3b916692cf8f66031e0b1d5d17fc8dda5eefb99ca0 lib/codeql/rust/elements/internal/generated/FormatArgsArg.qll c762a4af8609472e285dd1b1aec8251421aec49f8d0e5ce9df2cc5e2722326f8 c8c226b94b32447634b445c62bd9af7e11b93a706f8fa35d2de4fda3ce951926 lib/codeql/rust/elements/internal/generated/FormatArgsExpr.qll 8aed8715a27d3af3de56ded4610c6792a25216b1544eb7e57c8b0b37c14bd9c1 590a2b0063d2ecd00bbbd1ce29603c8fd69972e34e6daddf309c915ce4ec1375 @@ -589,7 +589,7 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 8d0ea4f6c7f8203340bf lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9 lib/codeql/rust/elements/internal/generated/RangePat.qll 80826a6a6868a803aa2372e31c52a03e1811a3f1f2abdb469f91ca0bfdd9ecb6 34ee1e208c1690cba505dff2c588837c0cd91e185e2a87d1fe673191962276a9 -lib/codeql/rust/elements/internal/generated/Raw.qll e33ef2818c9bbdd5030903592ba07286c28b35b1952fa3f4ffb0ce27173fef04 fb0a5e30947e13a06d867049ced5547d5d7bc80ac2f55c6912b2c0d1d1446072 +lib/codeql/rust/elements/internal/generated/Raw.qll 1578a58b7115fed2bfdaf65c3a9e6ef8318660b11a9c8f1cc334114f9c38e0af a8ea88419f42be7a40d7419d07a0469380ba3c4706e6a580554a4c28e216fc00 lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66 lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05 lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 5b0663a6d234572fb3e467e276d019415caa95ef006438cc59b7af4e1783161e 0e27c8a8f0e323c0e4d6db01fca821bf07c0864d293cdf96fa891b10820c1e4b diff --git a/rust/ql/lib/codeql/rust/elements/ForTypeRepr.qll b/rust/ql/lib/codeql/rust/elements/ForTypeRepr.qll index 6b58c0c70f6..4b882044d06 100644 --- a/rust/ql/lib/codeql/rust/elements/ForTypeRepr.qll +++ b/rust/ql/lib/codeql/rust/elements/ForTypeRepr.qll @@ -8,13 +8,12 @@ import codeql.rust.elements.ForBinder import codeql.rust.elements.TypeRepr /** - * A type with a higher-ranked `for` modifier. This is currently not valid Rust syntax (`for<...>` can - * only be applied to traits to form a `TypeBound`). + * A function pointer type with a `for` modifier. * * For example: * ```rust - * fn foo(value: for<'a> usize) {} // DOESN'T COMPILE - * // ^^^^^^^^^^^^^ + * type RefOp = for<'a> fn(&'a X) -> &'a X; + * // ^^^^^^^^^^^^^^^^^^^^^^^^^^ * ``` */ final class ForTypeRepr = Impl::ForTypeRepr; diff --git a/rust/ql/lib/codeql/rust/elements/internal/ForTypeReprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/ForTypeReprImpl.qll index 961085f026a..409c0d94c94 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/ForTypeReprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/ForTypeReprImpl.qll @@ -13,13 +13,12 @@ private import codeql.rust.elements.internal.generated.ForTypeRepr */ module Impl { /** - * A type with a higher-ranked `for` modifier. This is currently not valid Rust syntax (`for<...>` can - * only be applied to traits to form a `TypeBound`). + * A function pointer type with a `for` modifier. * * For example: * ```rust - * fn foo(value: for<'a> usize) {} // DOESN'T COMPILE - * // ^^^^^^^^^^^^^ + * type RefOp = for<'a> fn(&'a X) -> &'a X; + * // ^^^^^^^^^^^^^^^^^^^^^^^^^^ * ``` */ class ForTypeRepr extends Generated::ForTypeRepr { } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll index 49e0f009c09..56745b56f00 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ForTypeRepr.qll @@ -16,13 +16,12 @@ import codeql.rust.elements.internal.TypeReprImpl::Impl as TypeReprImpl */ module Generated { /** - * A type with a higher-ranked `for` modifier. This is currently not valid Rust syntax (`for<...>` can - * only be applied to traits to form a `TypeBound`). + * A function pointer type with a `for` modifier. * * For example: * ```rust - * fn foo(value: for<'a> usize) {} // DOESN'T COMPILE - * // ^^^^^^^^^^^^^ + * type RefOp = for<'a> fn(&'a X) -> &'a X; + * // ^^^^^^^^^^^^^^^^^^^^^^^^^^ * ``` * INTERNAL: Do not reference the `Generated::ForTypeRepr` class directly. * Use the subclass `ForTypeRepr`, where the following predicates are available. diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll index c689089be1e..d0aa59d583e 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -2204,13 +2204,12 @@ module Raw { /** * INTERNAL: Do not use. - * A type with a higher-ranked `for` modifier. This is currently not valid Rust syntax (`for<...>` can - * only be applied to traits to form a `TypeBound`). + * A function pointer type with a `for` modifier. * * For example: * ```rust - * fn foo(value: for<'a> usize) {} // DOESN'T COMPILE - * // ^^^^^^^^^^^^^ + * type RefOp = for<'a> fn(&'a X) -> &'a X; + * // ^^^^^^^^^^^^^^^^^^^^^^^^^^ * ``` */ class ForTypeRepr extends @for_type_repr, TypeRepr { diff --git a/rust/ql/test/extractor-tests/generated/.generated_tests.list b/rust/ql/test/extractor-tests/generated/.generated_tests.list index 2cfccde4c10..e41f01de20a 100644 --- a/rust/ql/test/extractor-tests/generated/.generated_tests.list +++ b/rust/ql/test/extractor-tests/generated/.generated_tests.list @@ -42,7 +42,7 @@ FieldExpr/gen_field_expr.rs 9a70500d592e0a071b03d974a55558b3bc0df531ff11bce5898f FnPtrTypeRepr/gen_fn_ptr_type_repr.rs c154ec0cc43236d133f6b946374f3063b89e5cbf9e96d9ee66877be4f948888e c154ec0cc43236d133f6b946374f3063b89e5cbf9e96d9ee66877be4f948888e ForBinder/gen_for_binder.rs e3c9e5ffd3f2a5a546af9ab6e2a2ed733baf9cf609e05850b70feb31478a0bae e3c9e5ffd3f2a5a546af9ab6e2a2ed733baf9cf609e05850b70feb31478a0bae ForExpr/gen_for_expr.rs 003dc36e3dc4db6e3a4accd410c316f14334ba5b3d5d675c851a91dcd5185122 003dc36e3dc4db6e3a4accd410c316f14334ba5b3d5d675c851a91dcd5185122 -ForTypeRepr/gen_for_type_repr.rs d6dc10cdb4f505447805d24e83a24f876f2b6e6d8cdb193e786405f3ffbc7cda d6dc10cdb4f505447805d24e83a24f876f2b6e6d8cdb193e786405f3ffbc7cda +ForTypeRepr/gen_for_type_repr.rs fdbcbce6065082f350f8d3f77c23424bec8883336e4cd69ce8f41b185a51dc50 fdbcbce6065082f350f8d3f77c23424bec8883336e4cd69ce8f41b185a51dc50 FormatArgsExpr/gen_format.rs e9d8e7b98d0050ad6053c2459cb21faab00078e74245336a5962438336f76d33 e9d8e7b98d0050ad6053c2459cb21faab00078e74245336a5962438336f76d33 FormatArgsExpr/gen_format_args_arg.rs 53ffd6abe4cd899c57d1973b31df0edc1d5eaa5835b19172ec4cda15bb3db28f 53ffd6abe4cd899c57d1973b31df0edc1d5eaa5835b19172ec4cda15bb3db28f FormatArgsExpr/gen_format_args_expr.rs 72c806ed163e9dcce2d0c5c8664d409b2aa635c1022c91959f9e8ae084f05bf2 72c806ed163e9dcce2d0c5c8664d409b2aa635c1022c91959f9e8ae084f05bf2 diff --git a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.expected b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.expected index 896894bcc06..11c4d0212a7 100644 --- a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.expected @@ -1,6 +1,6 @@ instances -| gen_for_type_repr.rs:8:19:8:31 | ForTypeRepr | +| gen_for_type_repr.rs:7:21:7:46 | ForTypeRepr | getForBinder -| gen_for_type_repr.rs:8:19:8:31 | ForTypeRepr | gen_for_type_repr.rs:8:19:8:25 | for<...> | +| gen_for_type_repr.rs:7:21:7:46 | ForTypeRepr | gen_for_type_repr.rs:7:21:7:27 | for<...> | getTypeRepr -| gen_for_type_repr.rs:8:19:8:31 | ForTypeRepr | gen_for_type_repr.rs:8:27:8:31 | usize | +| gen_for_type_repr.rs:7:21:7:46 | ForTypeRepr | gen_for_type_repr.rs:7:29:7:46 | FnPtrTypeRepr | diff --git a/rust/ql/test/extractor-tests/generated/ForTypeRepr/gen_for_type_repr.rs b/rust/ql/test/extractor-tests/generated/ForTypeRepr/gen_for_type_repr.rs index 448cd5f615f..99072c25bcf 100644 --- a/rust/ql/test/extractor-tests/generated/ForTypeRepr/gen_for_type_repr.rs +++ b/rust/ql/test/extractor-tests/generated/ForTypeRepr/gen_for_type_repr.rs @@ -1,10 +1,9 @@ // generated by codegen, do not edit fn test_for_type_repr() -> () { - // A type with a higher-ranked `for` modifier. This is currently not valid Rust syntax (`for<...>` can - // only be applied to traits to form a `TypeBound`). + // A function pointer type with a `for` modifier. // // For example: - fn foo(value: for<'a> usize) {} // DOESN'T COMPILE - // ^^^^^^^^^^^^^ + type RefOp = for<'a> fn(&'a X) -> &'a X; + // ^^^^^^^^^^^^^^^^^^^^^^^^^^ } diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index 6b7cb3f4f76..bc07e1610f1 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -1158,13 +1158,12 @@ class _: @annotate(ForTypeRepr) class _: """ - A type with a higher-ranked `for` modifier. This is currently not valid Rust syntax (`for<...>` can - only be applied to traits to form a `TypeBound`). + A function pointer type with a `for` modifier. For example: ```rust - fn foo(value: for<'a> usize) {} // DOESN'T COMPILE - // ^^^^^^^^^^^^^ + type RefOp = for<'a> fn(&'a X) -> &'a X; + // ^^^^^^^^^^^^^^^^^^^^^^^^^^ ``` """