Split from the class E fix (#61). splitNixPath keeps a URL entry whole by shape: a colon followed by // stays inside its entry. Upstream's NIX_PATH parsing (EvalSettings::parseNixPath with isPseudoUrl) instead checks the segment against a scheme allowlist (http, https, file, channel, git, s3, ssh) and also keeps a slash-less channel: entry whole. The divergences:
- a channel:nixos-24.11 entry splits here and stays whole upstream
- an unknown-scheme foo://x entry stays whole here and splits upstream
Neither form is consumable today (findFile does not fetch URL or channel entries), so this is parity only. Align the rule with isPseudoUrl when NIX_PATH URL entries become fetchable.
Split from the class E fix (#61). splitNixPath keeps a URL entry whole by shape: a colon followed by // stays inside its entry. Upstream's NIX_PATH parsing (EvalSettings::parseNixPath with isPseudoUrl) instead checks the segment against a scheme allowlist (http, https, file, channel, git, s3, ssh) and also keeps a slash-less channel: entry whole. The divergences:
Neither form is consumable today (findFile does not fetch URL or channel entries), so this is parity only. Align the rule with isPseudoUrl when NIX_PATH URL entries become fetchable.