Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 318975

Summary: PHP model is not updated backward
Product: z_Archived Reporter: Seva Lapsha <seva.lapsha>
Component: PDTAssignee: PHP Core <php.core-inbox>
Status: CLOSED INVALID QA Contact:
Severity: major    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Seva Lapsha CLA 2010-07-06 04:52:27 EDT
As you know, JDT model has bi-directional references of units. Meaning, if a unit has been changed, it automatically triggers changes on the referenced ones.

Example:

public class A extends B {
  int foo() {return 0;}
}

public abstract class B {
  abstract int foo();
}

If I add another abstract method to B, it will automatically trigger building of A and a compilation error will automatically appear on A.

This is useful, if you use Problem explorer or Tree Views to observer errors.

In PHP prior to DLTK model, it behaved the same.

After implementing DLTK model, this precious functionality was irresponsibly dropped. Now the model is plain and silly. The referencing elements aren't rebuilt ever - neither automatically, nor on open.

The only way is either to rebuild the whole project, or to go over all the references, make fake changes and save (and imagine what is needed if the class hierarchy is complex).
Comment 1 Zhongwei Zhao CLA 2010-07-12 23:23:03 EDT
Hi

class B:
abstract class B {
	public abstract function foo();
}

class A:
class A extends B {
}

There is no error at all,even I make fake changes and save,do I need other special setting to get the errors?
Comment 2 Seva Lapsha CLA 2010-07-13 03:13:55 EDT
(In reply to comment #1)
> Hi
> 
> class B:
> abstract class B {
>     public abstract function foo();
> }
> 
> class A:
> class A extends B {
> }
> 
> There is no error at all,even I make fake changes and save,do I need other
> special setting to get the errors?

I was talking about Java compilation errors in JDT. In PHP there should no any  compilation errors. it affects semantic analysis - if you have 2 files which have dependent classes, semantic validation of "undefined method (slow check)" is not getting updated when one of the classes is changed.
Comment 3 Seva Lapsha CLA 2010-07-13 06:52:12 EDT
Not a PDT bug.