Fork of the T.J. Watson Libraries for Analysis used by DASCA.
Go to file
Ben Liblit 191904d607 Remove "throws XYZ" declarations where XYZ cannot be thrown
Unnecessary "throws" declarations tend to cascade.  If foo() calls
bar() and bar() falsely declares that it might throw IOException, that
often leads a programmer to declare that foo() might throw IOException
as well.  Fixing the bar() throws declaration then reveals that we can
fix the foo() throws declaration too.  By the time we reach a fixed
point with cleaning these up, we have removed roughly 320 unnecessary
throws declarations.

In a few cases, this cleanup even lets us remove entire "try
... catch" statements where the only thing being caught was an
exception that we now statically know cannot be thrown.  Nice!

In Eclipse project configurations, upgrade any future such shenanigans
from warnings to errors.  Now that we've fixed this, we don't want it
coming back again.

There is a potential drawback to this change.  Conceivably some public
WALA API entry point might have declared that it could throw some
exception merely to reserve the *option* of throwing that exception in
third-party code that subclasses and overrides the API entry point in
question.  I have no idea whether this is a significant concern in
practice, though.
2017-07-28 10:20:28 -07:00
com.ibm.wala-feature update version to 1.4.3-SNAPSHOT 2017-04-19 09:19:09 -07:00
com.ibm.wala-repository update version to 1.4.3-SNAPSHOT 2017-04-19 09:19:09 -07:00
com.ibm.wala.cast Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.cast.java Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.cast.java.ecj Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.cast.java.test Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.cast.java.test.data Remove unnecessary warning-suppression annotations 2017-07-26 20:08:34 -07:00
com.ibm.wala.cast.js Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.cast.js.html.nu_validator Disable Eclipse warnings about empty statements 2017-07-18 20:43:36 -07:00
com.ibm.wala.cast.js.nodejs Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.cast.js.nodejs.test Enable Eclipse Oxygen's new "unlikely argument types" diagnostics 2017-07-08 13:22:00 -07:00
com.ibm.wala.cast.js.rhino Disable Eclipse warnings about assignments to parameters 2017-07-18 20:43:36 -07:00
com.ibm.wala.cast.js.rhino.test Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.cast.js.test Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.cast.js.test.data update version to 1.4.3-SNAPSHOT 2017-04-19 09:19:09 -07:00
com.ibm.wala.cast.test Disable Eclipse warnings about name shadowing 2017-07-18 20:43:36 -07:00
com.ibm.wala.core Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.core.testdata Remove unnecessary warning-suppression annotations 2017-07-26 20:08:34 -07:00
com.ibm.wala.core.tests Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.dalvik Disable Eclipse warnings about assignments to parameters 2017-07-18 20:43:36 -07:00
com.ibm.wala.dalvik.test Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.ide Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.ide-feature update version to 1.4.3-SNAPSHOT 2017-04-19 09:19:09 -07:00
com.ibm.wala.ide.jdt Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.ide.jdt.test Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.ide.jsdt Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.ide.jsdt.tests Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.ide.tests Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.scandroid Disable Eclipse warnings about name shadowing 2017-07-18 20:43:36 -07:00
com.ibm.wala.shrike Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
com.ibm.wala.tests-feature update version to 1.4.3-SNAPSHOT 2017-04-19 09:19:09 -07:00
com.ibm.wala.tests.ide-feature update version to 1.4.3-SNAPSHOT 2017-04-19 09:19:09 -07:00
com.ibm.wala.util Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
targets update version to 1.4.3-SNAPSHOT 2017-04-19 09:19:09 -07:00
.gitignore AnalysisCache -> IAnalysisCache, additional ignore, increased visibility, generic fixes (#172) 2017-05-03 09:20:03 -07:00
.travis.yml try to trigger WALA Client 2017-07-24 14:03:06 +00:00
README.md Restore README.md 2014-12-02 13:14:26 -08:00
appveyor.yml.disabled disable appveyor for now 2017-04-13 22:06:35 -07:00
build-maven-jars.py make Maven Central files for wala.dalvik and wala.scandroid (#158) 2017-03-25 13:20:34 -07:00
change-version.py script to change version numbers consistently across files 2015-05-29 12:19:18 -07:00
dependent-projects-trigger.sh trigger WALA-Mobile too 2017-07-24 17:28:24 +00:00
pom.xml Simpler strategy for telling Tycho to use existing project settings 2017-06-26 11:16:09 -07:00

README.md

This is the main source repository for WALA. For more details on WALA, see the WALA home page.