• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2017 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package androidx.build
18 
19 import net.ltgt.gradle.errorprone.ErrorProneToolChain
20 import org.gradle.api.tasks.compile.JavaCompile
21 
22 const val ERROR_PRONE_VERSION = "com.google.errorprone:error_prone_core:2.2.0"
23 
configureWithErrorPronenull24 fun JavaCompile.configureWithErrorProne(toolChain: ErrorProneToolChain) {
25     this.toolChain = toolChain
26 
27     val compilerArgs = this.options.compilerArgs
28     compilerArgs += listOf(
29             "-XDcompilePolicy=simple", // Workaround for b/36098770
30             "-XepExcludedPaths:.*/(build/generated|external)/.*",
31 
32             // Enforce the following checks.
33             "-Xep:RestrictTo:OFF",
34             "-Xep:ParameterNotNullable:ERROR",
35             "-Xep:MissingOverride:ERROR",
36             "-Xep:JdkObsolete:ERROR",
37             "-Xep:EqualsHashCode:ERROR",
38             "-Xep:NarrowingCompoundAssignment:ERROR",
39             "-Xep:ClassNewInstance:ERROR",
40             "-Xep:ClassCanBeStatic:ERROR",
41             "-Xep:SynchronizeOnNonFinalField:ERROR",
42             "-Xep:OperatorPrecedence:ERROR",
43             "-Xep:IntLongMath:ERROR",
44             "-Xep:MissingFail:ERROR",
45             "-Xep:JavaLangClash:ERROR",
46             "-Xep:PrivateConstructorForUtilityClass:ERROR",
47             "-Xep:TypeParameterUnusedInFormals:ERROR",
48             "-Xep:StringSplitter:ERROR",
49             "-Xep:ReferenceEquality:ERROR",
50 
51             // Nullaway
52             "-XepIgnoreUnknownCheckNames", // https://github.com/uber/NullAway/issues/25
53             "-Xep:NullAway:ERROR",
54             "-XepOpt:NullAway:AnnotatedPackages=android.arch,android.support,androidx"
55     )
56 }
57