Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Use Case 4: Find overloaded methods with multiple parameters that share a single type.

Covariant Arrays

Wiki Markup
In Java and C#, array subtyping is covariant, meaning that type B\[\] is considered a subtype of A\[\] whenever B is a subtype of A. However, this relation can cause runtime exceptions. Consider the following Java code where Banana and Apple are subtypes of Fruit:

Code Block
    Banana[] bananas = new Banana[5];
    Fruit[] fruit = bananas;
    fruits[0] = new Apple(); // ArrayStore Exception 
    peelBanana(bananas[0]); // Apple????

Wiki Markup
The assignment to the first element of the variable fruit on line 3 will cause an ArrayStore exception. Although statically, the variable fruit has type Fruit\[\], its runtime type is Banana\[\] and thus we cannot use it to store an Apple.

Use Case 5: Find occurences of covariant array uses in assignment, method calls, constructor instantiations and return statements.

...

  • doesn't detect local inner classes (local & anonymous). Only inner classes (doesn't differentiate): class in all classes
  • no access to local variable declared in methods
  • no support for generics on declaration.
  • no support for constructors (considered as method init) 
  • no AST structural matching. (e.g loops ...)
  • no variable binding/unification
  • set operators (union, intersection)
  • support for read/write of fields references

Wiki Markup
*{+}SOUL \[authors replying on Tuesday\]+*
SOUL

  •  

Jquery

Wiki Markup
*+.QL \[emailed Oege\]+*

  •  

Wiki Markup
*{+}Jackpot \[emailed Jan\]+*

...