| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
| |
the owner of the method reference have assignable relation. If yes, use the
bridge method.
This CL addresses the integration problem between Desugar and the lambda factory of JDK 9. The change in JDK 9 is here,http://hg.openjdk.java.net/jdk9/dev/jdk/rev/a3b3c7b6464d.
RELNOTES: None
PiperOrigin-RevId: 162965244
|
|
|
|
|
|
|
| |
as printing the merge error report. The stack traces duplicated the error report and gave the impression that the error may be an internal error instead of a build error.
RELNOTES: None.
PiperOrigin-RevId: 162755827
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a partial rollback.
I restored the old flags (with PathListConverter),
added the new ones, added deprecation warnings and
annotations, and added code to concat the values
of new and old.
Existing released versions of Bazel should keep
working with the new code until 2018-01-31, i.e.
for the next ~6 months. After that I'll remove the
old flags and the PathListConverter.
*** Reason for rollback ***
Fixed broken integration with release Blaze.
*** Original change description ***
Automated rollback of commit 5752463ece84ebb4fb074888cba57412ab8d86b3.
*** Reason for rollback ***
Broke too many targets.
***
RELNOTES: none
PiperOrigin-RevId: 162587548
|
|
|
|
|
|
|
| |
The option filters proto dependency can be removed from the OptionsParser. This is in response to option parser users that want to avoid the bazel-internal proto file in their dependencies.
RELNOTES: None.
PiperOrigin-RevId: 162249778
|
|
|
|
| |
PiperOrigin-RevId: 162194755
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit:
- deprecates PathListConverter
- removes ExistingPathListConverter because it was
not used in production, only tests
- deprecated List<Path> type flags that use
PathListConverter
- introduces new List<Path> type flags next to the
deprecated ones that use @Options.allowMultiple
and convert with PathConverter; the new and old
lists are concatenated, yielding the flag value
PathListConverter and all of its occurrences
should be removed after 2018-01-31 (about 6 months
from now, which is a safe enough timeframe for
everyone to upgrade Bazel so it uses the new-style
flags).
Reason for deprecation is that colon-separated
path lists don't work on Windows because paths
have colons in them.
Since the Android BusyBox is not intended to be
executed by users but by Bazel only, there's no
release notes necessary.
See https://github.com/bazelbuild/bazel/issues/3264
RELNOTES: none
PiperOrigin-RevId: 162193998
|
|
|
|
|
| |
RELNOTES: none
PiperOrigin-RevId: 161831232
|
|
|
|
|
|
|
| |
were being falsely logged during build as warnings
RELNOTES: none
PiperOrigin-RevId: 161723206
|
|
|
|
|
|
|
|
|
|
| |
OptionMetadataTags.
These are similar, no need to have both fields. Removing the "DOCUMENTED" default, the absence of UNDOCUMENTED will be used instead.
Since requiring a documentation category for undocumented options doesn't make sense, list that as one of the OptionDocumentationCategories, but list HIDDEN and INTERNAL as part of OptionMetadata. These options should list UNDOCUMENTED as their category.
PiperOrigin-RevId: 161515674
|
|
|
|
|
|
|
|
|
|
| |
Make sure that ZipEntry paths always use forward
slashes, even on Windows. Also add a test.
See https://github.com/bazelbuild/bazel/issues/3264
Change-Id: I4508e46dde49cd44c8e3792017d0d280a51dc565
PiperOrigin-RevId: 161500049
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the recently added JunctionCreator class in
the Android BusyBox.
Query the current OS's name, where the BusyBox
process runs (using System.getProperty("os.name"))
and instantiate the corresponding JunctionCreator
implementation.
This allows the BusyBox to work around path length
limitations on Windows; see
WindowsJunctionCreator.
See https://github.com/bazelbuild/bazel/issues/3264
Change-Id: Ifc1a3c86971e64c2f42bcec2988b7e9239a1d29a
PiperOrigin-RevId: 161494557
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce the JunctionCreator classes that the
Android BusyBox can use to work around path length
limitations on Windows.
See https://github.com/bazelbuild/bazel/issues/3264
Change-Id: Ia5ee39f0635dcc2690ffb1755dc56d21e7bc7536
PiperOrigin-RevId: 161378422
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now all tests under
//src/test/j/c/g/devtools/build/android/...:*
pass on Windows, yay!
Also adjust test sizes as advised by Bazel (using
--test_verbose_timeout_warnings).
See https://github.com/bazelbuild/bazel/issues/3264
Change-Id: I3f1f4978306bdedaf805149295daa413d2248fbb
PiperOrigin-RevId: 161373699
|
|
|
|
| |
PiperOrigin-RevId: 161125326
|
|
|
|
|
|
|
| |
methods.
RELNOTES: None
PiperOrigin-RevId: 160663025
|
|
|
|
|
|
|
|
|
|
|
|
| |
ScopedTemporaryDirectory now makes all files
writable before attempting to delete them. This is
important on Windows where readonly files cannot
be deleted, the attempt resulting in an exception.
See https://github.com/bazelbuild/bazel/issues/3264
Change-Id: If79478a4b419c05d77ce89cc30cb701d42df1b75
PiperOrigin-RevId: 160644599
|
|
|
|
|
|
| |
Automated formatting fixes standardize the @Option annotation.
PiperOrigin-RevId: 160582653
|
|
|
|
|
|
|
|
| |
desugaring Long.compare(long, long) is only enabled if either --min_sdk_version
< 19 or --rewrite_calls_to_long_compare is specified.
RELNOTES: set --rewrite_calls_to_long_compare to false by default.
PiperOrigin-RevId: 160578028
|
|
|
|
|
|
| |
Automated formatting fixes standardize the @Option annotation.
PiperOrigin-RevId: 160567787
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 160461708
|
|
|
|
|
|
|
| |
then we use pop2 to pop the value out of the stack.
RELNOTES: None
PiperOrigin-RevId: 160453904
|
|
|
|
|
|
|
|
|
| |
*) Changed the GenerateRobolectricResourceSymbolsAction to merge duplicate namespaces from the dependency list input.
*) RClassGenerator throws if an existing R.class file exists for that package.
*) New test for duplicate package dependencies
RELNOTES: none
PiperOrigin-RevId: 160436937
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
This CL checks whether an interface has default methods and fields. If yes (needs to be initialized when the interface is loaded), it injects field access code
to access the interface fields in the <clinit> of the companion class.
We also create a constant $$CONSTANT$$ in the companion class.
Then for all the classes that implement the interface, we inject GETSTATIC in the class <clinit> to the $$CONSTANT$$ of the companion class of the interface. This indirection is to avoid the IllegalAccessError when the interface is package private.
Note that accessing an arbitrary interface field does not guarantee the
interface will be initialized. We need to access the field that is initialized
in the interface static initializer.
RELNOTES: None
PiperOrigin-RevId: 160414671
|
|
|
|
|
|
|
|
| |
Move the default from the annotation to every mention. This makes the incompleteness explicit. Will add the defaults to test targets in a separate change.
Once all dependencies are cleaned up, the Option annotation will no longer allow options without the documentationCategory or effectTag, to prevent new options being added without categories while we migrate to the new option categorization.
PiperOrigin-RevId: 160281252
|
|
|
|
|
|
|
|
|
|
|
| |
--minimal-main-dex.
This matches dx's behavior.
Previously, DexFileMerger would override --multidex=off with --multidex=minimal if either --main-dex-list or --minimal-main-dex were passed.
RELNOTES: Incremental dexing errors on combination of --multidex=off and either --main-dex-list or --minimal-main-dex.
PiperOrigin-RevId: 159858242
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Original change description ***
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.
This CL checks whether an interface has default me...
***
ROLLBACK_OF=159496992
NO_SQ=PURE_ROLLBACK
RELNOTES: None
PiperOrigin-RevId: 159545752
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
This CL checks whether an interface has default methods and fields. If yes (needs to be initialized when the interface is loaded), it injects field access code
to access the interface fields in the <clinit> of the companion class.
We also create a constant $$CONSTANT$$ in the companion class.
Then for all the classes that implement the interface, we inject GETSTATIC in the class <clinit> to the $$CONSTANT$$ of the companion class of the interface. This indirection is to avoid the IllegalAccessError when the interface is package private.
Note that accessing an arbitrary interface field does not guarantee the
interface will be initialized. We need to access the field that is initialized
in the interface static initializer.
RELNOTES: None
PiperOrigin-RevId: 159496992
|
|
|
|
|
| |
RELNOTES: none
PiperOrigin-RevId: 159263527
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Appears that the generated R classes are not correct, causing test failures.
*** Original change description ***
Automated g4 rollback of commit 1be84ee92a825694b0c0026ac77134f8a084bd9c.
*** Reason for rollback ***
Rolling forward with the generated resources directory being created for tests without resources.
*** Original change description ***
Automated g4 rollback of commit d028d7854d3e95d97143945a1ec32944e5e4594b.
*** Reason for rollback ***
Breaks 1000+ targets in the depot: []
*** Original change description ***
Generate pre-reconciled ids R classes for dependen...
***
RELNOTES: None
PiperOrigin-RevId: 159032530
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Rolling forward with the generated resources directory being created for tests without resources.
*** Original change description ***
Automated g4 rollback of commit d028d7854d3e95d97143945a1ec32944e5e4594b.
*** Reason for rollback ***
Breaks 1000+ targets in the depot: []
*** Original change description ***
Generate pre-reconciled ids R classes for dependency libraries with resources
in the transitive closure of robolectric tests.
RELNOTES: None
PiperOrigin-RevId: 158756991
|
|
|
|
|
|
|
| |
class in DefaultMethodClassFixer to fix the bug b/38255926
RELNOTES: n/a
PiperOrigin-RevId: 158561127
|
|
|
|
|
|
|
| |
For all declared non-premitive fields, this CL sets each one to null.
RELNOTES: n/na
PiperOrigin-RevId: 158305638
|
|
|
|
|
| |
RELNOTES: n/na
PiperOrigin-RevId: 158162658
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks 1000+ targets in the depot: []
*** Original change description ***
Generate pre-reconciled ids R classes for dependency libraries with resources
in the transitive closure of robolectric tests.
RELNOTES: None
PiperOrigin-RevId: 158159550
|
|
|
|
|
|
|
| |
classpath. Now it prints the name of the class that is under desugaring.
RELNOTES: n/a
PiperOrigin-RevId: 157889131
|
|
|
|
|
|
|
| |
in the transitive closure of robolectric tests.
RELNOTES: None
PiperOrigin-RevId: 157762190
|
|
|
|
|
| |
RELNOTES: none
PiperOrigin-RevId: 157490771
|
|
|
|
|
|
|
|
| |
append a suffix to the method name, so as to avoid name clash in the companion
class.
RELNOTES: n/a
PiperOrigin-RevId: 157021961
|
|
|
|
|
|
|
| |
they were over-writable in all cases instead of differentiating by attribute type.
RELNOTES: None.
PiperOrigin-RevId: 156999284
|
|
|
|
|
|
|
|
|
| |
This includes some refactoring:
* Move the symbol deserialization our of the merger and into the ParsedAndroidData (probably move again.)
* Change the FailedFutureAggregator generics to work more callables
RELNOTES: None
PiperOrigin-RevId: 156863698
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before CL 155913466, Desugar was not working when dumpDirectory was a relative path because of an extra/incorrect resolve() that ended up duplicating such a relative path.
CL 155913466 fixed this by converting Desugar's dumpDirectory to an absolute path. However, CL 156257767 introduced a check that Desugar's dumpDirectory must match the one in Java's InnerClassLambdaMetafactory, which broke the case of a relative path again.
Therefore, this CL undoes the conversion to absolute path again (so that Desugar's path matches that in InnerClassLambdaMetafactory). Instead, to make relative paths work, it drops the unnecessary/incorrect call to resolve().
A regression test is left for a future CL (I don't have a dev environment set up that would allow me to easily write one).
RELNOTES: None.
PiperOrigin-RevId: 156852882
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before, we use Path.equals(Object), which will fail if we use
relative path in the system property. Now I use Files.isSameFile
which will check two paths point to the same file system
resource.
In https://github.com/bazelbuild/bazel/commit/69e855c7b0f0f7899a69a882cba0abd304233c97, I introduce the check to test whether setting
the system property for lambda meta factory succeeds. However,
the check does not consider relative path, which will always fail.
RELNOTES: n/a
PiperOrigin-RevId: 156796457
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 156747534
|
|
|
|
|
| |
RELNOTES: n/a
PiperOrigin-RevId: 156582965
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 156321468
|
|
|
|
|
|
|
|
|
|
| |
directory. This is achieved by checking InnerClassLambdaMetafactory.dumper's
dumpDir.
Also, if a user provides a dump folder, we verify whether the folder is empty.
RELNOTES: n/a
PiperOrigin-RevId: 156257767
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 156205544
|
|
|
|
|
|
|
| |
directory, output its path.
RELNOTES: n/a
PiperOrigin-RevId: 156187835
|
|
|
|
|
|
|
|
|
| |
* Extract the FieldInitializer with placeholder ids from the
AndroidResourceClassWriter
* Extract a resource sink interface from the AndroidResourceClassWriter (a little renaming, the change isn't actually that big.)
RELNOTES: None
PiperOrigin-RevId: 156053478
|
|
|
|
|
|
|
|
|
| |
When dumpDirectory (jdk.internal.lambda.dumpProxyClasses) is a relative path, Desugar was duplicating that path because it was resolving lambdaClass.getKey() (which contained already the the dumpDirectory path).
Fixed by ensuring dumpDirectory is always an absolute path.
RELNOTES: n/a
PiperOrigin-RevId: 155913466
|