Skip to content
Snippets Groups Projects
  1. Jun 07, 2018
  2. Jun 05, 2018
  3. May 22, 2018
    • Tor Norbye's avatar
      Improvements to annotation extraction, doconly and nullness migration · 5bda8555
      Tor Norbye authored
      This CL fixes a number of issses in metalava:
      
      (1) Support separate stub file generation for android.jar and for
          documentation stubs. The "--stubs" flag continues to create stubs
          intended for compilation into android.jar, and the new
          "--doc-stubs" flag generates stubs intended for documentation
          migration.
      
          Why are these separate, you ask? It turns out the stubs we compile
          for android.jar needs to be slightly different from those we
          generate documentation for. Here are some specific examples:
      
          (a) In the SDK stubs we'll use different nullness annotations for
              recently annotated elements than for elements that have been
              annotated for a while. This allows the Kotlin compiler to
              treat violations of these contracts as a warning instead of an
              error. In the documentation, however, we just want the normal
              @NonNull/@Nullable annotations to show up, not the specialized
              migration versions of these.
      
          (b) @doconly: Some elements, such as R.styleable, are marked with
              @doconly and should be present when running for example
              javadoc on the code, but should not be present in the actual
              SDK.
      
      (2) This CL updates the set of stub annotations that the stubs can be
          compiled with. These are in many cases nearly identical to the
          androidx.annotations in the support library, but with some notable
          changes, such as allowing type parameter and type use for the
          nullness annotations, switching to class retention for a few
          annotations, and removing some that don't apply.
      
      (3) This CL updates the nullness migration to the new scheme supported
          by Kotlin 1.2.50, and removes earlier handling for multiple stages
          of migration (@Newly<X> vs @Recently<X>).  It also changes the
          annotation package handling from prefering
          android.support.annotation to androidx.annotation.
      
          There area also various fixes to the nullness coverage code which
          lets the reports be written to files, which more correctly
          accounts for static final primitive constants, etc.
      
      Finally, misc bug fixes I encountered. At this point, metalava can
      spit out stubs containing annotations that compile -- and which
      contain the right migration names for Kotlin.
      
      Bug: N/A
      Test: Unit tests included and updated
      
      Change-Id: I4915e199e2e14473df62206015461108bc58b962
      5bda8555
  4. Jan 28, 2018
  5. Jan 27, 2018
    • Aurimas Liutikas's avatar
      Initial checkin of metalava. · 52ffe48f
      Aurimas Liutikas authored
      This includes the following internal changes:
      ag/3072760
      ag/3466329
      ag/3474287
      
      Test: ./gradlew assemble
      Change-Id: Iecc7996ec8f2cbb453d84e1c63f01ca046464da3
      52ffe48f
Loading