Commit Graph

5399 Commits

Author SHA1 Message Date
Julian Dolby 6c217a7ee4 Merge branch 'master' of https://github.com/wala/WALA 2017-06-24 18:13:22 -04:00
Julian Dolby f900eab5e2 fix classpath bug 2017-06-24 18:11:43 -04:00
Julian Dolby d774fdeb36 allow access from Scala wrappers 2017-06-24 18:51:27 +02:00
Julian Dolby 5e0703a4de code for SOAP/IMDEA talk 2017-06-24 18:46:57 +02:00
Julian Dolby a31dd02ab2 native support 2017-06-24 18:45:54 +02:00
Manu Sridharan 469734f61e Various fixes to nodejs project config files
* Fix pom.xml to be like other projects
* Check for existence of nodejs download before re-downloading
* Fix Eclipse config files to be like other projects
2017-06-23 07:01:18 +02:00
Manu Sridharan 7d29573a26 Remove code to scan call sites for max param count
We cannot find any case where this code fixes a problem,
and it doesn't seem to be a good fix anyway.
2017-06-22 14:39:13 +02:00
Ben Liblit 16f673490d Fix all remaining Eclipse "Unnecessary Code" warnings
There were only three left, all fairly straightforward to fix.
2017-06-22 14:08:44 +02:00
Julian Dolby 2bca30af01 Merge branch 'master' of https://github.com/wala/WALA 2017-06-22 11:01:59 +02:00
Julian Dolby ea844f0f4c Merge pull request #187 from liblit/warning-fixes-plug-in-development-misc
Fix nearly all Eclipse “Plug-in Development” warnings
2017-06-22 11:01:49 +02:00
Julian Dolby 163e10f5e4 Merge branch 'warning-fixes-plug-in-development-misc' of https://github.com/liblit/WALA 2017-06-22 09:27:47 +02:00
Julian Dolby 8114f833ec clean up SDG 2017-06-22 09:27:34 +02:00
Ben Liblit 83e82111fb Merge branch 'warning-fixes-plug-in-development-misc' of github.com:liblit/WALA into warning-fixes-plug-in-development-misc 2017-06-07 17:47:20 +02:00
Ben Liblit 69149ed472 Match classpath to JavaSE-1.7 execution environment
This fixes one Eclipse "The JRE container on the classpath is not a
perfect match to the 'JavaSE-1.7' execution environment" warning in
the "Plug-in Development" category.
2017-06-07 17:42:11 +02:00
Ben Liblit a940935056 Export all packages
This fixes eleven Eclipse "This plug-in does not export all of its
packages" warnings in the "Plug-in Development" category.
2017-06-07 17:42:11 +02:00
Ben Liblit 4effd108f0 Remove "Bundle-Activator" header that names a missing class
This fixes one Eclipse "The type '...' is not on the plug-in
classpath" warning in the "Plug-in Development" category.
2017-06-07 17:42:11 +02:00
Ben Liblit 140d75eacf Add missing output directories
This fixes five Eclipse "Source folder '...' does not have the output
folder in corresponding output entry 'output..'" warnings in the
"Plug-in Development" category.
2017-06-07 17:42:11 +02:00
Ben Liblit 76fcaa5322 Add dependency on subproject containing plugin's Main class
This fixes two Eclipse "Referenced class '...' in attribute 'class' is
not on the plug-in classpath" warnings in the "Plug-in Development"
category.
2017-06-07 17:42:11 +02:00
Ben Liblit 4aef1be29f Set minimum required execution environments
This fixes two Eclipse "No required execution environment has been
set" warnings in the "Plug-in Development" category.
2017-06-07 17:42:11 +02:00
Ben Liblit 9086f4c66c Remove unnecessary UTF-8 encoding overrides
Everything here seems to be ASCII.
2017-06-07 17:42:11 +02:00
Ben Liblit bfe5cabf42 Match case of property names to that expected in manifest
This fixes two Eclipse "Key '...' is not found in localization
properties file: plugin.properties" warnings in the "Plug-in
Development" category.
2017-06-07 17:42:11 +02:00
Ben Liblit 9c81cae9be Externalize bundle names and vendors
This fixes 33 Eclipse "The value for attribute '...' is not
externalized.  The value must begin with %" warnings in the "Plug-in
Development" category.
2017-06-07 17:42:11 +02:00
Ben Liblit 3b9cd9838a JUnit @Test methods must not be static 2017-06-07 08:29:23 -07:00
Ben Liblit 8cc4daf6a0 Access static fields directly via the classes that declare them
Previously some of these were accessing such fields through a subclass
of the declaring class.  That creates an unnecessary extra inter-class
dependency lower in the type hierarchy than necessary.

