diff options
Diffstat (limited to 'src')
-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 +} |