swiftlang / swiftlang/swift-java
Make not imported methods java->swift unavailable
Open
Nobody has claimed this yet.
feature:wrap-java
- Dominant language
- Swift
- Stars
- 1.2k
- Forks
- 123
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 16
Description
Missing methods from javakit imports can be sometimes confusing when someone tries to "just use" the library emitted.
We should instead still emit methods, but make them unavailable:
warning: Unable to translate 'org.apache.commons.csv.CSVParser' method 'getRecords': Java class 'org.apache.commons.csv.CSVRecord' has not been translated into Swift
->
@available(*, unavailable, message: "Java class 'org.apache.commons.csv.CSVRecord' has not been translated into Swift")
etc
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how JavaKit imports are handled and where methods from untranslated Java classes are emitted. Verify the existing warning path and determine how the generated Swift declaration should express the unavailable message. Done means methods such as CSVParser.getRecords remain emitted but clearly fail as unavailable when their Java types were not translated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, swift
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100