Also, suppress this warning in an automated test input where the
indirect static accesses are explicitly intentional.
2017-06-07 08:29:23 -07:00
Ben Liblit 38c11f0fa6 Don't warn about intentional indirect access to static methods
This test code is intentionally crafted to use instances to access
static methods.  Eclipse's recommendation to access those methods
directly is, therefore, counterproductive.
2017-06-07 08:29:23 -07:00
Ben Liblit 237b49a425 Declare two public methods of a final class static
These methods access only static members.  They are methods of a final
class, which means no subclass can ever override these methods and use
dynamic dispatch to choose the implementation at run time.  So
declaring these methods static is (statically) safe.
2017-06-07 08:29:23 -07:00
Ben Liblit aa39fc63d5 Declare a protected final method static
The method itself accesses only static members.  The fact that it is
final means no subclass can ever override this method and use dynamic
dispatch to choose the implementation at run time.  So declaring this
method static is (statically) safe.
2017-06-07 08:29:23 -07:00
Ben Liblit 72c754e874 Declare private methods static wherever possible
If a method is private, there's no risk that a subclass elsewhere
might be overriding it and depending on dynamic dispatch to choose the
right implementation.  So all of these private methods can safely be
declared static without risk of regression in either WALA code or
unseen third-party code.
2017-06-07 08:29:23 -07:00
Ben Liblit e1d2fa9850 Suppress Eclipse warnings about potentially-static methods
The "potentially" qualifier is here because these methods are visible
outside the WALA source tree.  These methods may seem OK to be static
based on the code we have here, but we have no way of knowing whether
third-party code expected to be able to subclass and override.  I'm
going to play it safe and assume that we want to allow that.

