<p dir="auto">Since Julia is struct oriented, this could be a nice way make the language more ergonomic for methods<br>
<a href="https://en.wikipedia.org/wiki/Uniform_Function_Call_Syntax" rel="nofollow">https://en.wikipedia.org/wiki/Uniform_Function_Call_Syntax</a></p>
<p dir="auto">Assume</p>
<div class="highlight highlight-source-julia notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="struct Blah
    ...
end

foo(b::Blah,i::Int32)
      ...
end

b = Blah(..)"><pre class="notranslate"><span class="pl-k">struct</span> Blah
    <span class="pl-k">...</span>
<span class="pl-k">end</span>

<span class="pl-c1">foo</span>(b<span class="pl-k">::</span><span class="pl-c1">Blah</span>,i<span class="pl-k">::</span><span class="pl-c1">Int32</span>)
      <span class="pl-k">...</span>
<span class="pl-k">end</span>

b <span class="pl-k">=</span> <span class="pl-c1">Blah</span>(<span class="pl-k">..</span>)</pre></div>
<p dir="auto">In addition to this syntax</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="foo(b,123)"><pre class="notranslate"><code class="notranslate">foo(b,123)
</code></pre></div>
<p dir="auto">this would also be acceptable if a function signature existed with Blah as first parameter type</p>
<div class="highlight highlight-source-julia notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="b.foo(123)"><pre class="notranslate">b<span class="pl-k">.</span><span class="pl-c1">foo</span>(<span class="pl-c1">123</span>)</pre></div>
<p dir="auto">Edited: fixed function name to be idiomatic</p>
<p dir="auto">After the change of <code class="notranslate">Char</code> representation it is possible to get overlong characters from a <code class="notranslate">String</code>, e.g.:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="julia&gt; c = String([0xc0,0xa0])[1]
'\xc0\xa0': [overlong] Unicode U+0020 (category Zs: Separator, space)"><pre class="notranslate"><code class="notranslate">julia&gt; c = String([0xc0,0xa0])[1]
'\xc0\xa0': [overlong] Unicode U+0020 (category Zs: Separator, space)
</code></pre></div>
<p dir="auto">However, if you try to write this as a character literal you get:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="julia&gt; '\xc0\xa0'
' ': ASCII/Unicode U+0020 (category Zs: Separator, space)"><pre class="notranslate"><code class="notranslate">julia&gt; '\xc0\xa0'
' ': ASCII/Unicode U+0020 (category Zs: Separator, space)
</code></pre></div>
<p dir="auto">so they are converted to their not-overlong equivalents.</p>
<p dir="auto">I know it is a corner case, but I suppose that this behavior is not intentional.<br>
So the question is is this a behavior we want (or we want character literal to be parsed exactly as written)?</p>