<p dir="auto">Code:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="interface Foo {
}

interface Bar implements Foo {
}"><pre class="notranslate"><span class="pl-k">interface</span> <span class="pl-smi">Foo</span> <span class="pl-kos">{</span>
<span class="pl-kos">}</span>

<span class="pl-k">interface</span> <span class="pl-smi">Bar</span> <span class="pl-s1">implements</span> <span class="pl-smi">Foo</span> <span class="pl-kos">{</span>
<span class="pl-kos">}</span></pre></div>
<p dir="auto">Expected (from old compiler):</p>
<blockquote>
<p dir="auto">(4,15): Interface declaration cannot have 'implements' clause.</p>
</blockquote>
<p dir="auto">Actual (current):</p>
<blockquote>
<p dir="auto">(4,15): '{' expected.<br>
(4,26): ';' expected.<br>
(4,30): ';' expected.</p>
</blockquote>
<p dir="auto">Now with the dedicated <code class="notranslate">Path</code> type (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="114170852" data-permission-text="Title is private" data-url="https://github.com/microsoft/TypeScript/issues/5462" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/TypeScript/pull/5462/hovercard" href="https://github.com/microsoft/TypeScript/pull/5462">#5462</a>), we should be able to minimize the number of normalization in tsserver by changing all the file name strings to the <code class="notranslate">Path</code> type. We also have many duplicated file name normalization in <code class="notranslate">program.ts</code> and other places.</p>