Note that we are still allowing Eclipse warnings about methods that
can *definitely* be declared static; a different configuration option
controls these.  For private methods, final methods, and methods in
final classes, if the code seems static-safe based on what we have
here, then that's good enough: we don't need to worry about
third-party overrides.
2017-06-07 08:29:23 -07:00
Caius Brindescu 404a17c9cc When converting JDT AST to IR, a do-while loop in a case statement will throw NPE (#186)
* Fixed bug for source analysis

Do while in case statement would throw an NPE. Now it doesn't

* Added test case

The test will fail with an NPE if the fix is not applied.
2017-06-07 08:27:23 -07:00
Ben Liblit d45b598fb8 Match classpath to JavaSE-1.7 execution environment
This fixes one Eclipse "The JRE container on the classpath is not a
perfect match to the 'JavaSE-1.7' execution environment" warning in
the "Plug-in Development" category.
2017-05-27 00:57:33 -05:00
Ben Liblit 87f1535de7 Export all packages
This fixes eleven Eclipse "This plug-in does not export all of its
packages" warnings in the "Plug-in Development" category.
2017-05-27 00:57:33 -05:00
Ben Liblit 439d5245d3 Remove "Bundle-Activator" header that names a missing class
This fixes one Eclipse "The type '...' is not on the plug-in
classpath" warning in the "Plug-in Development" category.
2017-05-27 00:57:33 -05:00
Ben Liblit c9990d3808 Add missing output directories
This fixes five Eclipse "Source folder '...' does not have the output
folder in corresponding output entry 'output..'" warnings in the
"Plug-in Development" category.
2017-05-27 00:57:33 -05:00
Ben Liblit e59da85c08 Add dependency on subproject containing plugin's Main class
This fixes two Eclipse "Referenced class '...' in attribute 'class' is
not on the plug-in classpath" warnings in the "Plug-in Development"
category.
2017-05-27 00:57:33 -05:00
Ben Liblit eb15ab6e21 Set minimum required execution environments
This fixes two Eclipse "No required execution environment has been
set" warnings in the "Plug-in Development" category.
2017-05-27 00:57:33 -05:00
Ben Liblit 874a7dcde9 Remove unnecessary UTF-8 encoding overrides
Everything here seems to be ASCII.
2017-05-27 00:57:33 -05:00
Ben Liblit 2be5b289be Match case of property names to that expected in manifest
This fixes two Eclipse "Key '...' is not found in localization
properties file: plugin.properties" warnings in the "Plug-in
Development" category.
2017-05-27 00:57:33 -05:00
Ben Liblit fc0204ae48 Externalize bundle names and vendors
This fixes 33 Eclipse "The value for attribute '...' is not
externalized.  The value must begin with %" warnings in the "Plug-in
Development" category.
2017-05-27 00:57:33 -05:00
Julian Dolby fc7c7ec5d1 merge 2017-05-26 19:01:59 -04:00
Manu Sridharan 554a6e7ee9 Add options to ignore inter-procedural control dependence
In certain cases, one may want to ignore inter-procedural control
dependence.  Consider the following example:

    flag = getFlagVal();
    if (flag) {
      doStuff();
    }

If we are ignoring interprocedural control dependence, a forward slice
from the first statement will *not* include statements inside doStuff()
and its transitive callees.

This option is useful in scenarios where the effects of statements
inside control-dependent callees can be accounted for via some cheaper
effect analysis.  E.g., if you only care about heap effects of control-
dependent callees, you can compute that using mod-ref analysis,
rather than sucking all the control-dependent callee statements into the
slice.

Also added some more detailed comments, a new unit test, and removed
some trailing whitespace.
2017-05-26 15:29:08 -07:00
Ben Liblit 24fb1f6d10 Suppress unused-local-variable warnings in test inputs
Test code can do many things we'd consider bad style in real
application code, including defining local variables that are never
subsequently used.
2017-05-26 14:25:03 -07:00
Ben Liblit dee2412ab5 Remove several unused locals and clean up surrounding code
In all of these cases, the code used to initialize the unused local
seems nontrivial to me.  I think this can all be removed without
erasing any needed side effects, but the code might still become
useful to someone in the future.  So I'm not really removing the code
entirely, but merely commenting it out.
2017-05-26 14:25:03 -07:00
Ben Liblit 08b6d8dd68 Discard results of BufferedInputStream.read() calls
Previously we were saving these return values into local variables
that were never checked or used in any way.  So effectively we were
already discarding these results anyway, but in a manner that produced
Eclipse warnings about unused local variables.
2017-05-26 14:25:03 -07:00
Ben Liblit 966bc5b3e3 Remove AnalysisCache.getIR() calls whose results are unused
I'm grouping these together in a single commit in case these calls are
actually wanted for side effects.
2017-05-26 14:25:03 -07:00
Ben Liblit 2e503a17a2 Remove ClassHierarchy.resolveMethod() calls whose results are unused
I'm grouping these together in a single commit in case these calls are
actually wanted for side effects.
2017-05-26 14:25:03 -07:00
Ben Liblit 214e0caa86 Suppress Eclipse warnings about unused allocations
In each of these cases, the constructor directly or indirectly has
side effects that we want to keep, even if the object itself is not
retained and used by eht code that invokes `new`.
2017-05-26 14:25:03 -07:00
Ben Liblit 97bf43c0b9 Fix Eclipse warnings about unused method parameters 2017-05-26 14:25:03 -07:00
Julian Dolby d4607979ed Merge branch 'master' of https://github.com/wala/WALA 2017-05-26 15:13:28 -04:00
Manu Sridharan 9585aaf0a2 make overriding method public 2017-05-24 14:43:00 -07:00