[swift-evolution] Changing __LINE__ to #line (was Re: [Review] SE-0022: Referencing the Objective-C selector of a method)

Jordan Rose jordan_rose at apple.com
Fri Jan 22 13:42:46 CST 2016


> On Jan 21, 2016, at 21:44, Joe Groff via swift-evolution <swift-evolution at swift.org> wrote:
> 
> 
>> On Jan 21, 2016, at 9:25 PM, Erica Sadun via swift-evolution <swift-evolution at swift.org> wrote:
>> 
>> Okay, you know this was coming: let's Groff this thing.
>> 
>> How about #(line) where you can decouple the specific compiler implementation bits from the keyword bits without hardcoding support, enabling implementation of, for example, #(runcible) for future Swift compiler substitution logic.
> 
> If you're going to bring me into it…I would prefer coalescing all these __FILE__, __LINE__, etc. things into one #sourceLocation structure. If you want one source-location-related thing, you tend to want the others, and you also want to be able to forward the source location info easily through the depths of your assertion/logging framework.

The downside is that this becomes Yet Another Compiler-Known Type and Yet Another Thing In the Standard Library. All the current fields are string literals and integer literals.

Jordan


More information about the swift-evolution mailing list