Joshua Richter
eb80a4ecff
fix(extraction): reach a Swift URL built by a constructor
...
Swift has no URL literal, so almost no real code passes a bare string to a
request. It writes URL(string: "https://…")! instead, and the literal then
sits two levels below the argument list: past the trailing "!", which the
grammar models as a postfix_expression, and inside the constructor's own
value_arguments.
extract_url_or_topic_arg saw only the outer node and gave up, so the URL
never reached the service-pattern table and no Route node formed. That is
the shape issue #1892 reported from a real project — reaching a bare string
argument was only the layer underneath it.
swift_unwrap_url_constructor() steps past both wrappers. It unwraps only
URL, URLComponents and URLRequest, so any other constructor keeps its own
meaning and the outer call does not borrow the inner call's string. A
non-literal argument such as URL(string: base + path) falls through to the
ordinary handling unchanged.
The value_argument unwrap added for the bare-string case is now
swift_argument_value(), because the nested argument list needs the same
step and the code was identical.
Refs #1892
Signed-off-by: Joshua Richter <jrichter5781@gmail.com >
2026-09-06 00:43:50 -04:00
..
2026-08-27 14:54:25 +02:00
2026-08-31 09:13:50 -07:00
2026-09-05 06:05:27 +02:00
2026-06-05 21:53:25 +02:00
2026-09-05 06:05:08 +02:00
2026-07-13 01:50:03 +02:00
2026-03-15 22:37:34 +01:00
2026-08-11 13:37:32 +02:00
2026-08-31 13:32:07 +02:00
2026-08-28 09:22:12 +02:00
2026-05-30 18:26:44 +02:00
2026-08-29 20:33:15 +02:00
2026-06-29 09:45:28 -06:00
2026-07-22 17:48:20 +02:00
2026-09-01 18:43:37 +02:00
2026-07-18 15:52:50 +02:00
2026-09-05 07:59:14 +02:00
2026-08-28 20:04:21 +02:00
2026-07-13 01:50:02 +02:00
2026-07-14 21:13:52 +02:00
2026-08-15 10:37:24 +03:00
2026-08-17 04:54:14 +02:00
2026-08-06 08:24:23 -04:00
2026-08-04 16:37:06 +02:00
2026-06-06 22:16:04 +02:00
2026-08-15 08:44:20 +02:00
2026-08-14 06:46:05 -04:00
2026-07-18 15:52:50 +02:00
2026-09-05 06:05:08 +02:00
2026-09-02 01:00:31 +03:00
2026-08-29 14:44:28 -07:00
2026-08-27 20:32:19 +02:00
2026-08-12 12:47:59 +02:00
2026-08-09 13:06:42 +02:00
2026-07-18 11:48:59 +02:00
2026-09-05 06:05:08 +02:00
2026-08-11 13:37:32 +02:00
2026-07-18 01:26:08 +02:00
2026-07-18 01:26:08 +02:00
2026-08-13 14:04:51 +02:00
2026-09-05 06:05:08 +02:00
2026-08-18 00:14:17 +02:00
2026-06-23 06:38:45 +09:00
2026-08-27 10:15:09 +02:00
2026-03-25 09:28:11 +01:00
2026-08-31 17:51:21 +03:00
2026-08-27 12:42:57 +02:00
2026-09-01 22:30:54 -04:00
2026-06-07 12:35:53 +02:00
2026-08-18 15:56:41 +08:00
2026-09-06 00:43:50 -04:00
2026-08-28 12:22:23 +03:00
2026-06-05 21:53:25 +02:00
2026-07-02 00:37:52 +02:00
2026-08-06 03:30:32 +02:00
2026-09-01 15:51:50 +08:00
2026-08-26 22:51:29 +02:00
2026-08-28 21:30:06 +02:00
2026-06-07 19:13:01 +02:00
2026-06-07 19:13:01 +02:00
2026-06-07 19:13:01 +02:00
2026-06-27 16:23:26 +02:00
2026-06-07 20:05:24 +02:00
2026-06-07 20:05:24 +02:00
2026-08-20 00:12:28 +02:00
2026-08-28 21:30:06 +02:00
2026-09-01 19:35:12 -04:00
2026-05-21 22:52:16 +02:00
2026-07-24 16:08:42 +02:00
2026-08-17 22:07:11 +03:00
2026-09-05 06:05:08 +02:00
2026-08-28 20:56:33 +02:00
2026-09-05 06:05:08 +02:00
2026-08-25 11:57:49 +03:00
2026-09-05 06:05:08 +02:00
2026-09-05 06:05:08 +02:00
2026-08-31 20:14:01 +02:00
2026-07-18 13:48:06 +02:00
2026-06-02 18:52:37 +02:00
2026-07-18 15:52:50 +02:00
2026-07-18 15:52:50 +02:00
2026-08-29 11:26:00 +02:00
2026-08-28 21:30:06 +02:00
2026-09-03 11:42:52 +02:00
2026-09-04 15:42:15 +02:00
2026-09-05 07:59:14 +02:00
2026-08-29 17:30:00 +02:00
2026-03-15 22:37:34 +01:00
2026-09-05 06:05:08 +02:00
2026-07-18 01:26:08 +02:00
2026-06-08 22:55:23 +02:00
2026-07-18 15:52:50 +02:00
2026-09-05 20:02:07 +02:00
2026-09-04 22:02:47 +02:00
2026-08-11 17:01:24 +02:00
2026-09-03 08:14:16 +02:00
2026-06-12 02:17:39 +02:00
2026-08-20 21:20:44 +02:00
2026-09-04 17:58:37 +02:00
2026-09-01 15:52:15 +08:00
2026-08-17 22:07:11 +03:00
2026-09-02 18:42:40 +02:00
2026-07-03 19:57:01 +02:00
2026-07-18 15:52:50 +02:00
2026-07-18 15:52:50 +02:00
2026-09-06 00:43:50 -04:00
2026-09-02 21:55:27 -04:00
2026-07-18 01:26:08 +02:00
2026-07-18 01:26:08 +02:00
2026-08-10 16:40:31 +02:00
2026-08-11 05:30:17 +02:00
2026-05-09 14:16:15 +02:00
2026-07-18 15:52:50 +02:00
2026-09-03 09:39:46 +02:00
2026-08-11 17:01:24 +02:00
2026-09-04 22:02:47 +02:00
2026-08-18 22:30:28 +02:00
2026-06-23 13:52:08 -03:00
2026-08-17 22:07:11 +03:00
2026-07-18 15:52:50 +02:00
2026-07-18 15:52:50 +02:00
2026-08-03 15:42:32 +02:00
2026-08-17 22:07:11 +03:00
2026-08-12 20:57:43 +02:00
2026-08-08 17:35:05 +02:00
2026-07-18 01:26:08 +02:00
2026-08-18 11:21:36 +02:00
2026-08-06 18:33:13 +02:00
2026-06-28 21:57:35 -06:00
2026-08-29 01:06:54 +02:00
2026-07-25 00:37:05 +02:00
2026-08-07 14:58:22 +02:00
2026-07-13 11:43:00 +03:00
2026-08-10 12:57:34 +01:00
2026-08-29 17:44:43 +02:00
2026-03-20 20:32:38 +01:00
2026-08-01 01:29:20 +02:00
2026-07-03 20:16:39 +02:00
2026-08-30 16:46:06 +02:00
2026-09-05 06:05:08 +02:00
2026-08-29 01:04:35 +02:00
2026-03-24 23:48:23 +01:00
2026-06-24 20:33:52 +05:30
2026-09-02 19:12:10 +02:00
2026-09-02 21:55:30 -04:00
2026-08-17 00:16:16 +02:00
2026-06-10 12:11:02 +02:00
2026-07-21 15:32:15 +02:00
2026-08-09 13:06:42 +02:00
2026-04-06 14:34:07 +02:00
2026-08-08 17:35:05 +02:00
2026-08-28 16:41:38 +02:00
2026-09-04 09:41:30 +02:00
2026-08-29 11:05:46 +02:00
2026-08-08 17:35:05 +02:00
2026-06-05 21:53:25 +02:00
2026-08-14 00:21:31 +02:00
2026-08-14 04:40:07 +02:00
2026-08-14 12:48:40 +02:00
2026-08-24 07:25:34 +09:00
2026-08-20 16:43:38 +02:00
2026-08-28 10:11:56 +02:00
2026-08-17 22:07:11 +03:00
2026-06-06 19:48:48 +02:00
2026-08-17 22:07:11 +03:00
2026-08-27 04:40:26 +02:00
2026-03-24 23:48:23 +01:00
2026-04-15 23:56:03 +02:00