Commit 9ff6286
committed
SwiftExtract: extract AccessLevelMode into SwiftExtractConfigurationShared
Reviewer asked: "why does swift-java need to map at all, can it not use
this exact enum?" — yes, after introducing a small shared target.
`SwiftJavaConfigurationShared` is intentionally lightweight (stdlib +
Foundation only): it must be symlinked into each plugin's source tree
because SwiftPM plugins can't have target dependencies. Pulling
SwiftSyntax in via `SwiftExtract` would balloon plugin builds.
Instead, introduce a sibling `SwiftExtractConfigurationShared` target
that holds nothing but the small `AccessLevelMode` enum. Both
`SwiftExtract` and `SwiftJavaConfigurationShared` depend on it; the
plugin symlink discipline (`Plugins/PluginsShared/SwiftExtractConfigurationShared`)
mirrors the existing `SwiftJavaConfigurationShared` symlink.
Effects:
- `AccessLevelMode` is the single, shared enum. swift-java's
`Configuration` uses it directly via `@_exported import`, retiring
`JExtractMinimumAccessLevelMode` and the four-line mapping switch
in `Configuration+SwiftExtract.swift` (now an identity passthrough).
- `SwiftJavaConfigurationShared/Configuration.swift` guards the import
with `#if canImport(SwiftExtractConfigurationShared)` so plugin
builds (which inline the file alongside `AccessLevelMode.swift` via
symlink rather than as a separate module) still compile.
- `AccessLevelMode` gains `@nonexhaustive` (SE-0487, gated with
`#if compiler(>=6.2)`) per reviewer request, so adding cases in
the future is non-breaking. `Codable` conformance is added so it
can replace `JExtractMinimumAccessLevelMode` in the on-disk
`Configuration` JSON without changing the wire format.
- The CLI's `@Option var minimumInputAccessLevelMode` and the
`ExpressibleByArgument` conformance switch over to
`AccessLevelMode` accordingly.1 parent 792a9ae commit 9ff6286
8 files changed
Lines changed: 75 additions & 52 deletions
File tree
- Sources
- JExtractSwiftLib
- SwiftExtract
- SwiftJavaTool/Commands
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
46 | 51 | | |
47 | 52 | | |
48 | 53 | | |
| |||
276 | 281 | | |
277 | 282 | | |
278 | 283 | | |
279 | | - | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
280 | 292 | | |
281 | 293 | | |
282 | 294 | | |
| |||
351 | 363 | | |
352 | 364 | | |
353 | 365 | | |
| 366 | + | |
354 | 367 | | |
355 | 368 | | |
356 | 369 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
22 | | - | |
23 | | - | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
24 | 26 | | |
25 | 27 | | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
| 28 | + | |
31 | 29 | | |
32 | 30 | | |
33 | 31 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
| 15 | + | |
25 | 16 | | |
26 | 17 | | |
27 | 18 | | |
| |||
33 | 24 | | |
34 | 25 | | |
35 | 26 | | |
36 | | - | |
37 | | - | |
38 | | - | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
39 | 35 | | |
40 | 36 | | |
41 | 37 | | |
| |||
Lines changed: 34 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
17 | 24 | | |
18 | 25 | | |
19 | 26 | | |
| |||
62 | 69 | | |
63 | 70 | | |
64 | 71 | | |
65 | | - | |
66 | | - | |
| 72 | + | |
| 73 | + | |
67 | 74 | | |
68 | 75 | | |
69 | 76 | | |
| |||
Lines changed: 0 additions & 26 deletions
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
69 | | - | |
| 69 | + | |
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| |||
222 | 222 | | |
223 | 223 | | |
224 | 224 | | |
225 | | - | |
| 225 | + | |
226 | 226 | | |
227 | 227 | | |
0 commit comments