Summary: | Parser produces errors when keywords are used as function names | ||
---|---|---|---|
Product: | [Applications] kdevelop | Reporter: | Marcus Harrison <marcus> |
Component: | Language Support: PHP | Assignee: | kdevelop-bugs-null |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | 5.2.3 | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://commits.kde.org/kdev-php/8c5e258640e8c70889ba1b3f796d3143240a7cda | Version Fixed In: | 5.3.0 |
Description
Marcus Harrison
2018-06-13 07:37:25 UTC
Git commit 8c5e258640e8c70889ba1b3f796d3143240a7cda by Heinz Wiesinger. Committed on 13/06/2018 at 19:10. Pushed by wiesinger into branch 'master'. Fix using reserved type names in identifiers. Summary: Remove special tokens for base type names (PHP itself doesn't have them either in their AST). Unfortunately, keeping them, while cleaner, is also a lot more complicated and would leave us with double the amount of FIRST/FIRST conflicts in the grammar. (Mostly when NamespacedIdentifiers would conflict with base types in typehints. Think 'String\Stringhandler $foo' vs 'string $bar'. Removing the tokens essentially immediately resolves the bug, with the remaining work just being error handling and a bit of cleanup. Related: bug 392759 FIXED-IN: 5.3.0 Reviewers: mwolff Reviewed By: mwolff Subscribers: mwolff, kdevelop-devel Tags: #kdevelop Differential Revision: https://phabricator.kde.org/D13313 M +0 -5 completion/context.cpp M +64 -2 duchain/builders/declarationbuilder.cpp M +3 -0 duchain/builders/declarationbuilder.h M +4 -4 duchain/builders/usebuilder.cpp M +5 -4 duchain/expressionvisitor.cpp M +71 -32 duchain/helper.cpp M +3 -0 duchain/helper.h M +193 -1 duchain/tests/duchain.cpp M +6 -0 duchain/tests/duchain.h M +7 -19 parser/php.g M +0 -10 parser/phplexer.cpp M +1 -1 parser/test/lexertest.cpp https://commits.kde.org/kdev-php/8c5e258640e8c70889ba1b3f796d3143240a7cda |