Skip to content

Commit

Permalink
fix(haxe) fix new keyword false positives (#3993)
Browse files Browse the repository at this point in the history
  • Loading branch information
ninjamuffin99 committed Mar 21, 2024
1 parent c813674 commit 5fe035c
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 5 deletions.
3 changes: 3 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ Core Grammars:
- fix(types) fix interface LanguageDetail > keywords [Patrick Chiu]
- enh(java) add `goto` to be recognized as a keyword in Java [Alvin Joy][]
- enh(bash) add keyword `sudo` [Alvin Joy][]
- fix(haxe) captures `new` keyword without capturing it within variables/class names [Cameron Taylor][]
- fix(go) fix go number literals to accept `_` separators, add hex p exponents [Lisa Ugray][]
- enh(markdown) add entity support [David Schach][] [TaraLei][]
- enh(css) add `justify-items` and `justify-self` attributes [Vasily Polovnyov][]
Expand Down Expand Up @@ -75,12 +76,14 @@ Themes:
[Alvin Joy]: https://github.com/alvinsjoy
[Lisa Ugray]: https://github.com/lugray
[TaraLei]: https://github.com/TaraLei
[Cameron Taylor]: https://github.com/ninjamuffin99
[Vasily Polovnyov]: https://github.com/vast
[Arman Uguray]: https://github.com/armansito
[Rúnar Bjarnason]: https://github.com/runarorama
[Carl Räfting]: https://github.com/carlrafting



## Version 11.9.0

CAVEATS / POTENTIALLY BREAKING CHANGES
Expand Down
2 changes: 1 addition & 1 deletion src/languages/haxe.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ export default function(hljs) {
},
{
className: 'type', // instantiation
begin: /new */,
beginKeywords: 'new',
end: /\W/,
excludeBegin: true,
excludeEnd: true
Expand Down
14 changes: 10 additions & 4 deletions test/markup/haxe/default.expect.txt
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@

<span class="hljs-title class_"><span class="hljs-keyword">class</span> <span class="hljs-title">Main</span> <span class="hljs-keyword"><span class="hljs-keyword">extends</span> <span class="hljs-type">BaseClass</span></span> <span class="hljs-keyword"><span class="hljs-keyword">implements</span> <span class="hljs-type">SomeFunctionality</span></span> </span>{
<span class="hljs-keyword">var</span> callback:<span class="hljs-type">Void-&gt;Void </span>= <span class="hljs-literal">null</span>;
<span class="hljs-keyword">var</span> myArray:<span class="hljs-type">Array</span>&lt;<span class="hljs-keyword">Float</span>&gt; = <span class="hljs-keyword">new</span> <span class="hljs-type">Array</span>&lt;<span class="hljs-keyword">Float</span>&gt;();
<span class="hljs-keyword">var</span> myArray:<span class="hljs-type">Array</span>&lt;<span class="hljs-keyword">Float</span>&gt; = <span class="hljs-keyword">new</span><span class="hljs-type"></span> <span class="hljs-keyword">Array</span>&lt;<span class="hljs-keyword">Float</span>&gt;();
<span class="hljs-keyword">var</span> arr = [<span class="hljs-number">4</span>,<span class="hljs-number">8</span>,<span class="hljs-number">0</span>,<span class="hljs-number">3</span>,<span class="hljs-number">9</span>,<span class="hljs-number">1</span>,<span class="hljs-number">5</span>,<span class="hljs-number">2</span>,<span class="hljs-number">6</span>,<span class="hljs-number">7</span>];

<span class="hljs-keyword">public</span> <span class="hljs-title function_"><span class="hljs-keyword">function</span> <span class="hljs-title">new</span></span>(x) {
Expand Down Expand Up @@ -120,8 +120,8 @@
done = <span class="hljs-literal">true</span>;
}

<span class="hljs-keyword">var</span> H:<span class="hljs-type">Int </span>= <span class="hljs-keyword">cast</span> <span class="hljs-keyword">new</span> <span class="hljs-type">MyAbstract</span>(<span class="hljs-number">42</span>);
<span class="hljs-keyword">var</span> h:<span class="hljs-type">Int </span>= <span class="hljs-keyword">cast</span>(<span class="hljs-keyword">new</span> <span class="hljs-type">MyAbstract</span>(<span class="hljs-number">31</span>), <span class="hljs-keyword">Int</span>);
<span class="hljs-keyword">var</span> H:<span class="hljs-type">Int </span>= <span class="hljs-keyword">cast</span> <span class="hljs-keyword">new</span><span class="hljs-type"></span> MyAbstract(<span class="hljs-number">42</span>);
<span class="hljs-keyword">var</span> h:<span class="hljs-type">Int </span>= <span class="hljs-keyword">cast</span>(<span class="hljs-keyword">new</span><span class="hljs-type"></span> MyAbstract(<span class="hljs-number">31</span>), <span class="hljs-keyword">Int</span>);

<span class="hljs-keyword">try</span> {
<span class="hljs-keyword">throw</span> <span class="hljs-string">&quot;error&quot;</span>;
Expand All @@ -130,7 +130,7 @@
<span class="hljs-built_in">trace</span>(err);
}

<span class="hljs-keyword">var</span> map = <span class="hljs-keyword">new</span> <span class="hljs-type">haxe</span>.ds.IntMap&lt;<span class="hljs-keyword">String</span>&gt;();
<span class="hljs-keyword">var</span> map = <span class="hljs-keyword">new</span><span class="hljs-type"></span> haxe.ds.IntMap&lt;<span class="hljs-keyword">String</span>&gt;();
<span class="hljs-keyword">var</span> f = map.<span class="hljs-keyword">set</span>.bind(<span class="hljs-literal">_</span>, <span class="hljs-string">&quot;12&quot;</span>);
}

Expand Down Expand Up @@ -175,4 +175,10 @@
<span class="hljs-keyword">if</span>( lo &lt; j ) quicksort( lo, j );
<span class="hljs-keyword">if</span>( i &lt; hi ) quicksort( i, hi );
}

<span class="hljs-title function_"><span class="hljs-keyword">function</span> <span class="hljs-title">generateNewArray</span></span>(newArray:<span class="hljs-type">Array</span>):<span class="hljs-type">Void </span>{
<span class="hljs-keyword">var</span> i = newArray;
<span class="hljs-keyword">var</span> array = <span class="hljs-keyword">new</span><span class="hljs-type"></span> <span class="hljs-keyword">Array</span>();
}

}
6 changes: 6 additions & 0 deletions test/markup/haxe/default.txt
Original file line number Diff line number Diff line change
Expand Up @@ -175,4 +175,10 @@ class Main extends BaseClass implements SomeFunctionality {
if( lo < j ) quicksort( lo, j );
if( i < hi ) quicksort( i, hi );
}

function generateNewArray(newArray:Array):Void {
var i = newArray;
var array = new Array();
}

}

0 comments on commit 5fe035c

Please sign in to comment.