<html><head><style>
body {
        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
        padding:1em;
        margin:auto;
        background:#fefefe;
}

h1, h2, h3, h4, h5, h6 {
        font-weight: bold;
}

h1 {
        color: #000000;
        font-size: 28pt;
}

h2 {
        border-bottom: 1px solid #CCCCCC;
        color: #000000;
        font-size: 24px;
}

h3 {
        font-size: 18px;
}

h4 {
        font-size: 16px;
}

h5 {
        font-size: 14px;
}

h6 {
        color: #777777;
        background-color: inherit;
        font-size: 14px;
}

hr {
        height: 0.2em;
        border: 0;
        color: #CCCCCC;
        background-color: #CCCCCC;
    display: inherit;
}

p, blockquote, ul, ol, dl, li, table, pre {
        margin: 15px 0;
}

a, a:visited {
        color: #4183C4;
        background-color: inherit;
        text-decoration: none;
}

#message {
        border-radius: 6px;
        border: 1px solid #ccc;
        display:block;
        width:100%;
        height:60px;
        margin:6px 0px;
}

button, #ws {
        font-size: 12 pt;
        padding: 4px 6px;
        border-radius: 5px;
        border: 1px solid #bbb;
        background-color: #eee;
}

code, pre, #ws, #message {
        font-family: Monaco;
        font-size: 10pt;
        border-radius: 3px;
        background-color: #F8F8F8;
        color: inherit;
}

code {
        border: 1px solid #EAEAEA;
        margin: 0 2px;
        padding: 0 5px;
}

pre {
        border: 1px solid #CCCCCC;
        overflow: auto;
        padding: 4px 8px;
}

pre > code {
        border: 0;
        margin: 0;
        padding: 0;
}

#ws { background-color: #f8f8f8; }


.bloop_markdown table {
border-collapse: collapse;  
font-family: Helvetica, arial, freesans, clean, sans-serif;  
color: rgb(51, 51, 51);  
font-size: 15px; line-height: 25px;
padding: 0; }

.bloop_markdown table tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0; }
     
.bloop_markdown table tr:nth-child(2n) {
background-color: #f8f8f8; }

.bloop_markdown table tr th {
font-weight: bold;
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }

.bloop_markdown table tr td {
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }

.bloop_markdown table tr th :first-child, table tr td :first-child {
margin-top: 0; }

.bloop_markdown table tr th :last-child, table tr td :last-child {
margin-bottom: 0; }

.bloop_markdown blockquote{
  border-left: 4px solid #dddddd;
  padding: 0 15px;
  color: #777777; }
  blockquote > :first-child {
    margin-top: 0; }
  blockquote > :last-child {
    margin-bottom: 0; }

code, pre, #ws, #message {
    word-break: normal;
    word-wrap: normal;
}

hr {
    display: inherit;
}

.bloop_markdown :first-child {
    -webkit-margin-before: 0;
}

code, pre, #ws, #message {
    font-family: Menlo, Consolas, Liberation Mono, Courier, monospace;
}


