Bot releases are hidden (Show)
Published by realityforge over 4 years ago
Changes in this release:
assertDiagnostic(...)
that accepts a compilation, a diagnostic and a message contents to the AbstractProcessorTest
class. Also added assertErrorDiagnostic(...)
and assertWarningDiagnostic(...)
helper methods to make testing the most common diagnostic error messages easy. Deprecated the existing assertDiagnosticPresent(...)
method as it's functionality has been subsumed by the new methods.Published by realityforge over 4 years ago
Changes in this release:
AbstractStandardProcessor.getNewTypeElementsToProcess()
utility method.Published by realityforge over 4 years ago
Changes in this release:
AbstractProcessorTest.newSynthesizingProcessor(...)
helper methods that create an annotation processor that will "generate" source in a particular processor round. The generation actually just consists of reading a fixture from the filesystem and passing it to the compiler. This utility is useful when testing annotation processors that defer processing until later rounds based on whether the types that they are acting on are fully resolved or have unknown elements present.Published by realityforge over 4 years ago
Changes in this release:
TypesUtil
class that contain helper methods that work solely on types.Published by realityforge over 4 years ago
Changes in this release:
TypeElement
.AbstractProcessorTest.assertDiagnosticPresent
method to help when performing explicit staged compiled during testing.Published by realityforge over 4 years ago
Changes in this release:
AbstractStandardProcessor.processTypeElements()
to work when the annotation processor is responsible for processing multiple different top-level types.AbstractStandardProcessor.readBooleanOption(...)
that simplifies reading boolean annotation options.AbstractStandardProcessor.init(...)
.AbstractStandardProcessor.errorIfProcessingOverAndDeferredTypesUnprocessed(...)
as private as should never be invoked by subclasses.debug
annotation option that prints out debug messages based on whether types are processed in a round. Add a method AbstractStandardProcessor.debug(...)
that can be used by downstream libraries to emit debug messages.Published by realityforge over 4 years ago
Changes in this release:
AnnotationsUtil.hasNullableAnnotation(...)
helper method.Published by realityforge over 4 years ago
Changes in this release:
AbstractStandardProcessor
handles deferring of unresolved types. Previously the code assumed that the annotation processors would only have a single call to AbstractStandardProcessor.processTypeElements()
within each annotation processor which meant that there was only one callback that was ever invoked so that deferred types could be added if they have been resolved since the last processor round. However toolkits such as Sting that process multiple different categories of top-level TypeElement
instances would have get have resolved types from incorrect categories processed in incorrect callbacks. This is a breaking change that will result in rework of downstream libraries.AnnotationUtils.getAnnotationValue()
method and rename the AnnotationUtils._getAnnotationValue()
to AnnotationUtils.getAnnotationValue()
. This backwards incompatible change was made in this version so all incompatible changes are made in a single release.GeneratorUtil.getPackageElement(...)
to ElementsUtil
.GeneratorUtil.areTypesInDifferentPackage(...)
to ElementsUtil
.GeneratorUtil.areTypesInSamePackage(...)
to ElementsUtil
.AnnotationsUtil.hasNullableAnnotation(...)
helper method.AnnotationsUtil
.Published by realityforge over 4 years ago
Changes in this release:
ElementsUtil.isSynthetic(Element)
and ElementsUtil.isNotSynthetic(Element)
helper methods.Published by realityforge over 4 years ago
Changes in this release:
GeneratorUtil.ANNOTATION_WHITELIST
as a public field.Published by realityforge over 4 years ago
Changes in this release:
MemberChecks.must(...)
and MemberChecks.mustNot(...)
.Published by realityforge over 4 years ago
Changes in this release:
AnnotationsUtil.findAnnotationValue()
public.AnnotationsUtil.getAnnotationValue(...)
in favour of AnnotationsUtil.getAnnotationValueValue(...)
as a future version of the library will add a AnnotationsUtil.getAnnotationValue(...)
that returns an AnnotationValue
.Published by realityforge over 4 years ago
Changes in this release:
com.google.truth
artifact to version 0.45
.com.google.testing.compile
artifact to version 0.18-rf
.ProcessorException
so that it accepts optional AnnotationMirror
and AnnotationValue
parameters.Published by realityforge over 4 years ago
Changes in this release:
AbstractProcessorTest.input(...)
helper method.AbstractProcessorTest.assertCompilationUnsuccessful(...)
helper method.Published by realityforge over 4 years ago
Changes in this release:
ElementsUtil.isElementDeprecated(Element)
helper method.ElementsUtil.isEffectivelyPublic(Element)
helper method.AbstractStandardProcessor.errorIfProcessingOverAndDeferredTypesUnprocessed()
helper method.Published by realityforge over 4 years ago
Changes in this release:
TypeMirror.getKind()
to get the kind of the TypeMirror
rather than using instanceof DeclaredType
etc as some compiler have TypeMirror
implement interfaces even if they are not of that type.SuppressWarningsUtil
Published by realityforge over 4 years ago
Changes in this release:
AbstractProcessorTest.processors()
to simplify getting complete set of processors in downstream projects.AbstractProcessorTest.compiler()
to simplify setup of compiler.AbstractStandardProcessor
class, stop emitting duplicate error messages if the error is about an Element
that was not part of the current compilation round.myprefix.verbose_out_of_round.errors
that controls whether Element
that were not compiled in the current round that cause errors will produce verbose error messages to make it easier for IDE users to locate the source of the errors.Published by realityforge over 4 years ago
Changes in this release:
AbstractProcessorTest.buildClasspath(File...)
, AbstractProcessorTest.describeFailureDiagnostics(Compilation)
and AbstractProcessorTest.assertCompilationSuccessful(Compilation)
to make it easier for downstream tests to support multi-stage compilations while still generating useful errors when failures occur.Published by realityforge over 4 years ago
Changes in this release:
AbstractProcessorTest.outputFiles(...)
overloaded method that omits the filter under the assumption that all files are emitted to the target directory. This is useful when building up multi-stage compiles and all output should be written to the target directory so that it can be picked up by a subsequent compile stagePublished by realityforge over 4 years ago
Changes in this release:
AbstractProcessorTest.outputFile()
and invoke it from existing test infrastructure.