[DCOM-97] phpParser.php and 'use' keyword in anonymous functions Created: 13/Feb/12  Updated: 30/Mar/12  Resolved: 30/Mar/12

Status: Closed
Project: Doctrine Common
Component/s: Annotations
Affects Version/s: 2.1.4
Fix Version/s: 2.2

Type: Bug Priority: Major
Reporter: Thomas Lecarpentier Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None
Environment:

php 5.3, Symfony2, linux



 Description   

When i use the keyword 'use' in anonymous function (like describe in page http://php.net/manual/en/functions.anonymous.php)

Exemple :
...

/**
*

  • Extract event from all events for this day
  • @param int $year
  • @param int $month
  • @param int $day
  • @return ArrayCollection
    */
    public function getEventsForDate($year, $month, $day)
    Unknown macro: { $extractEvents = null; // check if date of item is inside day given $extractEvents = $this->events->filter( function ($item) use ($year, $month, $day) { $leftDate = new \DateTime($year.'-'.$month.'-'.$day.' 00:00'); $rigthDate = new \DateTime($year.'-'.$month.'-'.$day.' +1 day 00:00'); return ( ( $leftDate <= $item->getDateStart() ) && ( $item->getDateStart() < $rigthDate ) ); } ); return $extractEvents; }

...

The phpParser generate error

[ErrorException]
Notice: Undefined offset: -1 in /home/ent/project/Symfony/vendor/doctrine-common/lib/Doctrine/Common/Annotations/PhpParser.php line 117

It try to parse 'use ($year, $month, $day)' as Class



 Comments   
Comment by Fabio B. Silva [ 25/Mar/12 ]

I think this is fixed on the php parser rewrite. (2.2)

Comment by Fabio B. Silva [ 25/Mar/12 ]

Coverage added : https://github.com/doctrine/common/commit/7ec510dbb2279f76a00ecf3f911298879c6ba1a1

I think this could be closed..

Comment by Fabio B. Silva [ 30/Mar/12 ]

Fixed on php parser rewrite. (2.2)

Generated at Fri Apr 18 23:37:45 UTC 2014 using JIRA 6.2.3#6260-sha1:63ef1d6dac3f4f4d7db4c1effd405ba38ccdc558.