aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/protobuf
diff options
context:
space:
mode:
authorGravatar kmb <kmb@google.com>2017-09-30 02:09:56 +0200
committerGravatar Klaus Aehlig <aehlig@google.com>2017-10-02 10:31:59 +0200
commit06feddcd3e56ae31cb3eaa8ce648b5c4f3da399c (patch)
tree9c37129a4a0aa5ac695d6be1096c16d7edb64061 /src/main/protobuf
parent3a35efffd8ded3685bf56e897c4d9c7007b8836d (diff)
Add proto to encode desugaring metadata
RELNOTES: none PiperOrigin-RevId: 170553034
Diffstat (limited to 'src/main/protobuf')
-rw-r--r--src/main/protobuf/BUILD1
-rw-r--r--src/main/protobuf/desugar_deps.proto61
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
+}