swiftlang / swiftlang/swift-java

Code in conditional compilation branches is not exported

Open
#538 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature:jextract
Dominant language
Swift
Stars
1.2k
Forks
123
Avg merge
1d 7h
Merged PRs (30d)
16

Description

Reproduction

This is likely a known issue, but I didn't find mentions in the issues yet. Basically, from the following code:

#if FOO
public func first() {}
#else
public func second() {}
#endif

public func third() {}

only the third function is exported by jextract as of 5764bc2a1b706056121109dc0ab14fd3d771cbc5

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the conditional-compilation example with jextract at the referenced commit, checking why only third is exported. Trace the export path for Swift declarations in #if and #else branches, then verify that the applicable branch functions are exported while unrelated branches remain excluded.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, swift
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.