1493 Commits

Author SHA1 Message Date
Krzysztof Zabłocki afb0782ecb Merge pull request #1453 from NachoSoto/fix/trailing-comma-generic-crash
Fix crash on trailing-comma generic arguments
2026-02-11 12:16:30 +01:00
NachoSoto 786f40feb9 Fix crash on trailing-comma generic arguments
Root cause:
- A trailing comma inside a generic argument list can produce an empty generic argument, for example:
  `OrderedDictionary<String, (status: Result<Int, Error>, messages: [String]),>`
- During composition, `ParserResultsComposed.resolveType` force-unwrapped
  `typeName.name.split(separator: " ").first!` when generic requirements were present.
- If the generic parameter was empty, this force unwrap crashed with
  `Unexpectedly found nil while unwrapping an Optional value`.

What changed:
- Hardened `ParserResultsComposed.resolveType` to skip generic-requirement lookup
  when the lookup token is empty (no force unwrap).
- Filtered out empty/whitespace generic arguments in SwiftSyntax parsing
  (`GenericType+SwiftSyntax`).
- Filtered out empty/whitespace generic arguments in string-based type inference
  (`String+TypeInference`).
- Added a regression spec in `ComposerSpec` that covers a constrained generic type
  containing a trailing comma in a generic argument list and asserts only two valid
  generic parameters are produced.

