Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

DeclarationCollisionCE.java 982B

12345678910111213141516171819202122232425262728293031
  1. /** @testcase expect CE for declaration collision between subaspects instead of domination order */
  2. public class DeclarationCollisionCE {
  3. public static void main (String[] args) {
  4. C s = new C();
  5. System.err.println("title: " + s.title());
  6. }
  7. }
  8. class C {}
  9. // bug: dominates clause prevents collision error
  10. abstract aspect AA { declare precedence: AA, B;
  11. // same result if this line is uncommented
  12. //public String C.title() { return "[AA] C.title()"; }
  13. }
  14. aspect A extends AA { // implicitly dominates AA
  15. // dominates AA's declaration, overriding Super.title
  16. public String C.title() { // CE 20 collision with B declaration
  17. return "[A] C.title()" ;
  18. }
  19. }
  20. aspect B extends AA { // explicitly dominated by AA ?? --> and hence by A??
  21. // B fails to dominate AA's declaration, overriding Super.title
  22. public String C.title() { // CE 27 collision with A declaration
  23. return "[B] C.title()" ;
  24. }
  25. }