Merge remote-tracking branch 'aosp/upstream-master' into desugar

* aosp/upstream-master: (33 commits)
  Automated rollback of commit 01ddfb7bf418b371859de62f4eab2f41ea9a4a4a.
  Add test framework for OptionsBase classes and their Converters.
  Make the @Option annotation depend on the java version of the tagging enums.
  Internal change
  AndroidBusyBox: deprecate path-list-type flags
  Add the option filter enums in java, with equivalence check.
  First pass of @Option documentation for apple/objc/swift
  Fix options parsing javadoc typo.
  Fold OptionUsageRestrictions into OptionDocumentationCategory and OptionMetadataTags.
  Identify which methods are used in invokedynamic, and only desugar these methods.
  Enforce the new category and effect tags.
  Flip the flag --rewrite_calls_to_long_compare to false by default. Now desugaring Long.compare(long, long) is only enabled if either --min_sdk_version < 19 or --rewrite_calls_to_long_compare is specified.
  Add categories transition values to android options.
  When we access a field of an interface, if the field is of type long or double, then we use pop2 to pop the value out of the stack.
  Access interface constants to explicitly trigger the execution of interface initializers. The problem is that when we desugar default methods, the static intializer of interface will not be executed. The JVM spec says that if an interface has default methods, then when it is loaded, it will also be initialized. After we desugar such an interface, its default methods are removed, and when we load the interface, the <clinit> will not be executed.
  Allow expansion flags to have values.
  Add option tagging and categorizing enums.
  Automated rollback of commit 317e0de2113f0361c9dbf98653ceda4efea3f3e2.
  Access interface constants to explicitly trigger the execution of interface initializers. The problem is that when we desugar default methods, the static intializer of interface will not be executed. The JVM spec says that if an interface has default methods, then when it is loaded, it will also be initialized. After we desugar such an interface, its default methods are removed, and when we load the interface, the <clinit> will not be executed.
  Extract FieldInfo as a top-level class. In the following CL, I will use this class in DefaultMethodClassFixer to fix the bug b/38255926
  ...

Test: m -j ANDROID_COMPILE_WITH_JACK=false checkbuild
Change-Id: Id7fad7aeae234af21f6aa2b3affa76ea9f886475
tree: 54a3f992e0ef8d68d86883ac0ac030e0a7defa4b
  1. java/
  2. Android.mk
  3. copy.bara.sky
  4. manifest.txt
  5. OWNERS