Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 3.16 breaks xml reports #4252

Closed
ndench opened this issue Sep 28, 2020 · 10 comments
Closed

Version 3.16 breaks xml reports #4252

ndench opened this issue Sep 28, 2020 · 10 comments

Comments

@ndench
Copy link
Contributor

ndench commented Sep 28, 2020

Running Psalm at v3.16 with the following command produces an xml error:

"vendor/bin/psalm" --config="build/phpqa.xml" --show-info=true --use-ini-defaults --report="build/psalm.xml" --find-dead-code
Uncaught Exception: [Array2XML] Illegal character in tag name. tag:  in /srv/www/app/current/vendor/openlss/lib-array2xml/LSS/Array2XML.php:154                                                                                                                                            
Stack trace:                                                                                                                                                                                                                                                                               
#0 /srv/www/app/current/vendor/openlss/lib-array2xml/LSS/Array2XML.php(161): LSS\Array2XML::convert('item', Array)                                                                                                                                                                         
#1 /srv/www/app/current/vendor/openlss/lib-array2xml/LSS/Array2XML.php(87): LSS\Array2XML::convert('report', Array)                                                                                                                                                                        
#2 /srv/www/app/current/vendor/vimeo/psalm/src/Psalm/Report/XmlReport.php(23): LSS\Array2XML::createXML('report', Array)                                                                                                                                                                   
#3 /srv/www/app/current/vendor/vimeo/psalm/src/Psalm/IssueBuffer.php(748): Psalm\Report\XmlReport->create()                                                                                                                                                                                
#4 /srv/www/app/current/vendor/vimeo/psalm/src/Psalm/IssueBuffer.php(565): Psalm\IssueBuffer::getOutput(Array, Object(Psalm\Report\ReportOptions), Array)                                                                                                                                  
#5 /srv/www/app/current/vendor/vimeo/psalm/src/psalm.php(816): Psalm\IssueBuffer::finish(Object(Psalm\Internal\Analyzer\ProjectAnalyzer), true, 1601253982.4063, false, Array)                                                                                                             
#6 /srv/www/app/current/vendor/vimeo/psalm/psalm(2): require_once('/srv/www/app/cu...')                                                                                                                                                                                                    
#7 {main}                                                                                                                                                                                                                                                                                  
(Psalm 3.16@d03e5ef057d6adc656c0ff7e166c50b73b4f48f3 crashed due to an uncaught Throwable)  

Downgrading to v3.15 allows psalm to run successfully without a problem. I'm unsure how to debug this much further, happy to provide more information if required though.

PHP: 7.4.9
Ubuntu: 16.04
Symfony: 4.4.14

@psalm-github-bot
Copy link

Hey @ndench, can you reproduce the issue on https://psalm.dev ?

@muglug
Copy link
Collaborator

muglug commented Sep 29, 2020

Have you tried latest master?

@pascalheidmann
Copy link
Contributor

pascalheidmann commented Sep 29, 2020

Having the same error in an project, and could reproduce it in different docker containers (PHP 7.1 up to 7.4 tested).
As that project is running on a legacy version of Symfony we have to use https://github.com/psalm/phar instead of full featured psalm which makes debugging way harder... ;)

edit @muglug updating to newest build found quite a few errors but still crashed on xml generation.

@ndench
Copy link
Contributor Author

ndench commented Oct 1, 2020

Thanks @pascalheidmann for testing the newest build, I also just tried installing dev-master and it still gives the xml error.

@muglug
Copy link
Collaborator

muglug commented Oct 7, 2020

@ndench can you narrow down to a problematic commit?

@ndench
Copy link
Contributor Author

ndench commented Oct 8, 2020

@muglug I installed psalm with --prefer-source in my project and ran a bisect between version 3.16 and 3.15. The resulting problematic commit is c6c6a4d.

Is there a way I can dump the output before it's run through the Array2XML converter? That way we can see the differences in output that was introduced by this commit?

@muglug
Copy link
Collaborator

muglug commented Oct 8, 2020

