WALA/com.ibm.wala.core/src/com/ibm/wala/classLoader
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
..
AbstractNestedJarFileModule.java SecurityExceptions when analyzing JARs with broken/expired signatures 2016-06-08 11:08:10 +02:00
AbstractURLModule.java changes for hybrid analysis 2015-04-05 21:19:56 -04:00
ArrayClass.java Merge branch 'wala' into master 2014-07-28 17:09:02 +02:00
ArrayClassLoader.java Convert all Java source files to use Unix line endings; no semantic change 2012-09-04 15:56:05 -07:00
BinaryDirectoryTreeModule.java merge 2013-06-25 11:57:37 -04:00
BytecodeClass.java WALA: Provide acces to JSR 308 Annotations via new Class TypeAnnotation. 2016-12-05 18:52:38 +01:00
BytecodeLanguage.java language changes 2015-12-15 19:33:59 -05:00
CallSiteReference.java Convert all Java source files to use Unix line endings; no semantic change 2012-09-04 15:56:05 -07:00
ClassFileModule.java added container access to ModuleEntry 2013-06-25 11:53:58 -04:00
ClassLoaderFactory.java Convert all Java source files to use Unix line endings; no semantic change 2012-09-04 15:56:05 -07:00
ClassLoaderFactoryImpl.java pull exclusions file support into util project and then share it with 2013-11-14 13:02:56 -05:00
ClassLoaderImpl.java Fix Eclipse warnings about methods that can be declared static 2017-07-14 22:38:38 -07:00
CodeScanner.java cross-cutting changes to make more of WALA runnable with TeaVM. The biggest change is refactoring to AnalysisCache and friends; since TeaVM does not support SoftReference, I needed to add a layer of interfaces so that I can use a more simpleminded caching implementation for TeaVM. There are other changes to Module and friends to break connections with File and URL, which also cause TeaVM grief. I also organized imports in many places to remove unused types that caused trouble. 2017-02-02 20:33:27 -05:00
CompoundModule.java added container access to ModuleEntry 2013-06-25 11:53:58 -04:00
DirectoryTreeModule.java more checking 2014-07-08 14:41:28 -04:00
FieldImpl.java Merge branch 'pull-request__typeannotations' of https://github.com/joana-team/WALA 2017-03-11 16:19:50 -05:00
FileModule.java added container access to ModuleEntry 2013-06-25 11:53:58 -04:00
IBytecodeMethod.java in order to look up instruction-indices from a bytecode-indices, do a binary search on the existing pcMap array (as suggested by Julian Dolby). 2016-12-05 18:52:37 +01:00
IClass.java java annotations support for dalvik 2015-03-04 13:49:58 -05:00
IClassLoader.java Remove redundant casts and imports, improve doc comments 2014-06-26 17:51:26 +02:00
IField.java merge 2013-06-25 11:57:37 -04:00
IMember.java incorporate changes from other branch 2013-02-06 12:34:25 +01:00
IMethod.java cross-cutting changes to make more of WALA runnable with TeaVM. The biggest change is refactoring to AnalysisCache and friends; since TeaVM does not support SoftReference, I needed to add a layer of interfaces so that I can use a more simpleminded caching implementation for TeaVM. There are other changes to Module and friends to break connections with File and URL, which also cause TeaVM grief. I also organized imports in many places to remove unused types that caused trouble. 2017-02-02 20:33:27 -05:00
JVMClass.java merge 2013-06-25 11:57:37 -04:00
JarFileEntry.java added container access to ModuleEntry 2013-06-25 11:53:58 -04:00
JarFileModule.java merge 2013-06-25 11:57:37 -04:00
JarStreamModule.java Add @Override annotations wherever possible (#178) 2017-05-08 07:39:49 -07:00
JavaLanguage.java provide list of exceptions for array creation sites with non-negative size 2016-12-05 18:21:05 +01:00
Language.java more CPA work 2016-09-19 13:51:18 -04:00
LanguageImpl.java merge 2013-06-25 11:57:37 -04:00
Module.java Fixed bugs in the front end handling esoteric cases of weird control 2013-07-30 14:04:08 -04:00
ModuleEntry.java merge 2013-06-25 11:57:37 -04:00
NestedJarFileModule.java fixes to Dalvik support, and work on running Dalvik tests on Travis 2015-02-26 09:34:03 -05:00
NewSiteReference.java Convert all Java source files to use Unix line endings; no semantic change 2012-09-04 15:56:05 -07:00
ProgramCounter.java Convert all Java source files to use Unix line endings; no semantic change 2012-09-04 15:56:05 -07:00
ResourceJarFileModule.java merge 2013-06-25 11:57:37 -04:00
ShrikeBTMethod.java Remove "throws XYZ" declarations where XYZ cannot be thrown 2017-07-28 10:20:28 -07:00
ShrikeCTMethod.java Fix Eclipse warnings about methods that can be declared static 2017-07-14 22:38:38 -07:00
ShrikeClass.java Fix Eclipse warnings about methods that can be declared static 2017-07-14 22:38:38 -07:00
ShrikeIRFactory.java correctly prune safe array creation for multi-dimensional array creation 2016-12-07 19:27:59 +01:00
SourceDirectoryTreeModule.java merge 2013-06-25 11:57:37 -04:00
SourceFileModule.java Fix 65 Eclipse warnings about unused exception parameters 2017-03-20 00:44:39 -05:00
SourceModule.java added notion of source modules, which are presumed to be text files 2011-04-04 14:58:58 +00:00
SourceURLModule.java merge 2013-06-25 11:57:37 -04:00
SyntheticClass.java Remove redundant casts and imports, improve doc comments 2014-06-26 17:51:26 +02:00
SyntheticMethod.java Add @Override annotations wherever possible (#178) 2017-05-08 07:39:49 -07:00
package.html more conversion to Unix line endings 2012-09-04 15:59:50 -07:00