.send { color:#77bb77; }
.server { color:#7799bb; }
.error { color:#AA0000; }</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class="bloop_markdown"><p>I’ve update my gist to reflect that now: <a href="https://gist.github.com/DevAndArtist/dae76d4e3d4e49b1fab22ef7e86a87a9">https://gist.github.com/DevAndArtist/dae76d4e3d4e49b1fab22ef7e86a87a9</a></p>

<hr>

<h3 id="simplemulti-linestringliteralmodel">Simple ‘multi-line string literal’ model</h3>

<h4 id="corefeatures:">Core features:</h4>

<ol>
<li>Omitting of (most) backslashes for <code>"</code>.</li>
<li>Altering the string with implicit new line injection at the end of the line.</li>
<li>Sting interpolation (trivial in terms of consistency and functionality).</li>
</ol>

<h4 id="consequencesof1:">Consequences of #1:</h4>

<ul>
<li><p>To omit escaping the quote character, the delimiter characters for the <strong>multi-line string literal</strong> will be <em>tripled quotes</em> <code>"""</code>, also similar to other programming languages.</p></li>
<li><p>When a standard string literal contains at least 5 quotes, then the usage of a <strong>multi-line string literal</strong> can be shorter. </p></li>
</ul>

<pre><code class="swift">"&lt;a href=\"\(url)\" id=\"link\(i)\" class=\"link\"&gt;"    // With escapes
"""&lt;a href="\(url)" id="link\(i)" class="link"&gt;"""      // With tripled literals
</code></pre>

<h4 id="consequencesof2:">Consequences of #2:</h4>

<ul>
<li><p>To fully support this feature, we need to compromise the design for simplicity and intuitivity.</p>

<ul>
<li><p>This feature needs precision for leading and trailing whitespaces.</p></li>
<li><p>Alternatively one would need a way to disable new line injection to also support code formatting.</p></li>
</ul></li>
</ul>

<h4 id="twowaysofwritingamulti-linestringliteral:">Two ways of writing a multi-line string literal:</h4>

<ul>
<li><p>Single line version <code>"""abc"""</code> is trivial and already was shown above.</p></li>
<li><p>The multi-line version comes with a few compromises for simplicity of rules:</p></li>
</ul>

<pre><code class="swift">"""   // DS (delimiter start)
foo   // s0
foo   // s1
foo   // s2
"""   // DE (delimiter end)
</code></pre>

<ul>
<li>The string content is always written between the lines <code>DS</code> and <code>DE</code> (delimiter lines).</li>
</ul>

<p>That means that the following snippets are not allowed:</p>

<pre><code class="swift">// Banned option 1:
"""foo
   foo
   """  
    
// Banned option 2:  
"""foo
   foo"""  
    
// Banned option 3:
"""
foo
foo"""  
</code></pre>

<ul>
<li><p>To not to go the <strong>continuation quotes</strong> path, the left (or leading) precision is handled by the <em>closing delimiter</em> (<strong>1. compromise</strong>). The closing delimiter is also responsible for the indent algorithm, which will calculate the stripping prefix in line <code>DE</code> and apply stripping to lines <code>s0</code> to <code>sn</code>.</p></li>
<li><p>Right (or trailing) precision of each line from <code>s0</code> to <code>sn</code> (notice n equals 2 in the example above) is handled by a backslash character (<strong>2. compromise</strong>).</p></li>
<li><p>The right precision comes at a price of losing the implicit new line injection, however this was also a requested feature (<strong>3. compromise</strong>). That means that the backslash can serve two jobs simultaneously.</p></li>
<li><p>New line injection happens only on lines <code>s0</code> to <code>s(n - 1)</code> (<strong>4. and last compromise</strong> of the design). The last line <code>sn</code> (or <code>s2</code> above) does not inject a new line into the final string. This implies that in this line a backslash character handles only right precision, or one could say it’s reduced for one functionality.</p></li>
</ul>

<p>The following <strong>multi-line string literal</strong> </p>

<pre><code class="swift">print("""
  foo
  foo
  """)
</code></pre>

<p>will produce the string “foo\nfoo” and only print:</p>

<pre><code class="swift">foo
foo
</code></pre>

<hr>

<h4 id="important:">Important:</h4>

<p>Because whitespace is important to these examples, it is explicitly indicated: <code>·</code> is a space, <code>⇥</code> is a tab, and <code>↵</code> is a newline.</p>

<h4 id="leadingtrailingprecisionandindent1.and2.compromise:">Leading/trailing precision and indent (1. and 2. compromise):</h4>

<pre><code class="swift">// Nothing to strip in this example (no indent).
let str_1 = """↵  
foo↵
"""

// No right precision (no backslash), but presence of whitespace  
// characters will emit a warning.
let str_2 = """↵  
foo··↵
"""
</code></pre>

<p>Warning:</p>

<pre><code>warning: line # includes trailing whitespace characters in multi-line string literal without the precision `\` character at the end
 &nbsp;foo··↵
     ~~
 &nbsp;Fix-it: Insert "\n\" after the last space character (or only `\` if it's the `sn` line)
</code></pre>

<p>More examples:</p>

<pre><code class="swift">// Simmilar to `str_2`
let str_3 = """↵  
foo····↵
"""

// Line `DE` of the closing delimiter calculates the indent prefix  
// `··` and strips it from `s0` (left precision).
let str_4 = """↵  
··foo↵
··"""

// Line `DE` of the closing delimiter calculates the indent prefix  
// `····` and strips it from `s0` (left precision).
//
// No right precision (no backslash), but presence of whitespace  
// characters will emit a warning.
let str_5 = """↵  
····foo··↵
····"""

// Line `DE` of the closing delimiter calculates the indent prefix  
// `⇥ ⇥ ` and strips it from `s0` (left precision).
//
// Right precision is applied (backslash). In this case the literal
// contains only a single line of content, which happens to be   
// also the last line before `DE` -&gt; backslash only serves precision.
let str_6 = """↵  
⇥ ⇥ foo\↵
⇥ ⇥ """

// Line `DE` of the closing delimiter calculates the indent prefix  
// `·⇥ ·⇥ ` and strips it from `s0` (left precision).
//
// No right precision (no backslash), but presence of whitespace  
// characters will emit a warning.
let str_7 = """↵  
·⇥ ·⇥ foo··↵
·⇥ ·⇥ """

let string_1 = "foo"

str_1 == string_1   // =&gt; true
str_2 == string_1   // =&gt; false
str_3 == string_1   // =&gt; false
str_4 == string_1   // =&gt; true
str_5 == string_1   // =&gt; false
str_6 == string_1   // =&gt; true
str_7 == string_1   // =&gt; false
</code></pre>

<p>A wrong multi-line string literal, which compiles but emits a warning with a <code>fix-it</code>:</p>

<pre><code class="swift">let str_8 = """↵  
··foo↵
····"""

str_8 == string_1   // =&gt; true
</code></pre>

<p>Warning:</p>

<pre><code>warning: missing indentation in multi-line string literal
  ··foo
    ^  
  Fix-it: Insert "··"
</code></pre>

<ul>
<li><p>The stripping algorithm calculates the prefix indent from the closing delimiter line <code>DE</code> and tries to strip it in lines <code>s0</code> to <code>sn</code> if possible, otherwise each line, which could not be handled correctly will emit an individual warning and a <code>fix-it</code>.</p></li>
<li><p>To align precision of a <strong>multi-line string literal</strong> with the standard string literal, we have to check every content line for trailing whitespace characters. If we found any, but there is no <code>\</code> at the end, a warning will be emitted and a <code>fix-it</code> will be provided to add <code>\n\</code> after the last whitespace character for explicit precision, or a <code>\</code> if the warning happens in the last content line <code>sn</code>. This automatically forces the developer to either remove any unwanted trailing whitespace characters or be explicit about the trailing precision.</p></li>
</ul>

<p>An example which will raise such a warning:</p>

<pre><code class="swift">"""↵
foo··↵
"""
</code></pre>

<p>To fix the issue there are two options:</p>

<ul>
<li>Use the <code>fix-it</code>:&nbsp;</li>
</ul>

<pre><code class="swift">"""↵
foo··\↵
"""
</code></pre>

<ul>
<li>Remove the whitespace characters manually:&nbsp;</li>
</ul>

<pre><code class="swift">"""↵
foo↵
"""
</code></pre>

<h4 id="disablingnewlineinjection3.compromise:">Disabling new line injection (3. compromise):</h4>

<p>The examples we’ve used so far had only a single content line, so we couldn’t showcase this behavior yet. New lines are only injected into a multi-line string if it has at least two content lines.</p>

<pre><code class="swift">let str_9 = """↵  
····foo↵
····bar↵
····"""

let str_10 = """↵  
····foo↵
····bar↵
····baz↵
····"""

let string_2 = "foo\nbar"
let string_3 = "foo\nbar\nbaz"

str_9 == string_2  // =&gt; true
str_10 == string_3 // =&gt; true
</code></pre>

<p>To disable new line injection one would need to use the backslash for right precision.</p>

<pre><code class="swift">let str_11 = """↵  
····foo\↵
····bar↵
····"""

let str_12 = """↵  
····foo\↵
····bar\↵
····baz↵
····"""

str_11 == string_2    // =&gt; false
str_12 == string_3    // =&gt; false

str_11 == "foorbar"   // =&gt; true
str_12 == "foobarbaz" // =&gt; true
</code></pre>

<p>Remember that the last content line <code>sn</code> does not automatically inject a new line into the final string!</p>

<h4 id="newlineinjectionexceptforthelastline4.compromise:">New line injection except for the last line (4. compromise):</h4>

<p>The standard string literal like <code>"foo"</code> only contains its string content from the starting delimiter to the closing delimiter. The discussion on the mailing list suggests that the <strong>multi-line string literal</strong> should also go that route and not inject a new line for the last content line <code>sn</code>. <code>str_9</code> is a good example for that behavior. </p>

<p>Now if one would want a new line at the end of the string, there are a few options to achieve this:</p>

<pre><code class="swift">// Natural way:
let str_13 = """↵  
····foo↵
····bar↵
····↵
····"""

// Remember the last content line does not inject a `\n` character by default
// so there is no need for `\n\` here (but it's possible as well)!
let str_14 = """↵  
····foo↵
····bar\n↵
····"""

let string_4 = "foo\nbar\n"

str_13 == string_4 // =&gt; true
str_14 == string_4 // =&gt; true
</code></pre>

<p>At first glance the behavior in <code>str_13</code> seems odd and inconsistent, however it actually mimics perfectly the natural way of writing text paragraphs and is consistent to the standard string literal, which represents only its content between the delimiters.</p>

<pre><code>[here is a blank line]↵
text text text text text↵
text text text text text↵
[here is a blank line]
</code></pre>

<p>This is easily expressed with the literal model explained above:</p>

<pre><code class="swift">let myParagraph = """↵
····↵
····text text text text text↵
····text text text text text↵
····↵
····"""
</code></pre>

<p></p></div><div class="bloop_original_html"><style>body{font-family:Helvetica,Arial;font-size:13px}</style><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div> <br> <div id="bloop_sign_1492100296308311040" class="bloop_sign"><div style="font-family:helvetica,arial;font-size:13px">--&nbsp;<br>Adrian Zubarev<br>Sent with Airmail</div></div> <br><p class="airmail_on">Am 13. April 2017 um 16:39:05, Ricardo Parada (<a href="mailto:rparada@mac.com">rparada@mac.com</a>) schrieb:</p> <blockquote type="cite" class="clean_bq"><span><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div></div><div>



<title></title>


That would be good, I think because it would force everyone to be
precise in regards to trailing whitespace. &nbsp;And I don't see
that as a bad thing.
<div class=""><br class=""></div>
<div class="">
<div class=""><br class="">
<div>
<blockquote type="cite" class="">
<div class="">On Apr 13, 2017, at 9:54 AM, Adrian Zubarev via
swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="bloop_markdown" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);">
<p style="margin: 15px 0px; -webkit-margin-before: 0px;" class="">I
was really confused by your last reply. Actually I’ve got a better
idea for a fix-it. :-)</p>
<pre style="margin: 15px 0px; font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 1px solid rgb(204, 204, 204); overflow: auto; padding: 4px 8px; word-break: normal; word-wrap: normal;" class=""><code class="swift" style="font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 0px; margin: 0px; padding: 0px; word-break: normal; word-wrap: normal; -webkit-margin-before: 0px;">let str_8 = """↵   
····foo··········↵
····"""
</code></pre>
<pre style="margin: 15px 0px; font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 1px solid rgb(204, 204, 204); overflow: auto; padding: 4px 8px; word-break: normal; word-wrap: normal;" class=""><code style="font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 0px; margin: 0px; padding: 0px; word-break: normal; word-wrap: normal; -webkit-margin-before: 0px;" class="">warning: line # includes trailing space characters in multi-line string literal
  ····foo··········
         ~~~~~~~~~~   
  Fix-it: Insert "\n\" (after these space characters)
</code></pre>
<p style="margin: 15px 0px;" class="">The fix-it will
inset<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 1px solid rgb(234, 234, 234); margin: 0px 2px; padding: 0px 5px; word-break: normal; word-wrap: normal; -webkit-margin-before: 0px;" class="">\n\</code><span class="Apple-converted-space">&nbsp;</span>after all your space
characters, so the developer is kinda forced to strip them manually
to<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 1px solid rgb(234, 234, 234); margin: 0px 2px; padding: 0px 5px; word-break: normal; word-wrap: normal;" class="">····foo</code><span class="Apple-converted-space">&nbsp;</span>or let the IDE add<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 1px solid rgb(234, 234, 234); margin: 0px 2px; padding: 0px 5px; word-break: normal; word-wrap: normal;" class="">\n\</code><span class="Apple-converted-space">&nbsp;</span>if he really needs that
precision.</p>
<p style="margin: 15px 0px;" class="">That would work. :)</p>
<div style="margin: 15px 0px;" class=""><br class="webkit-block-placeholder"></div>
</div>
<div class="bloop_original_html" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);">
<div id="bloop_customfont" style="font-family: Helvetica, Arial; font-size: 13px; margin: 0px;" class=""><br class=""></div>
<br class="">
<div id="bloop_sign_1492091277767287040" class="bloop_sign">
<div style="font-family: helvetica, arial; font-size: 13px;" class="">--&nbsp;<br class="">
Adrian Zubarev<br class="">
Sent with Airmail</div>
</div>
<br class="">
<p class="airmail_on" style="margin: 15px 0px;">Am 13. April 2017
um 15:46:52, John Holdsworth (<a href="mailto:mac@johnholdsworth.com" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">mac@johnholdsworth.com</a>) schrieb:</p>
<blockquote type="cite" class="clean_bq" style="margin: 15px 0px;">
<div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div class=""></div>
<div class="">
<pre class="" style="margin: 15px 0px; font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 1px solid rgb(204, 204, 204); overflow: auto; padding: 4px 8px; word-break: normal; word-wrap: normal;"><span style="margin-top: 0px; margin-bottom: 0px;" class=""><code class="swift" style="font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 0px; margin: 0px; padding: 0px; word-break: normal; word-wrap: normal; -webkit-margin-before: 0px;">\n\</code></span></pre>
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class="">would work</span></div>
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="">
<blockquote type="cite" class="" style="margin: 15px 0px;">
<div class="" style="margin-top: 0px;"><span style="margin-top: 0px; margin-bottom: 0px;" class="">On 13 Apr 2017, at
14:44, John Holdsworth &lt;<a href="mailto:mac@johnholdsworth.com" class="" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;">mac@johnholdsworth.com</a>&gt;
wrote:</span></div>
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class="Apple-interchange-newline"></span>
<div class="" style="margin-bottom: 0px;">
<div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<span style="margin-top: 0px; margin-bottom: 0px;" class="">I’ve
never understood how you mean "explicit backslash". backslash has
specific roles</span>
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class="">and at the moment it is assigned to meaning standard
escapes or "don’t include this next</span></div>
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class="">newline in the literal". I can’t see how it could be
reassigned to mean “include whitespace”</span></div>
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class="">without loosing the option to concatenate
lines.</span></div>
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class="">fix-its are beyond my pay grade so that’ll have to wait
until Apple looks at the implementation!</span></div>
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="">
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span>
<div class="">
<blockquote type="cite" class="" style="margin: 15px 0px;">
<div class="" style="margin-top: 0px;"><span style="margin-top: 0px; margin-bottom: 0px;" class="">On 13 Apr 2017, at
14:32, Adrian Zubarev &lt;<a href="mailto:adrian.zubarev@devandartist.com" class="" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;">adrian.zubarev@devandartist.com</a>&gt;
wrote:</span></div>
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class="Apple-interchange-newline"></span>
<div class="" style="margin-bottom: 0px;">
<p class="" style="margin: 15px 0px; font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">A
warning that will popup when you included any trailing spaces in a
‘content line’ without the explicit backslash could also provide
a<span class="Apple-converted-space">&nbsp;</span><code class="" style="font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 1px solid rgb(234, 234, 234); margin: 0px 2px; padding: 0px 5px; word-break: normal; word-wrap: normal; -webkit-margin-before: 0px;">fix-it</code><span class="Apple-converted-space">&nbsp;</span>to
the user to remove these spaces. However if you can emit that
warning and calculate the spaces to remove, than the compiler
should be able to swallow these characters by default
right?</span></p>
<br class="Apple-interchange-newline"></div>
</blockquote>
</div>
<br class=""></div>
</div>
</div>
</div>
</blockquote>
</div>
<br class=""></div>
</div>
</blockquote>
</div>
<div class="bloop_markdown" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);">
<div style="margin: 15px 0px; -webkit-margin-before: 0px;" class=""><br class="webkit-block-placeholder"></div>
</div>
<span style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254); float: none; display: inline !important;" class="">_______________________________________________</span><br style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);" class="">
<span style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254); float: none; display: inline !important;" class="">swift-evolution mailing list</span><br style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);" class="">
<a href="mailto:swift-evolution@swift.org" style="color: rgb(65, 131, 196); background-color: rgb(254, 254, 254); text-decoration: none; font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">swift-evolution@swift.org</a><br style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);" class="">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" style="color: rgb(65, 131, 196); background-color: rgb(254, 254, 254); text-decoration: none; font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);" class=""></div>
</blockquote>
</div>
<br class=""></div>
</div>


</div></div></span></blockquote></div><div class="bloop_markdown"><p></p></div></body></html>