Repro script:
```bash
cat > /tmp/Repro.swift <<'SWIFT'
struct Example<A: RandomAccessCollection, B: RandomAccessCollection>
  where A.Element == String,
  B.Element == String
{
  let asyncTaskData: OrderedDictionary<
    String,
    (status: Result<Int, Error>, messages: [String]),
  >
}
SWIFT

cat > /tmp/inspect.stencil <<'STENCIL'
{% for type in types.structs %}
{% for variable in type.variables %}
{% if variable.name == "asyncTaskData" and variable.typeName.generic %}
GENERIC_COUNT={{ variable.typeName.generic.typeParameters.count }}
{% for p in variable.typeName.generic.typeParameters %}
PARAM={{ p.typeName.name }}
{% endfor %}
{% endif %}
{% endfor %}
{% endfor %}
STENCIL

# Before this fix: crashes with Trace/BPT trap.
# After this fix:
#   GENERIC_COUNT=2
#   PARAM=String
#   PARAM=(status: Result<Int, Error>, messages: [String])
sourcery --disableCache --sources /tmp/Repro.swift --templates /tmp/inspect.stencil --output /tmp/out.txt
cat /tmp/out.txt
```
2026-02-09 12:34:09 -08:00
Krzysztof Zabłocki d75cddb80d Merge pull request #1451 from escfrya/skip-hidden-files-fix
fix ignore hidden files
2026-02-03 14:51:24 +01:00
Igor Skovorodkin 0872d4111c fix: ignore hidden files on parse 2026-02-03 11:12:55 +03:00
Krzysztof Zabłocki 232b9c37b5 Merge pull request #1450 from musiienko/patch-1
Update documentation link to GH Pages
2026-01-16 19:16:23 +01:00
Maksym Musiienko f74dec31c1 Update documentation link to GH Pages
the old one returns 404 now
2026-01-16 11:03:13 +01:00
Krzysztof Zabłocki 71b6b50946 Merge pull request #1446 from krzysztofzablocki/eh/fix-typealias-cycle
Break out of typealias cycles
2025-11-17 14:31:44 +01:00
Eric Horacek 48f428b39b Address review feedback 2025-11-08 15:11:58 -08:00
Eric Horacek f0970d3da4 Break out of typealias cycles
When there’s a typealias cycle, we currently loop infinitely and eventually consume all system memory and crash.
2025-11-08 14:58:47 -08:00
Krzysztof Zabłocki b703710aef Merge pull request #1440 from krzysztofzablocki/release/2.3.0
Prepare Release 2.3.0
2.3.0
2025-09-18 12:20:10 +02:00
Lars 0c202883d3 Update Docs 2025-09-17 15:43:31 +02:00
Lars 1d6280c287 rake release:prepare 2.3.0 2025-09-17 15:14:57 +02:00
Krzysztof Zabłocki cea6e6fb1b Merge pull request #1439 from bo2themax/master
swift-6.2-RELEASE
2025-09-16 14:53:41 +02:00
Lars 23759ef6e8 swift-6.2-RELEASE 2025-09-16 13:50:35 +02:00
Krzysztof Zabłocki 44a02f6fe5 Merge pull request #1436 from Cyberbeni/arm64-docker 2025-09-04 21:57:49 +02:00
Benedek Kozma 783fadec58 Don't update packages during docker build 2025-09-03 23:27:01 +02:00
Benedek Kozma 81f93f2ff5 Remove extra space 2025-09-03 23:16:38 +02:00
Benedek Kozma 5427a3720a Add more missing repo URLs 2025-09-03 23:15:38 +02:00
Benedek Kozma 5add4b628f Add missing repository url to image name 2025-09-03 23:00:08 +02:00
Benedek Kozma a92b591088 use correct env var for image name 2025-09-03 22:45:15 +02:00
Benedek Kozma 8ab3f602b9 fix digest name 2025-09-03 22:43:12 +02:00
Benedek Kozma e4a4e741a7 Try building docker image without QEMU 2025-09-03 22:36:29 +02:00
Benedek Kozma c12f82b13e Also build docker image for ARM64 2025-09-03 21:07:21 +02:00
Krzysztof Zabłocki 9d21938451 Merge pull request #1434 from bo2themax/master
Magic fix with SwiftBuild on Xcode 26 Beta 6
2025-08-25 14:20:46 +02:00
Lars 4d2ce5976a Magic fix with SwiftBuild on Xcode 26 Beta 6
Switched to the commit from the main branch to release/6.2
2025-08-22 10:28:35 +02:00
Krzysztof Zabłocki fa30119a85 Merge pull request #1428 from bo2themax/master
potential fix compiling with Xcode 26
2025-08-05 12:17:43 +02:00
Lars b0754d08c5 fix compiling with Xcode 26 2025-07-28 17:48:48 +02:00
Krzysztof Zabłocki 234cc32d1e Merge pull request #1420 from musiienko/update-automockable-any-generation
Fix AutoMockable Generation for a couple of cases with existential any
2025-06-26 16:06:58 +02:00
Krzysztof Zabłocki d5a605b1e7 Merge pull request #1421 from robertjpayne/bugfix/ejs-watch
Fix deadlock when using EJS templates in watch mode
2025-06-04 19:33:09 +02:00
Krzysztof Zabłocki 89233f860a Merge pull request #1422 from markmax12/fix-pruned-file-link-warning
Fix warning of trying to link pruned file
2025-06-04 12:18:37 +02:00
Krzysztof Zabłocki 084f7b7421 Merge pull request #1423 from markmax12/fix-pbxgroup-traversal
Fix PBXGroup duplication while linking
2025-06-04 12:18:26 +02:00
Max ad26125a46 fix traversal 2025-06-02 22:25:22 +03:00
Max 5dd7009db9 initial commit 2025-06-02 22:09:58 +03:00
Robert Payne 587c6cf4d6 Use static VM's for EJS templates
Creates and re-use a static JSVirtualMachine when rendering EJS templates so watch mode doesn't break when old JSContext deallocate and deadlock the main thread.
2025-05-26 22:11:02 +12:00
Maksym Musiienko 58625e46c4 Add 'AnyProtocolWithOptionals' to AutoMockable for Linux 2025-05-25 20:13:04 +02:00
Maksym Musiienko 677ae3f257 Update expected and generated files 2025-05-25 17:31:30 +02:00
Maksym Musiienko 645c16e9bf Update AutoMockable.stencil 2025-05-25 17:31:29 +02:00
Maksym Musiienko ee823f0160 Add a new AutoMockable protocol with a couple of cases that are currently failing 2025-05-25 17:31:26 +02:00
Krzysztof Zabłocki 68b7bd044d Merge pull request #1419 from swiftty/feature/watch-resource 2025-05-20 17:17:46 +02:00
swiftty bcd00412b3 Use withExtendedLifetime 2025-05-20 15:26:06 +09:00
r3econ 689b65fa8d Merge pull request #1416 from krzysztofzablocki/feature/update-upload-artifact-action
Update upload-artifact action to version 4
2.2.7
2025-05-14 13:07:39 +02:00
Rafal Sroka 41345513b7 Update actions/upload-artifact action to version 4 2025-05-14 08:23:59 +02:00
r3econ 224b98d5da Update Docs 2025-05-14 06:02:14 +00:00
r3econ 3defbc53fe Merge pull request #1414 from krzysztofzablocki/release/2.2.7
Release 2.2.7 🚧
2025-05-14 07:57:52 +02:00
Rafal Sroka 11f1ddf3aa docs: update metadata for 2.2.7 release 2025-05-13 22:44:31 +02:00
Rafal Sroka f1b3fa1361 Add changes generated by rake generate_internal_boilerplate_code 2025-05-13 22:43:20 +02:00
Rafal Sroka c6fde60f5a Revert df3936e292 (#1413) to allow for releasing 2025-05-13 22:42:00 +02:00
Rafal Sroka 84dec90177 Update changelog 2025-05-13 22:19:59 +02:00
Krzysztof Zabłocki df3936e292 Merge pull request #1413 from krzysztofzablocki:feature/keep-alive
chore: keep alive properly
2025-05-08 13:54:00 +02:00
Krzysztof Zabłocki 012f281490 chore: keep alive properly 2025-05-08 13:48:42 +02:00