History log of /sdk/lint/cli/.settings/org.eclipse.jdt.core.prefs
Revision Date Author Comments
764d9297c9631f239c8ebafc64edc77db80ce3c2 01-Jun-2012 Tor Norbye <tnorbye@google.com> Fix warnings

First, update our various project-specific Eclipse compiler settings
configuration files to include the new Eclipse 4 flags.

Second, turn off the "Unchecked conversion from non-annotated type to
@NonNull" warnings; there are hundreds or thousands of these, and
there isn't much we can do about them when they're coming from
platform and library APIs.

Third, make the lint projects warning-clean again by addressing
various warnings Eclipse found (such as some unclosed resources and
some null handling issues; yesterday's null annotation fixes only
addressed errors, not warnings.)

Change-Id: If75f7401a1cbeef1bf58b47ccaa9ad17bede7f91
820265da80f6aef2f95d94bbc329e30999ec794f 23-Dec-2011 Tor Norbye <tnorbye@google.com> Add @NonNull annotation and configure Eclipse settings

This changeset adds a new @NonNull annotation, to match our existing
@Nullable annotation, and it adds configuration settings for Eclipse
3.8 / Eclipse 4.2 which configures the new null analysis there to use
our own annotations. Note that the annotations only have source
retention so there is no extra size or class-loading overhead. (To use
findbugs you'll need to temporarily change retention to class-level.)

In upcoming CL's I'll use these annotations to clarify the Lint API
and other APIs.

Change-Id: I99096d8b8a7e25ef002624d592da7700195a5872
ab36f4e7488358dea4ab6b54ee2b7bef3da0232b 21-Dec-2011 Tor Norbye <tnorbye@google.com> Update SDK codebase to JDK 6

This changeset makes the SDK codebase compile with source=1.6 (which
means it also requires JDK 6). This means that methods implementing an
interface requires @Override's. It also means we can start using APIs
like the ArrayDeque class and methods like String#isEmpty().

This changeset looks big but the change is trivial: it's basically
adding @Override in all the places that need it, along with some other
automatic Eclipse cleanup in certain files (such as reordering imports
where they were incorrectly ordered (because older versions of Eclipse
didn't always handle inner classes right)), as well as cleaning up
trailing whitespace and removing some $NON-NLS-1$ markers on lines
where there aren't any string literals anymore.

This changeset also sets the source and target JDK level to 6 in the
Eclipse compiler .settings file, and synchronizes this file to all the
other Eclipse SDK projects.

Change-Id: I6a9585aa44c3dee9a5c00739ab22fbdbcb9f8275
a85107f7d763276a5a040cf68e2046ac54202015 06-Oct-2011 Tor Norbye <tnorbye@google.com> Static analyzer

This changeset adds a static analyzer, "lint", which looks for various
potential bugs in Android projects. It has 3 parts:

(1) A library which performs the actual static checks.
This library is standalone: it does not depend on Eclipse.
(Technically the library has two halves: an API half, for use
by third party developers to write additional detectors, and
an actual implementation of a bunch of built-in checks.)

(2) A command line driver, "lint", which runs the static checks and
emits any warnings to standard out. This can be thought of as
a replacement for the layoutopt tool.

(3) Eclipse integration. Lint errors are added to the Problems view as
well as shown as editor annotations. There's an options panel for
controlling which detectors are enabled. There's also a quickfix
for disabling errors directly within the editor and a marker
resolution for disabling them via the Problems view.

The static checks are run on an XML file right after it has been
saved. (This is optional via a toggle on the same preference page
as the detector list.)

The static checks are also run when you export an APK, and if any
fatal errors are found the export is abandoned. (This is also
optional via an option).

Finally you can run a full lint through the Android Tools menu,
and there's also an action to clear all the lint markers there.

There's also a new indicator on the layout editor which shows
whether there are lint errors on the associated file, and when
clicked brings up a dialog listing the specific errors.

This changeset also includes a number of checks:

* An accessibility detector which warns about images missing
contentDescriptions
* A drawable selector detector which warns about state lists where not
all states are reachable (e.g. it is not the case that only the last
item in the list omits a state qualifier)
* A detector finding duplicate ids, not just in the current layout but
across included layouts (transitively) as well
* All the layoutopt ones ported to Java + DOM
* Unit tests for the above.

The focus here is on getting the infrastructure in place, and it
currently focuses on XML resource files and analyzing them
efficiently. See the comment in XmlVisitor for details on that.

Change-Id: Ic5f5f37d92bfb96ff901b959aaac24db33552ff7