Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 318975 - PHP model is not updated backward
Summary: PHP model is not updated backward
Status: CLOSED INVALID
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: PDT (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: PHP Core CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-07-06 04:52 EDT by Seva Lapsha CLA
Modified: 2020-05-14 11:18 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.