...
Use Case 5: Find occurences of covariant array uses in assignment, method calls, constructor instantiations and return statements.
Improved Exception Handling
Use Case 6:
Evaluation
| Final Array & Anonymous Class | Generic Constructors | Capture Conversion Idiom | Overloaded Methods | Covariant Arrays | Improved Exception Handling |
---|---|---|---|---|---|---|
JTL |
|
| X |
| X |
|
BBQ | X | X | X | ? | X |
|
SOUL |
|
|
|
|
|
|
JQuery | X | X | X | ? | X |
|
.QL |
|
|
|
| X |
|
Jackpot |
|
|
|
|
|
|
PMD |
|
|
|
| X |
|
Covariant Arrays
- no support for statement level information
JTL
- no working Eclipse plugin found. (authors emailed)
- argument list pattern (sec 2.2) public _ (_, String, *) : any public method that accept a String as its second argument and returns any type
- quantifiers
- anonymous class
- pattern naming (integral := byte | short | int | long)
- variable binding
- no structural matching of AST (deemed difficult because uses class files) (so can't look match on a loop for example or find all local variables in method)
Wiki Markup read\[F\]/write\[F\] predicates to indicate whether a method reads/write to a field. Nice feature: write\[_\] tells whether method writes to a field at all. How do we do this recursively? All methods within the method are not writing to fields...
...
- http://jquery.cs.ubc.ca/documentation/toc.html
- http://jquery.cs.ubc.ca/documentation/appendix2.html
- variable binding through predicates
Wiki Markup support for read & mutation of fields (write) \[writes(?B,?F,?L) means: "Block ?B writes to field ?F at location ?L"\]
- no structural (statement) matching (e.g pattern match on a loop or body of a method)
- no generics support
Wiki Markup |
---|
*+.QL \[authors emailed\]+* |
- only members level info + method calls (no statement info stored in DB)
Wiki Markup |
---|
*{+}Jackpot \[emailed Jan from Netbeans\]+* |
...
Overview
Content Tools
ThemeBuilder