Review Request 111598: Fix late static binding support in kdev-php

Heinz Wiesinger pprkut at liwjatan.at
Fri Jul 19 13:00:52 UTC 2013


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/111598/
-----------------------------------------------------------

Review request for KDevelop.


Description
-------

Fix the support for PHP 5.3's late static binding so that the 'static' keyword in

return static::property;

or

return static()

maps to the class it was declared in.

This is not 100% correct behavior, but since static is evaluated at runtime we can not determine at parsing what class type it really is.
However, it's always gonna be either the class it was declared in or one that extends the class it was declared in, so using that class as type should
provide better information than for example mixed.


This addresses bug 278085.
    http://bugs.kde.org/show_bug.cgi?id=278085


Diffs
-----

  duchain/builders/typebuilder.cpp 229c5c978b2bc77a2135a2b62c6ebf468e6d7b41 
  duchain/expressionvisitor.cpp 35f375a8f6f4a8e195b954548e01516c222f949b 
  duchain/helper.cpp 5628e10156d5b82d0beefcf8e65cda1f543a19eb 
  duchain/tests/expressionparser.h 9b3a561d2f2802545b3dbff4c127ae64441b9ef0 
  duchain/tests/expressionparser.cpp 9e76b0c7454fbf0f801816e006b9b273c43d141f 
  parser/php.g 34b4b671a3cec05b075adfc946dc3da110657b26 

Diff: http://git.reviewboard.kde.org/r/111598/diff/


Testing
-------

Unit test and example code.


Thanks,

Heinz Wiesinger

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20130719/204c7a17/attachment.html>


More information about the KDevelop-devel mailing list