diff options
author | kmb <kmb@google.com> | 2017-09-30 02:09:56 +0200 |
---|---|---|
committer | Klaus Aehlig <aehlig@google.com> | 2017-10-02 10:31:59 +0200 |
commit | 06feddcd3e56ae31cb3eaa8ce648b5c4f3da399c (patch) | |
tree | 9c37129a4a0aa5ac695d6be1096c16d7edb64061 /src/main/protobuf | |
parent | 3a35efffd8ded3685bf56e897c4d9c7007b8836d (diff) |
Add proto to encode desugaring metadata
RELNOTES: none
PiperOrigin-RevId: 170553034
Diffstat (limited to 'src/main/protobuf')
-rw-r--r-- | src/main/protobuf/BUILD | 1 | ||||
-rw-r--r-- | src/main/protobuf/desugar_deps.proto | 61 |
2 files changed, 62 insertions, 0 deletions
diff --git a/src/main/protobuf/BUILD b/src/main/protobuf/BUILD index a9ccaec403..6b543fcc8b 100644 --- a/src/main/protobuf/BUILD +++ b/src/main/protobuf/BUILD @@ -15,6 +15,7 @@ FILES = [ "command_server", "crosstool_config", "deps", + "desugar_deps", "extra_actions_base", "invocation_policy", "java_compilation", diff --git a/src/main/protobuf/desugar_deps.proto b/src/main/protobuf/desugar_deps.proto new file mode 100644 index 0000000000..6ed67feb14 --- /dev/null +++ b/src/main/protobuf/desugar_deps.proto @@ -0,0 +1,61 @@ +// Copyright 2017 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto2"; + +package bazel.tools.desugar; + +option optimize_for = LITE_RUNTIME; // less generated C++ code +// option java_api_version = 2; +option java_package = "com.google.devtools.build.android.desugar.proto"; + +// Top-level message that describes a desugared Jar file. +message DesugarDepsInfo { + repeated Dependency assume_present = 1; + repeated Dependency missing_interface = 2; + repeated InterfaceDetails interface_with_supertypes = 3; + repeated InterfaceWithCompanion interface_with_companion = 4; + // Next ID: 5 +} + +// Dependency between two types, may be transitive or direct. +message Dependency { + optional Type origin = 1; + optional Type target = 2; + // Next ID: 3 +} + +// Summary of relevant information about an interface, to avoid parsing it. +message InterfaceDetails { + optional Type origin = 1; + repeated Type extended_interface = 2; + // Next ID: 3 +} + +// Details about an interface with a companion class. This helps distinguishing +// interfaces with default methods, which are a subset, and can also be used to +// check for the presence of expected companion classes. +message InterfaceWithCompanion { + optional Type origin = 1; + optional int32 num_default_methods = 2; + // Next ID: 3 +} + +// Wrapper around a JVMS 4.2.1 binary class or interface name. +message Type { + // JVMS 4.2.1 binary class name, e.g., java/lang/String, similar to how a + // class or interface name would appear in bytecode. + optional string binary_name = 1; + // Next ID: 2 +} |