Skip to content

Commit

Permalink
Merge branch 'master' into eisop-issue-785
Browse files Browse the repository at this point in the history
  • Loading branch information
Ao-senXiong authored Sep 10, 2024
2 parents d35f97a + 16c8883 commit ef1f2f0
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 24 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ jobs:
permissions:
contents: read
strategy:
fail-fast: true
matrix:
# No need to run 'cftests-junit-jdk21' on JDK 21.
script: ['typecheck-part1', 'typecheck-part2', 'guava', 'plume-lib', 'daikon-part1', 'daikon-part2', 'jspecify-conformance', 'jspecify-reference-checker']
Expand Down Expand Up @@ -91,7 +92,7 @@ jobs:
permissions:
contents: read
strategy:
fail-fast: false
fail-fast: true
matrix:
# jspecify-conformance and jspecify-reference-checker only tested on JDK 21.
script: ['cftests-junit', 'cftests-nonjunit', 'cftests-junit-jdk21', 'typecheck-part1', 'typecheck-part2', 'guava', 'plume-lib', 'daikon-part1', 'daikon-part2']
Expand Down
42 changes: 27 additions & 15 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -617,6 +617,30 @@ task htmlValidate(type: Exec, group: 'Format') {
]
}

def javadocDirs = [
project(':checker').sourceSets.main.allJava,
project(':checker').sourceSets.test.allJava,
project(':checker-qual').sourceSets.main.allJava,
project(':checker-util').sourceSets.main.allJava,
project(':checker-util').sourceSets.test.allJava,
project(':dataflow').sourceSets.main.allJava,
project(':dataflow').sourceSets.test.allJava,
project(':framework').sourceSets.main.allJava,
project(':framework').sourceSets.test.allJava,
project(':framework-test').sourceSets.main.allJava,
project(':framework-test').sourceSets.test.allJava,
project(':javacutil').sourceSets.main.allJava
]

def requireJavadocDirs = javadocDirs

project(':checker').afterEvaluate {
requireJavadocDirs += project(':checker').sourceSets.testannotations.allJava
}

project(':framework').afterEvaluate {
requireJavadocDirs += project(':framework').sourceSets.testannotations.allJava
}

// `gradle allJavadoc` builds the Javadoc for all modules in `docs/api`.
// This is what is published to checkerframework.org.
Expand All @@ -628,20 +652,7 @@ task allJavadoc(type: Javadoc, group: 'Documentation') {
description = 'Generates API documentation that includes all the modules.'
dependsOn(':checker:shadowJar', 'getPlumeScripts', 'getHtmlTools')
destinationDir = file("${rootDir}/docs/api")
source(
project(':checker-util').sourceSets.main.allJava,
project(':checker-util').sourceSets.test.allJava,
project(':checker-qual').sourceSets.main.allJava,
project(':checker').sourceSets.main.allJava,
project(':checker').sourceSets.test.allJava,
project(':framework').sourceSets.main.allJava,
project(':framework').sourceSets.test.allJava,
project(':dataflow').sourceSets.main.allJava,
project(':dataflow').sourceSets.test.allJava,
project(':javacutil').sourceSets.main.allJava,
project(':framework-test').sourceSets.main.allJava,
project(':framework-test').sourceSets.test.allJava
)
source javadocDirs

doFirst {
source(
Expand Down Expand Up @@ -685,7 +696,8 @@ task requireJavadoc(type: JavaExec, group: 'Documentation') {
description = 'Ensures that Javadoc documentation exists in source code.'
mainClass = 'org.plumelib.javadoc.RequireJavadoc'
classpath = configurations.requireJavadoc
args 'checker/src/main/java', 'checker-qual/src/main/java', 'checker-util/src/main/java', 'dataflow/src/main/java', 'framework/src/main/java', 'framework-test/src/main/java', 'javacutil/src/main/java'
// Convert each srcDir to its absolute path and flatten the list
args requireJavadocDirs.collect { it.srcDirs*.absolutePath }.flatten()
}


Expand Down
6 changes: 5 additions & 1 deletion checker/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@ sourceSets {
exclude '**/org/checkerframework/checker/resourceleak/MustCallInference.java'
}
}
testannotations
testannotations {
java {
srcDirs = ['src/testannotations/java']
}
}
}

sourcesJar {
Expand Down
8 changes: 4 additions & 4 deletions docs/manual/advanced-features.tex
Original file line number Diff line number Diff line change
Expand Up @@ -384,11 +384,11 @@
locations.
Variables defaulted to top include local variables, resource variables in the
try-with-resources construct, variables in \<for> statements, and \<catch>
arguments (known as exception parameters in the Java Language Specification).
try-with-resources construct, and variables in \<for> statements.
Exception parameters default to the top type because they might catch an
exception thrown anywhere in the program.
\item
Exception parameters in catch clauses default to the top type because they
might catch an exception thrown anywhere in the program.
An alternate design for exception parameters would be to default exception
parameters some other type T (instead of the top type); then the Checker
Expand Down
6 changes: 5 additions & 1 deletion framework/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,11 @@ sourceSets {
exclude '**/org/checkerframework/framework/stub/ToIndexFileConverter.java'
}
}
testannotations
testannotations {
java {
srcDirs = ['src/testannotations/java']
}
}
}

sourcesJar {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ type.invalid.super.wildcard=bounds must have the same annotations.%nextends boun
cast.unsafe=cast from "%s" to "%s" cannot be statically verified
invariant.cast.unsafe=cannot cast from "%s" to "%s"
cast.unsafe.constructor.invocation=constructor invocation cast from "%s" to "%s" cannot be statically verified
exception.parameter.invalid=invalid type in catch argument.%nfound : %s%nrequired: %s
exception.parameter.invalid=invalid type in exception parameter.%nfound : %s%nrequired: %s
throw.type.invalid=invalid type thrown.%nfound : %s%nrequired: %s
expression.unparsable.type.invalid=Expression invalid in dependent type annotation: %s
explicit.annotation.ignored=The qualifier %s is ignored in favor of %s. Either delete %s or change it to %s.
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down

0 comments on commit ef1f2f0

Please sign in to comment.