aboutsummaryrefslogtreecommitdiffstats
path: root/lint
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2012-12-27 12:20:46 -0800
committerTor Norbye <tnorbye@google.com>2013-01-02 13:18:43 -0800
commit6f609b78e08c4238a8b0ac38a793040c2acdac69 (patch)
tree55723eeec287bb49dd25fd33ee71d9819704a257 /lint
parent2ebb3e1e8a44851f1dd452e7c0b757fcd55d4d47 (diff)
downloadsdk-6f609b78e08c4238a8b0ac38a793040c2acdac69.zip
sdk-6f609b78e08c4238a8b0ac38a793040c2acdac69.tar.gz
sdk-6f609b78e08c4238a8b0ac38a793040c2acdac69.tar.bz2
Update fragment issue from warning to error
Also update constants to stay in sync with sdk/ version. Change-Id: I8e454a03d83c81036bf8cc73609babc96a9c7739
Diffstat (limited to 'lint')
-rw-r--r--lint/cli/src/test/java/com/android/tools/lint/checks/FragmentDetectorTest.java15
-rw-r--r--lint/cli/src/test/java/com/android/tools/lint/checks/MissingClassDetectorTest.java17
-rw-r--r--lint/libs/lint_api/src/main/java/com/android/tools/lint/client/api/LintDriver.java9
-rw-r--r--lint/libs/lint_checks/src/main/java/com/android/tools/lint/checks/FragmentDetector.java3
4 files changed, 32 insertions, 12 deletions
diff --git a/lint/cli/src/test/java/com/android/tools/lint/checks/FragmentDetectorTest.java b/lint/cli/src/test/java/com/android/tools/lint/checks/FragmentDetectorTest.java
index f732f71..0654ddc 100644
--- a/lint/cli/src/test/java/com/android/tools/lint/checks/FragmentDetectorTest.java
+++ b/lint/cli/src/test/java/com/android/tools/lint/checks/FragmentDetectorTest.java
@@ -27,26 +27,25 @@ public class FragmentDetectorTest extends AbstractCheckTest {
public void test() throws Exception {
assertEquals(
- "src/test/pkg/FragmentTest.java:10: Warning: This fragment class should be public (test.pkg.FragmentTest.Fragment1) [ValidFragment]\n" +
+ "src/test/pkg/FragmentTest.java:10: Error: This fragment class should be public (test.pkg.FragmentTest.Fragment1) [ValidFragment]\n" +
" private static class Fragment1 extends Fragment {\n" +
" ^\n" +
- "src/test/pkg/FragmentTest.java:15: Warning: This fragment inner class should be static (test.pkg.FragmentTest.Fragment2) [ValidFragment]\n" +
+ "src/test/pkg/FragmentTest.java:15: Error: This fragment inner class should be static (test.pkg.FragmentTest.Fragment2) [ValidFragment]\n" +
" public class Fragment2 extends Fragment {\n" +
" ^\n" +
- "src/test/pkg/FragmentTest.java:21: Warning: The default constructor must be public [ValidFragment]\n" +
+ "src/test/pkg/FragmentTest.java:21: Error: The default constructor must be public [ValidFragment]\n" +
" private Fragment3() {\n" +
" ~~~~~~~~~\n" +
- "src/test/pkg/FragmentTest.java:26: Warning: This fragment should provide a default constructor (a public constructor with no arguments) (test.pkg.FragmentTest.Fragment4) [ValidFragment]\n" +
+ "src/test/pkg/FragmentTest.java:26: Error: This fragment should provide a default constructor (a public constructor with no arguments) (test.pkg.FragmentTest.Fragment4) [ValidFragment]\n" +
" public static class Fragment4 extends Fragment {\n" +
" ~~~~~~~~~\n" +
- "src/test/pkg/FragmentTest.java:27: Warning: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead [ValidFragment]\n" +
+ "src/test/pkg/FragmentTest.java:27: Error: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead [ValidFragment]\n" +
" private Fragment4(int dummy) {\n" +
" ~~~~~~~~~\n" +
- "src/test/pkg/FragmentTest.java:36: Warning: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead [ValidFragment]\n" +
+ "src/test/pkg/FragmentTest.java:36: Error: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead [ValidFragment]\n" +
" public Fragment5(int dummy) {\n" +
" ~~~~~~~~~\n" +
- "0 errors, 6 warnings\n" +
- "",
+ "6 errors, 0 warnings\n",
lintProject(
"bytecode/FragmentTest$Fragment1.class.data=>bin/classes/test/pkg/FragmentTest$Fragment1.class",
diff --git a/lint/cli/src/test/java/com/android/tools/lint/checks/MissingClassDetectorTest.java b/lint/cli/src/test/java/com/android/tools/lint/checks/MissingClassDetectorTest.java
index 27875e8..b3ff056 100644
--- a/lint/cli/src/test/java/com/android/tools/lint/checks/MissingClassDetectorTest.java
+++ b/lint/cli/src/test/java/com/android/tools/lint/checks/MissingClassDetectorTest.java
@@ -373,4 +373,21 @@ public class MissingClassDetectorTest extends AbstractCheckTest {
"bytecode/OnClickActivity.class.data=>bin/classes/test/pkg/OnClickActivity.class"
));
}
+
+ public void testFragments() throws Exception {
+ // Ensure that we don't do instantiation checks here since they are handled by
+ // the FragmentDetector
+ assertEquals(
+ "No warnings.",
+
+ lintProject(
+ "bytecode/FragmentTest$Fragment1.class.data=>bin/classes/test/pkg/FragmentTest$Fragment1.class",
+ "bytecode/FragmentTest$Fragment2.class.data=>bin/classes/test/pkg/FragmentTest$Fragment2.class",
+ "bytecode/FragmentTest$Fragment3.class.data=>bin/classes/test/pkg/FragmentTest$Fragment3.class",
+ "bytecode/FragmentTest$Fragment4.class.data=>bin/classes/test/pkg/FragmentTest$Fragment4.class",
+ "bytecode/FragmentTest$Fragment5.class.data=>bin/classes/test/pkg/FragmentTest$Fragment5.class",
+ "bytecode/FragmentTest$Fragment6.class.data=>bin/classes/test/pkg/FragmentTest$Fragment6.class",
+ "bytecode/FragmentTest$NotAFragment.class.data=>bin/classes/test/pkg/FragmentTest$NotAFragment.class",
+ "bytecode/FragmentTest.java.txt=>src/test/pkg/FragmentTest.java"));
+ }
}
diff --git a/lint/libs/lint_api/src/main/java/com/android/tools/lint/client/api/LintDriver.java b/lint/libs/lint_api/src/main/java/com/android/tools/lint/client/api/LintDriver.java
index 0ff3a9a..dd268a5 100644
--- a/lint/libs/lint_api/src/main/java/com/android/tools/lint/client/api/LintDriver.java
+++ b/lint/libs/lint_api/src/main/java/com/android/tools/lint/client/api/LintDriver.java
@@ -287,10 +287,13 @@ public class LintDriver {
try {
projects = computeProjects(files);
} catch (CircularDependencyException e) {
- Context context = new Context(this, e.getProject(), null, e.getLocation().getFile());
mCurrentProject = e.getProject();
- context.report(IssueRegistry.LINT_ERROR, e.getLocation(), e.getMessage(), null);
- mCurrentProject = null;
+ if (mCurrentProject != null) {
+ File file = e.getLocation().getFile();
+ Context context = new Context(this, mCurrentProject, null, file);
+ context.report(IssueRegistry.LINT_ERROR, e.getLocation(), e.getMessage(), null);
+ mCurrentProject = null;
+ }
return;
}
if (projects.isEmpty()) {
diff --git a/lint/libs/lint_checks/src/main/java/com/android/tools/lint/checks/FragmentDetector.java b/lint/libs/lint_checks/src/main/java/com/android/tools/lint/checks/FragmentDetector.java
index 932d307..f6ebcd6 100644
--- a/lint/libs/lint_checks/src/main/java/com/android/tools/lint/checks/FragmentDetector.java
+++ b/lint/libs/lint_checks/src/main/java/com/android/tools/lint/checks/FragmentDetector.java
@@ -65,7 +65,7 @@ public class FragmentDetector extends Detector implements ClassScanner {
Category.CORRECTNESS,
6,
- Severity.WARNING,
+ Severity.ERROR,
FragmentDetector.class,
Scope.CLASS_FILE_SCOPE).setMoreInfo(
"http://developer.android.com/reference/android/app/Fragment.html#Fragment()"); //$NON-NLS-1$
@@ -145,6 +145,7 @@ public class FragmentDetector extends Detector implements ClassScanner {
}
} else if (!method.desc.contains("()")) { //$NON-NLS-1$
context.report(ISSUE, context.getLocation(method, classNode),
+ // TODO: Use separate issue for this which isn't an error
"Avoid non-default constructors in fragments: use a default constructor " +
"plus Fragment#setArguments(Bundle) instead",
null);