@ndench you could use the regular console output between the two commits

@ndench
Copy link
Contributor Author

ndench commented Oct 8, 2020

Good idea, not sure it will help, but here's the output:

Psalm v3.15
INFO: PropertyNotSetInConstructor - DataFixtures/Faker/Provider/CommentProvider.php:9:7 - Property Hyra\DataFixtures\Faker\Provider\CommentProvider::$unique is not defined in constructor of Hyra\DataFixtures\Faker\Provider\CommentProvider and in any methods called in the constructor (see https://psalm.dev/074)
class �[30;47mCommentProvider�[0m extends BaseProvider


INFO: PropertyNotSetInConstructor - DataFixtures/Faker/Provider/ConstructionDealProvider.php:18:7 - Property Hyra\DataFixtures\Faker\Provider\ConstructionDealProvider::$unique is not defined in constructor of Hyra\DataFixtures\Faker\Provider\ConstructionDealProvider and in any methods called in the constructor (see https://psalm.dev/074)
class �[30;47mConstructionDealProvider�[0m extends BaseProvider


INFO: PropertyNotSetInConstructor - DataFixtures/Faker/Provider/DateTimeProvider.php:10:7 - Property Hyra\DataFixtures\Faker\Provider\DateTimeProvider::$unique is not defined in constructor of Hyra\DataFixtures\Faker\Provider\DateTimeProvider and in any methods called in the constructor (see https://psalm.dev/074)
class �[30;47mDateTimeProvider�[0m extends BaseDateTimeProvider


INFO: PropertyNotSetInConstructor - DataFixtures/Faker/Provider/JsonDecodeProvider.php:9:13 - Property Hyra\DataFixtures\Faker\Provider\JsonDecodeProvider::$unique is not defined in constructor of Hyra\DataFixtures\Faker\Provider\JsonDecodeProvider and in any methods called in the constructor (see https://psalm.dev/074)
final class �[30;47mJsonDecodeProvider�[0m extends BaseProvider


INFO: PropertyNotSetInConstructor - DataFixtures/Faker/Provider/PlayProvider.php:9:13 - Property Hyra\DataFixtures\Faker\Provider\PlayProvider::$unique is not defined in constructor of Hyra\DataFixtures\Faker\Provider\PlayProvider and in any methods called in the constructor (see https://psalm.dev/074)
final class �[30;47mPlayProvider�[0m extends BaseProvider


INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$clientId is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
class �[30;47mProcoreProvider�[0m extends AbstractProvider


INFO: PropertyNotSetInConstructor - src/Negotiate/Model/ValidatedAmendment.php:14:17 - Property Hyra\Negotiate\Model\ValidatedAmendment::$number is not defined in constructor of Hyra\Negotiate\Model\ValidatedAmendment and in any private or final methods called in the constructor (see https://psalm.dev/074)
    private int �[30;47m$number�[0m;


INFO: PropertyNotSetInConstructor - src/Negotiate/Validator/Constraints/ReplyTypeValidForAmendmentValidator.php:14:7 - Property Hyra\Negotiate\Validator\Constraints\ReplyTypeValidForAmendmentValidator::$context is not defined in constructor of Hyra\Negotiate\Validator\Constraints\ReplyTypeValidForAmendmentValidator and in any private or final methods called in the constructor (see https://psalm.dev/074)
class �[30;47mReplyTypeValidForAmendmentValidator�[0m extends ConstraintValidator


INFO: PropertyNotSetInConstructor - src/Playbook/Model/PlayUpdate.php:14:19 - Property Hyra\Playbook\Model\PlayUpdate::$properties is not defined in constructor of Hyra\Playbook\Model\PlayUpdate and in any private or final methods called in the constructor (see https://psalm.dev/074)
    private array �[30;47m$properties�[0m;


INFO: PropertyNotSetInConstructor - src/Preview/Variations/User/NoAccountPasswordReset.php:43:25 - Property _srv_www_app_current_src_Preview_Variations_User_NoAccountPasswordReset_php_43_1074::$deletedAt is not defined in constructor of _srv_www_app_current_src_Preview_Variations_User_NoAccountPasswordReset_php_43_1074 and in any methods called in the constructor (see https://psalm.dev/074)
        $fakeUser = new �[30;47mclass($email) extends AbstractPerson {
            public function __construct(string $email)
            {
                $this->email = $email;
            }

            public function canBeNotified(): bool
            {
                return false;
            }

            public function applyAuditGrouping(AuditGrouping $auditGrouping): void
            {
                $auditGrouping->add(['email' => $this->email]);
            }
        }�[0m;


------------------------------
No errors found!
------------------------------
10 other issues found.
------------------------------

Checks took 28.36 seconds and used 1,746.899MB of memory
Psalm was able to infer types for 99.3696% of the codebase
Psalm v3.16
INFO: PropertyNotSetInConstructor - DataFixtures/Faker/Provider/CommentProvider.php:9:7 - Property Hyra\DataFixtures\Faker\Provider\CommentProvider::$unique is not defined in constructor of Hyra\DataFixtures\Faker\Provider\CommentProvider and in any methods called in the constructor (see https://psalm.dev/074)
class �[30;47mCommentProvider�[0m extends BaseProvider


INFO: PropertyNotSetInConstructor - DataFixtures/Faker/Provider/ConstructionDealProvider.php:18:7 - Property Hyra\DataFixtures\Faker\Provider\ConstructionDealProvider::$unique is not defined in constructor of Hyra\DataFixtures\Faker\Provider\ConstructionDealProvider and in any methods called in the constructor (see https://psalm.dev/074)
class �[30;47mConstructionDealProvider�[0m extends BaseProvider


INFO: PropertyNotSetInConstructor - DataFixtures/Faker/Provider/DateTimeProvider.php:10:7 - Property Hyra\DataFixtures\Faker\Provider\DateTimeProvider::$unique is not defined in constructor of Hyra\DataFixtures\Faker\Provider\DateTimeProvider and in any methods called in the constructor (see https://psalm.dev/074)
class �[30;47mDateTimeProvider�[0m extends BaseDateTimeProvider


INFO: PropertyNotSetInConstructor - DataFixtures/Faker/Provider/JsonDecodeProvider.php:9:13 - Property Hyra\DataFixtures\Faker\Provider\JsonDecodeProvider::$unique is not defined in constructor of Hyra\DataFixtures\Faker\Provider\JsonDecodeProvider and in any methods called in the constructor (see https://psalm.dev/074)
final class �[30;47mJsonDecodeProvider�[0m extends BaseProvider


INFO: PropertyNotSetInConstructor - DataFixtures/Faker/Provider/PlayProvider.php:9:13 - Property Hyra\DataFixtures\Faker\Provider\PlayProvider::$unique is not defined in constructor of Hyra\DataFixtures\Faker\Provider\PlayProvider and in any methods called in the constructor (see https://psalm.dev/074)
final class �[30;47mPlayProvider�[0m extends BaseProvider


INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$clientId is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
class �[30;47mProcoreProvider�[0m extends AbstractProvider


INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$clientSecret is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
class �[30;47mProcoreProvider�[0m extends AbstractProvider


INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$redirectUri is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
class �[30;47mProcoreProvider�[0m extends AbstractProvider


INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$state is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
class �[30;47mProcoreProvider�[0m extends AbstractProvider


INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$grantFactory is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
class �[30;47mProcoreProvider�[0m extends AbstractProvider


INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$requestFactory is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
class �[30;47mProcoreProvider�[0m extends AbstractProvider


INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$httpClient is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
class �[30;47mProcoreProvider�[0m extends AbstractProvider


INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$optionProvider is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
class �[30;47mProcoreProvider�[0m extends AbstractProvider


INFO: PropertyNotSetInConstructor - src/Negotiate/Model/ValidatedAmendment.php:14:17 - Property Hyra\Negotiate\Model\ValidatedAmendment::$number is not defined in constructor of Hyra\Negotiate\Model\ValidatedAmendment and in any private or final methods called in the constructor (see https://psalm.dev/074)
    private int �[30;47m$number�[0m;


INFO: PropertyNotSetInConstructor - src/Negotiate/Validator/Constraints/ReplyTypeValidForAmendmentValidator.php:14:7 - Property Hyra\Negotiate\Validator\Constraints\ReplyTypeValidForAmendmentValidator::$context is not defined in constructor of Hyra\Negotiate\Validator\Constraints\ReplyTypeValidForAmendmentValidator and in any private or final methods called in the constructor (see https://psalm.dev/074)
class �[30;47mReplyTypeValidForAmendmentValidator�[0m extends ConstraintValidator


INFO: PropertyNotSetInConstructor - src/Playbook/Model/PlayUpdate.php:14:19 - Property Hyra\Playbook\Model\PlayUpdate::$properties is not defined in constructor of Hyra\Playbook\Model\PlayUpdate and in any private or final methods called in the constructor (see https://psalm.dev/074)
    private array �[30;47m$properties�[0m;


INFO: PropertyNotSetInConstructor - src/Preview/Variations/User/NoAccountPasswordReset.php:43:25 - Property _srv_www_app_current_src_Preview_Variations_User_NoAccountPasswordReset_php_43_1074::$deletedAt is not defined in constructor of _srv_www_app_current_src_Preview_Variations_User_NoAccountPasswordReset_php_43_1074 and in any methods called in the constructor (see https://psalm.dev/074)
        $fakeUser = new �[30;47mclass($email) extends AbstractPerson {
            public function __construct(string $email)
            {
                $this->email = $email;
            }

            public function canBeNotified(): bool
            {
                return false;
            }

            public function applyAuditGrouping(AuditGrouping $auditGrouping): void
            {
                $auditGrouping->add(['email' => $this->email]);
            }
        }�[0m;


------------------------------
No errors found!
------------------------------
17 other issues found.
------------------------------

Checks took 42.46 seconds and used 1,227.189MB of memory
Psalm was able to infer types for 99.3696% of the codebase
Diff
25a26,53
> INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$clientSecret is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
> class �[30;47mProcoreProvider�[0m extends AbstractProvider
> 
> 
> INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$redirectUri is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
> class �[30;47mProcoreProvider�[0m extends AbstractProvider
> 
> 
> INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$state is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
> class �[30;47mProcoreProvider�[0m extends AbstractProvider
> 
> 
> INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$grantFactory is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
> class �[30;47mProcoreProvider�[0m extends AbstractProvider
> 
> 
> INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$requestFactory is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
> class �[30;47mProcoreProvider�[0m extends AbstractProvider
> 
> 
> INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$httpClient is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
> class �[30;47mProcoreProvider�[0m extends AbstractProvider
> 
> 
> INFO: PropertyNotSetInConstructor - src/Integrations/Procore/OAuth/ProcoreProvider.php:16:7 - Property Hyra\Integrations\Procore\OAuth\ProcoreProvider::$optionProvider is not defined in constructor of Hyra\Integrations\Procore\OAuth\ProcoreProvider and in any private or final methods called in the constructor (see https://psalm.dev/074)
> class �[30;47mProcoreProvider�[0m extends AbstractProvider
> 
> 
60c88
< 10 other issues found.
---
> 17 other issues found.
63c91
< Checks took 28.36 seconds and used 1,746.899MB of memory
---
> Checks took 42.46 seconds and used 1,227.189MB of memory

I then changed our psalm config to suppress PropertyNotSetInConstructor entirely, such that we would get 0 issue raised. The xml report generates successfully at this point (probably because it's empty). I then added a type error into the code and ran it again, which caused the xml conversion error. Here's the console output with a single issue raised:

Psalm v3.15
�[0;31mERROR�[0m: UndefinedMethod - src/Construction/Controller/Api/Review/CancelController.php:28:18 - Method Hyra\Construction\Entity\Review::foobar does not exist (see https://psalm.dev/022)
        $review->�[97;41mfoobar�[0m();


------------------------------
�[0;31m1 errors�[0m found
------------------------------

Checks took 47.66 seconds and used 1,221.033MB of memory
Psalm was able to infer types for 99.3695% of the codebase
Psalm v3.16
�[0;31mERROR�[0m: UndefinedMethod - src/Construction/Controller/Api/Review/CancelController.php:28:18 - Method Hyra\Construction\Entity\Review::foobar does not exist (see https://psalm.dev/022)
        $review->�[97;41mfoobar�[0m();


------------------------------
�[0;31m1 errors�[0m found
------------------------------

Checks took 37.02 seconds and used 1,748.340MB of memory
Psalm was able to infer types for 99.3695% of the codebase
Diff
10c10
< Checks took 47.66 seconds and used 1,221.033MB of memory
---
> Checks took 37.02 seconds and used 1,748.340MB of memory

Which confirms as I suspected, that the diff in the original run is because v3.16 picks up on a few extra PropertyNotSetInConstructor issues. Unsure if this output is helpful or not. Is there anything else I can do that will help you to track down the issue?

@muglug
Copy link
Collaborator

muglug commented Oct 8, 2020

I'd try the same above with mono output. That's a very strange character...

@ndench
Copy link
Contributor Author

ndench commented Oct 9, 2020

Good idea, I think the strange characters are to put colors in the terminal.

It's interesting that checkstyle.xml and junit.xml reports still work, and that there is absolutely no difference between any of the output styles running on 3.15 and 3.16.

3.15 console monochrome
ERROR: UndefinedMethod - src/Construction/Controller/Api/Review/CancelController.php:28:18 - Method Hyra\Construction\Entity\Review::foobar does not exist (see https://psalm.dev/022)
        $review->foobar();

------------------------------
1 errors found
------------------------------

Checks took 29.30 seconds and used 1,746.479MB of memory
Psalm was able to infer types for 99.3700% of the codebase
3.16 console monochrome
ERROR: UndefinedMethod - src/Construction/Controller/Api/Review/CancelController.php:28:18 - Method Hyra\Construction\Entity\Review::foobar does not exist (see https://psalm.dev/022)
        $review->foobar();

------------------------------
1 errors found
------------------------------

Checks took 26.32 seconds and used 1,750.184MB of memory
Psalm was able to infer types for 99.3700% of the codebase
3.15 compact monochrome
FILE: src/Construction/Controller/Api/Review/CancelController.php

+----------+------+-----------------+---------------------------------------------------------------+
| SEVERITY | LINE | ISSUE           | DESCRIPTION                                                   |
+----------+------+-----------------+---------------------------------------------------------------+
| ERROR    | 28   | UndefinedMethod | Method Hyra\Construction\Entity\Review::foobar does not exist |
+----------+------+-----------------+---------------------------------------------------------------+
3.16 compact monochrome
FILE: src/Construction/Controller/Api/Review/CancelController.php

+----------+------+-----------------+---------------------------------------------------------------+
| SEVERITY | LINE | ISSUE           | DESCRIPTION                                                   |
+----------+------+-----------------+---------------------------------------------------------------+
| ERROR    | 28   | UndefinedMethod | Method Hyra\Construction\Entity\Review::foobar does not exist |
+----------+------+-----------------+---------------------------------------------------------------+
3.15 text
/srv/www/app/current/src/Construction/Controller/Api/Review/CancelController.php:28:18:error - UndefinedMethod: Method Hyra\Construction\Entity\Review::foobar does not exist
3.16 text
/srv/www/app/current/src/Construction/Controller/Api/Review/CancelController.php:28:18:error - UndefinedMethod: Method Hyra\Construction\Entity\Review::foobar does not exist
3.15 json
[
  {
    "severity": "error",
    "line_from": 28,
    "line_to": 28,
    "type": "UndefinedMethod",
    "message": "Method Hyra\\Construction\\Entity\\Review::foobar does not exist",
    "file_name": "src\/Construction\/Controller\/Api\/Review\/CancelController.php",
    "file_path": "\/srv\/www\/app\/current\/src\/Construction\/Controller\/Api\/Review\/CancelController.php",
    "snippet": "        $review->foobar();",
    "selected_text": "foobar",
    "from": 765,
    "to": 771,
    "snippet_from": 748,
    "snippet_to": 774,
    "column_from": 18,
    "column_to": 24,
    "error_level": 6,
    "shortcode": 22,
    "link": "https:\/\/psalm.dev\/022",
    "taint_trace": null
  }
]
3.16 json
[
  {
    "severity": "error",
    "line_from": 28,
    "line_to": 28,
    "type": "UndefinedMethod",
    "message": "Method Hyra\\Construction\\Entity\\Review::foobar does not exist",
    "file_name": "src\/Construction\/Controller\/Api\/Review\/CancelController.php",
    "file_path": "\/srv\/www\/app\/current\/src\/Construction\/Controller\/Api\/Review\/CancelController.php",
    "snippet": "        $review->foobar();",
    "selected_text": "foobar",
    "from": 765,
    "to": 771,
    "snippet_from": 748,
    "snippet_to": 774,
    "column_from": 18,
    "column_to": 24,
    "error_level": 6,
    "shortcode": 22,
    "link": "https:\/\/psalm.dev\/022",
    "taint_trace": null
  }
]
3.15 checkstyle
<?xml version="1.0" encoding="UTF-8"?>
<checkstyle>
    <file name="src/Construction/Controller/Api/Review/CancelController.php">
        <error line="28" column="18" severity="error" message="UndefinedMethod: Method Hyra\Construction\Entity\Review::foobar does not exist"/>
    </file>
</checkstyle>
3.16 checkstyle
<?xml version="1.0" encoding="UTF-8"?>
<checkstyle>
    <file name="src/Construction/Controller/Api/Review/CancelController.php">
        <error line="28" column="18" severity="error" message="UndefinedMethod: Method Hyra\Construction\Entity\Review::foobar does not exist"/>
    </file>
</checkstyle>
3.15 junit
<?xml version="1.0" encoding="UTF-8"?>
<testsuites failures="1" errors="0" name="psalm" tests="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/junit-team/junit5/r5.5.1/platform-tests/src/test/resources/jenkins-junit.xsd">
    <testsuite name="src/Construction/Controller/Api/Review/CancelController.php" failures="1" errors="0" tests="1">
        <testcase name="src/Construction/Controller/Api/Review/CancelController.php:28" classname="UndefinedMethod" assertions="1">
            <failure type="UndefinedMethod">message: Method Hyra\Construction\Entity\Review::foobar does not exist
                type: UndefinedMethod
                snippet: $review-&gt;foobar();
                selected_text: foobar
                line: 28
                column_from: 18
                column_to: 24
            </failure>
        </testcase>
    </testsuite>
</testsuites>
3.16 junit
<?xml version="1.0" encoding="UTF-8"?>
<testsuites failures="1" errors="0" name="psalm" tests="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/junit-team/junit5/r5.5.1/platform-tests/src/test/resources/jenkins-junit.xsd">
    <testsuite name="src/Construction/Controller/Api/Review/CancelController.php" failures="1" errors="0" tests="1">
        <testcase name="src/Construction/Controller/Api/Review/CancelController.php:28" classname="UndefinedMethod" assertions="1">
            <failure type="UndefinedMethod">message: Method Hyra\Construction\Entity\Review::foobar does not exist
                type: UndefinedMethod
                snippet: $review-&gt;foobar();
                selected_text: foobar
                line: 28
                column_from: 18
                column_to: 24
            </failure>
        </testcase>
    </testsuite>
</testsuites>

@muglug muglug closed this as completed in b08d70f Oct 12, 2020
muglug added a commit that referenced this issue Oct 12, 2020
danog pushed a commit to danog/psalm that referenced this issue Jan 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants