Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Jul 19, 2025. It is now read-only.

Commit 3765013

Browse files
committed
Merge pull request #71 from codeclimate/will/php-inf-nan
PHP Parser: handle INF/NaN nodes
2 parents b618b82 + f281005 commit 3765013

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

‎spec/cc/engine/analyzers/php/main_spec.rb‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,31 @@
5656
expect(result).to match "\"type\":\"issue\""
5757
end
5858

59+
it "handles INF & NAN constants" do
60+
create_source_file("foo.php", <<-EOPHP)
61+
<?php
62+
function f1($name) {
63+
// the php-parser lib turns this into INF, but writing INF directly gets emitted differently
64+
if (empty($name)) {
65+
return 646e444;
66+
} else {
67+
return 0;
68+
}
69+
}
70+
71+
function f2($name) {
72+
if (empty($name)) {
73+
return 646e444;
74+
} else {
75+
return 0;
76+
}
77+
}
78+
EOPHP
79+
80+
result = run_engine(engine_conf).strip
81+
expect(result).to match "\"type\":\"issue\""
82+
end
83+
5984
it "skips unparsable files" do
6085
create_source_file("foo.php", <<-EOPHP)
6186
<?php blorb &; "fee

‎vendor/php-parser/lib/PhpParser/Serializer/JSON.php‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,11 @@ protected function _serialize($node) {
2929
}
3030

3131
foreach ($node as $name => $subNode) {
32-
if (is_string($subNode)) {
32+
if (INF === $subNode) {
33+
$doc[$name] = "_PHP:CONST:INF";
34+
} elseif (NaN === $subNode) {
35+
$doc[$name] = "_PHP:CONST:NaN";
36+
} elseif (is_string($subNode)) {
3337
$doc[$name] = utf8_encode($subNode);
3438
} elseif (is_int($subNode)) {
3539
$doc[$name] = $subNode;

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /