...is the title of a proposal I wrote today. The full proposal is available at:
<https://github.com/brentdax/swift-evolution/blob/bdce720e9d0f7015f8741716035198c41fa117a0/proposals/NNNN-fix-expressible-by-string-interpolation.md>
But the tl;dr is that, if you write this:
"Hello, \(name)!"
Instead of generating this:
.init(stringInterpolation:
.init(stringInterpolationSegment: .init(stringLiteral: "Hello,
")),
.init(stringInterpolationSegment: name),
.init(stringInterpolationSegment: .init(stringLiteral: "!"))
)
We should generate this:
.init(stringInterpolation:
.init(stringLiteral: "Hello, "),
.init(stringInterpolationSegment: name),
.init(stringLiteral: "!")
)
I actually have an implementation of it, available here:
<https://github.com/apple/swift/compare/master...brentdax:new-interpolation>
But I'm literally messing with the constraint generator the very first time I
modify the compiler, so I'm assuming it'll need some serious code review before
it actually gets pulled in. (All the regular tests *do* at least pass.)
Despite the word "fix" in the title, this really only does half the job; I
think we also need to tackle string formatting, at least by adding a mechanism,
if not by settling on exact APIs. The proposal includes a sketch of my thoughts
about that as well.
Comments extremely welcome.
--
Brent Royal-Gordon
Architechies
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution