From 71a2471767fd7ab3c1c234a11e9e9295bc487f67 Mon Sep 17 00:00:00 2001 From: Jake Zimmerman Date: Wed, 26 Apr 2023 14:17:11 -0700 Subject: [PATCH 1/3] Add two options for minimizing RBI output In our codebase we're fighting a constant battle against the codebase's growing size. Having a larger codebase makes basically everything slower, from creating an initial dev environment to type checking code to creating deploy artifacts. Generated protobuf files end up contributing a lot to the bloat of our codebase. These two options make protoc-gen-rbi generate less code. The options: - `hide_common_methods` This option hides the common methods like `decode_json` and `to_h` that protoc-gen-rbi would otherwise create. While it's most accurate to have those methods be defined on these classes, it's actually possible to get basically the same type safety by defining these methods elsewhere, using `T.attached_class`. - `use_abstract_message` A recent `google-protobuf` PR changed the superclass of all message classes: The new superclass, `Google::Protobuf::AbstractMessage`, is technically private. However, having a common superclass is quite convenient for a number of reasons, and codebases may wish forcibly make this class publicly visible. If that's been done, it's nice to be able to mention that superclass instead of the `include` and `extend` calls, because `AbstractMessage` is exactly defined by just an empty class with those two mixins, and getting rid of those calls generates less code. For more discussions on the merits of making this class public: I'm happy to split this change apart if you think it would be better that way. On Stripe's codebase, these changes amount to a 4% reduction in Sorbet's peak memory usage, and a 1% improvement to time spent type checking, so I'm quite eager to get this change or some equivalent version of it landed. --- main.go | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index d2bbda0..9f44913 100644 --- a/main.go +++ b/main.go @@ -18,9 +18,19 @@ var ( type rbiModule struct { *pgs.ModuleBase - ctx pgsgo.Context - tpl *template.Template - serviceTpl *template.Template + ctx pgsgo.Context + tpl *template.Template + serviceTpl *template.Template + hideCommonMethods bool + useAbstractMessage bool +} + +func (m *rbiModule) HideCommonMethods() bool { + return m.hideCommonMethods +} + +func (m *rbiModule) UseAbstractMessage() bool { + return m.useAbstractMessage } func RBI() *rbiModule { return &rbiModule{ModuleBase: &pgs.ModuleBase{}} } @@ -29,6 +39,18 @@ func (m *rbiModule) InitContext(c pgs.BuildContext) { m.ModuleBase.InitContext(c) m.ctx = pgsgo.InitContext(c.Parameters()) + hideCommonMethods, err := m.ctx.Params().BoolDefault("hide_common_methods", false) + if err != nil { + log.Panicf("Bad parameter: hide_common_methods\n") + } + m.hideCommonMethods = hideCommonMethods + + useAbstractMessage, err := m.ctx.Params().BoolDefault("use_abstract_message", false) + if err != nil { + log.Panicf("Bad parameter: use_abstract_message\n") + } + m.useAbstractMessage = useAbstractMessage + funcs := map[string]interface{}{ "increment": m.increment, "optional": m.optional, @@ -42,6 +64,8 @@ func (m *rbiModule) InitContext(c pgs.BuildContext) { "rubyFieldValue": ruby_types.RubyFieldValue, "rubyMethodParamType": ruby_types.RubyMethodParamType, "rubyMethodReturnType": ruby_types.RubyMethodReturnType, + "hideCommonMethods": m.HideCommonMethods, + "useAbstractMessage": m.UseAbstractMessage, } m.tpl = template.Must(template.New("rbi").Funcs(funcs).Parse(tpl)) @@ -111,10 +135,10 @@ const tpl = `# Code generated by protoc-gen-rbi. DO NOT EDIT. # source: {{ .InputPath }} # typed: strict {{ range .AllMessages }} -class {{ rubyMessageType . }} +class {{ rubyMessageType . }}{{ if useAbstractMessage }} < ::Google::Protobuf::AbstractMessage{{ else }} include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - +{{ end }}{{ if hideCommonMethods }}{{ else }} sig { params(str: String).returns({{ rubyMessageType . }}) } def self.decode(str) end @@ -134,7 +158,7 @@ class {{ rubyMessageType . }} sig { returns(::Google::Protobuf::Descriptor) } def self.descriptor end -{{ if willGenerateInvalidRuby .Fields }} +{{ end }}{{ if willGenerateInvalidRuby .Fields }} # Constants of the form Constant_1 are invalid. We've declined to type this as a result, taking a hash instead. sig { params(args: T::Hash[T.untyped, T.untyped]).void } def initialize(args); end @@ -171,7 +195,7 @@ class {{ rubyMessageType . }} sig { returns(T.nilable(Symbol)) } def {{ .Name }} end -{{ end }}{{ end }} +{{ end }}{{ end }}{{ if hideCommonMethods }}{{ else }} sig { params(field: String).returns(T.untyped) } def [](field) end @@ -183,7 +207,7 @@ class {{ rubyMessageType . }} sig { returns(T::Hash[Symbol, T.untyped]) } def to_h end -end +{{ end }}end {{ end }}{{ range .AllEnums }} module {{ rubyMessageType . }}{{ range .Values }} self::{{ .Name }} = T.let({{ .Value }}, Integer){{ end }} From 5a16edb31d6836369a7d9833b10d66ce10b3705a Mon Sep 17 00:00:00 2001 From: Jake Zimmerman Date: Wed, 26 Apr 2023 14:31:43 -0700 Subject: [PATCH 2/3] Capture what the defaults look like --- testdata/all/broken_field_name_pb.rbi | 68 ++ testdata/all/broken_package_name_pb.rbi | 62 ++ testdata/all/example_pb.rbi | 121 +++ testdata/all/example_services_pb.rbi | 29 + testdata/all/lowercase_pb.rbi | 121 +++ testdata/all/services_pb.rbi | 3 + testdata/all/services_services_pb.rbi | 79 ++ testdata/all/subdir/messages_pb.rbi | 760 ++++++++++++++++++ .../broken_field_name_pb.rbi | 68 ++ .../broken_package_name_pb.rbi | 62 ++ testdata/hide_common_methods/example_pb.rbi | 121 +++ .../example_services_pb.rbi | 29 + testdata/hide_common_methods/lowercase_pb.rbi | 121 +++ testdata/hide_common_methods/services_pb.rbi | 3 + .../services_services_pb.rbi | 79 ++ .../subdir/messages_pb.rbi | 760 ++++++++++++++++++ .../broken_field_name_pb.rbi | 68 ++ .../broken_package_name_pb.rbi | 62 ++ testdata/use_abstract_message/example_pb.rbi | 121 +++ .../example_services_pb.rbi | 29 + .../use_abstract_message/lowercase_pb.rbi | 121 +++ testdata/use_abstract_message/services_pb.rbi | 3 + .../services_services_pb.rbi | 79 ++ .../subdir/messages_pb.rbi | 760 ++++++++++++++++++ 24 files changed, 3729 insertions(+) create mode 100644 testdata/all/broken_field_name_pb.rbi create mode 100644 testdata/all/broken_package_name_pb.rbi create mode 100644 testdata/all/example_pb.rbi create mode 100644 testdata/all/example_services_pb.rbi create mode 100644 testdata/all/lowercase_pb.rbi create mode 100644 testdata/all/services_pb.rbi create mode 100644 testdata/all/services_services_pb.rbi create mode 100644 testdata/all/subdir/messages_pb.rbi create mode 100644 testdata/hide_common_methods/broken_field_name_pb.rbi create mode 100644 testdata/hide_common_methods/broken_package_name_pb.rbi create mode 100644 testdata/hide_common_methods/example_pb.rbi create mode 100644 testdata/hide_common_methods/example_services_pb.rbi create mode 100644 testdata/hide_common_methods/lowercase_pb.rbi create mode 100644 testdata/hide_common_methods/services_pb.rbi create mode 100644 testdata/hide_common_methods/services_services_pb.rbi create mode 100644 testdata/hide_common_methods/subdir/messages_pb.rbi create mode 100644 testdata/use_abstract_message/broken_field_name_pb.rbi create mode 100644 testdata/use_abstract_message/broken_package_name_pb.rbi create mode 100644 testdata/use_abstract_message/example_pb.rbi create mode 100644 testdata/use_abstract_message/example_services_pb.rbi create mode 100644 testdata/use_abstract_message/lowercase_pb.rbi create mode 100644 testdata/use_abstract_message/services_pb.rbi create mode 100644 testdata/use_abstract_message/services_services_pb.rbi create mode 100644 testdata/use_abstract_message/subdir/messages_pb.rbi diff --git a/testdata/all/broken_field_name_pb.rbi b/testdata/all/broken_field_name_pb.rbi new file mode 100644 index 0000000..72231e5 --- /dev/null +++ b/testdata/all/broken_field_name_pb.rbi @@ -0,0 +1,68 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: broken_field_name.proto +# typed: strict + +class Example::Broken_field_name + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Broken_field_name) } + def self.decode(str) + end + + sig { params(msg: Example::Broken_field_name).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Broken_field_name) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Broken_field_name, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + # Constants of the form Constant_1 are invalid. We've declined to type this as a result, taking a hash instead. + sig { params(args: T::Hash[T.untyped, T.untyped]).void } + def initialize(args); end + + sig { returns(String) } + def name + end + + sig { params(value: String).void } + def name=(value) + end + + sig { void } + def clear_name + end + + sig { returns(String) } + def Field_name_1 + end + + sig { params(value: String).void } + def Field_name_1=(value) + end + + sig { void } + def clear_Field_name_1 + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end diff --git a/testdata/all/broken_package_name_pb.rbi b/testdata/all/broken_package_name_pb.rbi new file mode 100644 index 0000000..1e9599c --- /dev/null +++ b/testdata/all/broken_package_name_pb.rbi @@ -0,0 +1,62 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: broken_package_name.proto +# typed: strict + +class Package2test::Message2test + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Package2test::Message2test) } + def self.decode(str) + end + + sig { params(msg: Package2test::Message2test).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Package2test::Message2test) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Package2test::Message2test, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + field2test: T.nilable(String) + ).void + end + def initialize( + field2test: "" + ) + end + + sig { returns(String) } + def field2test + end + + sig { params(value: String).void } + def field2test=(value) + end + + sig { void } + def clear_field2test + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end diff --git a/testdata/all/example_pb.rbi b/testdata/all/example_pb.rbi new file mode 100644 index 0000000..4309f5c --- /dev/null +++ b/testdata/all/example_pb.rbi @@ -0,0 +1,121 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: example.proto +# typed: strict + +class Example::Request + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Request) } + def self.decode(str) + end + + sig { params(msg: Example::Request).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Request) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Request, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + name: T.nilable(String) + ).void + end + def initialize( + name: "" + ) + end + + sig { returns(String) } + def name + end + + sig { params(value: String).void } + def name=(value) + end + + sig { void } + def clear_name + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Example::Response + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Response) } + def self.decode(str) + end + + sig { params(msg: Example::Response).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Response) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Response, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + greeting: T.nilable(String) + ).void + end + def initialize( + greeting: "" + ) + end + + sig { returns(String) } + def greeting + end + + sig { params(value: String).void } + def greeting=(value) + end + + sig { void } + def clear_greeting + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end diff --git a/testdata/all/example_services_pb.rbi b/testdata/all/example_services_pb.rbi new file mode 100644 index 0000000..b4a2322 --- /dev/null +++ b/testdata/all/example_services_pb.rbi @@ -0,0 +1,29 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: example.proto +# typed: strict + +module Example::Greeter + class Service + include ::GRPC::GenericService + end + + class Stub < ::GRPC::ClientStub + sig do + params( + host: String, + creds: T.any(::GRPC::Core::ChannelCredentials, Symbol), + kw: T.untyped, + ).void + end + def initialize(host, creds, **kw) + end + + sig do + params( + request: Example::Request + ).returns(Example::Response) + end + def hello(request) + end + end +end diff --git a/testdata/all/lowercase_pb.rbi b/testdata/all/lowercase_pb.rbi new file mode 100644 index 0000000..65fd4a3 --- /dev/null +++ b/testdata/all/lowercase_pb.rbi @@ -0,0 +1,121 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: lowercase.proto +# typed: strict + +class Example::Lowercase + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Lowercase) } + def self.decode(str) + end + + sig { params(msg: Example::Lowercase).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Lowercase) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Lowercase, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + example_proto_field: T.nilable(String) + ).void + end + def initialize( + example_proto_field: "" + ) + end + + sig { returns(String) } + def example_proto_field + end + + sig { params(value: String).void } + def example_proto_field=(value) + end + + sig { void } + def clear_example_proto_field + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Example::Lowercase_with_underscores + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Lowercase_with_underscores) } + def self.decode(str) + end + + sig { params(msg: Example::Lowercase_with_underscores).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Lowercase_with_underscores) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Lowercase_with_underscores, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + example_proto_field: T.nilable(String) + ).void + end + def initialize( + example_proto_field: "" + ) + end + + sig { returns(String) } + def example_proto_field + end + + sig { params(value: String).void } + def example_proto_field=(value) + end + + sig { void } + def clear_example_proto_field + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end diff --git a/testdata/all/services_pb.rbi b/testdata/all/services_pb.rbi new file mode 100644 index 0000000..808f87b --- /dev/null +++ b/testdata/all/services_pb.rbi @@ -0,0 +1,3 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: services.proto +# typed: strict diff --git a/testdata/all/services_services_pb.rbi b/testdata/all/services_services_pb.rbi new file mode 100644 index 0000000..9dae5e2 --- /dev/null +++ b/testdata/all/services_services_pb.rbi @@ -0,0 +1,79 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: services.proto +# typed: strict + +module Testdata::SimpleMathematics + class Service + include ::GRPC::GenericService + end + + class Stub < ::GRPC::ClientStub + sig do + params( + host: String, + creds: T.any(::GRPC::Core::ChannelCredentials, Symbol), + kw: T.untyped, + ).void + end + def initialize(host, creds, **kw) + end + + sig do + params( + request: Testdata::Subdir::IntegerMessage + ).returns(Testdata::Subdir::IntegerMessage) + end + def negate(request) + end + + sig do + params( + request: T::Enumerable[Testdata::Subdir::IntegerMessage] + ).returns(Testdata::Subdir::IntegerMessage) + end + def median(request) + end + end +end + +module Testdata::ComplexMathematics + class Service + include ::GRPC::GenericService + end + + class Stub < ::GRPC::ClientStub + sig do + params( + host: String, + creds: T.any(::GRPC::Core::ChannelCredentials, Symbol), + kw: T.untyped, + ).void + end + def initialize(host, creds, **kw) + end + + sig do + params( + request: Testdata::Subdir::IntegerMessage + ).returns(T::Enumerable[Testdata::Subdir::IntegerMessage]) + end + def fibonacci(request) + end + + sig do + params( + request: T::Enumerable[Testdata::Subdir::IntegerMessage] + ).returns(T::Enumerable[Testdata::Subdir::IntegerMessage]) + end + def running_max(request) + end + + sig do + params( + request: T::Enumerable[Testdata::Subdir::IntegerMessage] + ).returns(T::Enumerable[Testdata::Subdir::IntegerMessage]) + end + def periodic_max(request) + end + end +end diff --git a/testdata/all/subdir/messages_pb.rbi b/testdata/all/subdir/messages_pb.rbi new file mode 100644 index 0000000..4bd0e3e --- /dev/null +++ b/testdata/all/subdir/messages_pb.rbi @@ -0,0 +1,760 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: subdir/messages.proto +# typed: strict + +class Testdata::Subdir::IntegerMessage + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::IntegerMessage) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + value: T.nilable(Integer) + ).void + end + def initialize( + value: 0 + ) + end + + sig { returns(Integer) } + def value + end + + sig { params(value: Integer).void } + def value=(value) + end + + sig { void } + def clear_value + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::Empty + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::Empty) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::Empty).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::Empty) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::Empty, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig {void} + def initialize; end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::AllTypes + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::AllTypes) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::AllTypes).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::AllTypes) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::AllTypes, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + double_value: T.nilable(Float), + float_value: T.nilable(Float), + int32_value: T.nilable(Integer), + int64_value: T.nilable(Integer), + uint32_value: T.nilable(Integer), + uint64_value: T.nilable(Integer), + sint32_value: T.nilable(Integer), + sint64_value: T.nilable(Integer), + fixed32_value: T.nilable(Integer), + fixed64_value: T.nilable(Integer), + sfixed32_value: T.nilable(Integer), + sfixed64_value: T.nilable(Integer), + bool_value: T.nilable(T::Boolean), + string_value: T.nilable(String), + bytes_value: T.nilable(String), + enum_value: T.nilable(T.any(Symbol, String, Integer)), + alias_enum_value: T.nilable(T.any(Symbol, String, Integer)), + nested_value: T.nilable(Testdata::Subdir::IntegerMessage), + repeated_nested_value: T.nilable(T::Array[T.nilable(Testdata::Subdir::IntegerMessage)]), + repeated_int32_value: T.nilable(T::Array[Integer]), + repeated_enum: T.nilable(T::Array[T.any(Symbol, String, Integer)]), + inner_value: T.nilable(Testdata::Subdir::AllTypes::InnerMessage), + inner_nested_value: T.nilable(Testdata::Subdir::IntegerMessage::InnerNestedMessage), + name: T.nilable(String), + sub_message: T.nilable(T::Boolean), + string_map_value: T.nilable(T::Hash[String, T.nilable(Testdata::Subdir::IntegerMessage)]), + int32_map_value: T.nilable(T::Hash[Integer, T.nilable(Testdata::Subdir::IntegerMessage)]), + enum_map_value: T.nilable(T::Hash[String, T.any(Symbol, String, Integer)]), + optional_bool: T.nilable(T::Boolean) + ).void + end + def initialize( + double_value: 0.0, + float_value: 0.0, + int32_value: 0, + int64_value: 0, + uint32_value: 0, + uint64_value: 0, + sint32_value: 0, + sint64_value: 0, + fixed32_value: 0, + fixed64_value: 0, + sfixed32_value: 0, + sfixed64_value: 0, + bool_value: false, + string_value: "", + bytes_value: "", + enum_value: :UNIVERSAL, + alias_enum_value: :UNKNOWN, + nested_value: nil, + repeated_nested_value: [], + repeated_int32_value: [], + repeated_enum: [], + inner_value: nil, + inner_nested_value: nil, + name: "", + sub_message: false, + string_map_value: ::Google::Protobuf::Map.new(:string, :message, Testdata::Subdir::IntegerMessage), + int32_map_value: ::Google::Protobuf::Map.new(:int32, :message, Testdata::Subdir::IntegerMessage), + enum_map_value: ::Google::Protobuf::Map.new(:string, :enum), + optional_bool: false + ) + end + + sig { returns(Float) } + def double_value + end + + sig { params(value: Float).void } + def double_value=(value) + end + + sig { void } + def clear_double_value + end + + sig { returns(Float) } + def float_value + end + + sig { params(value: Float).void } + def float_value=(value) + end + + sig { void } + def clear_float_value + end + + sig { returns(Integer) } + def int32_value + end + + sig { params(value: Integer).void } + def int32_value=(value) + end + + sig { void } + def clear_int32_value + end + + sig { returns(Integer) } + def int64_value + end + + sig { params(value: Integer).void } + def int64_value=(value) + end + + sig { void } + def clear_int64_value + end + + sig { returns(Integer) } + def uint32_value + end + + sig { params(value: Integer).void } + def uint32_value=(value) + end + + sig { void } + def clear_uint32_value + end + + sig { returns(Integer) } + def uint64_value + end + + sig { params(value: Integer).void } + def uint64_value=(value) + end + + sig { void } + def clear_uint64_value + end + + sig { returns(Integer) } + def sint32_value + end + + sig { params(value: Integer).void } + def sint32_value=(value) + end + + sig { void } + def clear_sint32_value + end + + sig { returns(Integer) } + def sint64_value + end + + sig { params(value: Integer).void } + def sint64_value=(value) + end + + sig { void } + def clear_sint64_value + end + + sig { returns(Integer) } + def fixed32_value + end + + sig { params(value: Integer).void } + def fixed32_value=(value) + end + + sig { void } + def clear_fixed32_value + end + + sig { returns(Integer) } + def fixed64_value + end + + sig { params(value: Integer).void } + def fixed64_value=(value) + end + + sig { void } + def clear_fixed64_value + end + + sig { returns(Integer) } + def sfixed32_value + end + + sig { params(value: Integer).void } + def sfixed32_value=(value) + end + + sig { void } + def clear_sfixed32_value + end + + sig { returns(Integer) } + def sfixed64_value + end + + sig { params(value: Integer).void } + def sfixed64_value=(value) + end + + sig { void } + def clear_sfixed64_value + end + + sig { returns(T::Boolean) } + def bool_value + end + + sig { params(value: T::Boolean).void } + def bool_value=(value) + end + + sig { void } + def clear_bool_value + end + + sig { returns(String) } + def string_value + end + + sig { params(value: String).void } + def string_value=(value) + end + + sig { void } + def clear_string_value + end + + sig { returns(String) } + def bytes_value + end + + sig { params(value: String).void } + def bytes_value=(value) + end + + sig { void } + def clear_bytes_value + end + + sig { returns(Symbol) } + def enum_value + end + + sig { params(value: T.any(Symbol, String, Integer)).void } + def enum_value=(value) + end + + sig { void } + def clear_enum_value + end + + sig { returns(Symbol) } + def alias_enum_value + end + + sig { params(value: T.any(Symbol, String, Integer)).void } + def alias_enum_value=(value) + end + + sig { void } + def clear_alias_enum_value + end + + sig { returns(T.nilable(Testdata::Subdir::IntegerMessage)) } + def nested_value + end + + sig { params(value: T.nilable(Testdata::Subdir::IntegerMessage)).void } + def nested_value=(value) + end + + sig { void } + def clear_nested_value + end + + sig { returns(T::Array[T.nilable(Testdata::Subdir::IntegerMessage)]) } + def repeated_nested_value + end + + sig { params(value: ::Google::Protobuf::RepeatedField).void } + def repeated_nested_value=(value) + end + + sig { void } + def clear_repeated_nested_value + end + + sig { returns(T::Array[Integer]) } + def repeated_int32_value + end + + sig { params(value: ::Google::Protobuf::RepeatedField).void } + def repeated_int32_value=(value) + end + + sig { void } + def clear_repeated_int32_value + end + + sig { returns(T::Array[Symbol]) } + def repeated_enum + end + + sig { params(value: ::Google::Protobuf::RepeatedField).void } + def repeated_enum=(value) + end + + sig { void } + def clear_repeated_enum + end + + sig { returns(T.nilable(Testdata::Subdir::AllTypes::InnerMessage)) } + def inner_value + end + + sig { params(value: T.nilable(Testdata::Subdir::AllTypes::InnerMessage)).void } + def inner_value=(value) + end + + sig { void } + def clear_inner_value + end + + sig { returns(T.nilable(Testdata::Subdir::IntegerMessage::InnerNestedMessage)) } + def inner_nested_value + end + + sig { params(value: T.nilable(Testdata::Subdir::IntegerMessage::InnerNestedMessage)).void } + def inner_nested_value=(value) + end + + sig { void } + def clear_inner_nested_value + end + + sig { returns(String) } + def name + end + + sig { params(value: String).void } + def name=(value) + end + + sig { void } + def clear_name + end + + sig { returns(T::Boolean) } + def sub_message + end + + sig { params(value: T::Boolean).void } + def sub_message=(value) + end + + sig { void } + def clear_sub_message + end + + sig { returns(T::Hash[String, T.nilable(Testdata::Subdir::IntegerMessage)]) } + def string_map_value + end + + sig { params(value: ::Google::Protobuf::Map).void } + def string_map_value=(value) + end + + sig { void } + def clear_string_map_value + end + + sig { returns(T::Hash[Integer, T.nilable(Testdata::Subdir::IntegerMessage)]) } + def int32_map_value + end + + sig { params(value: ::Google::Protobuf::Map).void } + def int32_map_value=(value) + end + + sig { void } + def clear_int32_map_value + end + + sig { returns(T::Hash[String, Symbol]) } + def enum_map_value + end + + sig { params(value: ::Google::Protobuf::Map).void } + def enum_map_value=(value) + end + + sig { void } + def clear_enum_map_value + end + + sig { returns(T::Boolean) } + def optional_bool + end + + sig { params(value: T::Boolean).void } + def optional_bool=(value) + end + + sig { void } + def clear_optional_bool + end + + sig { returns(T::Boolean) } + def has_optional_bool? + end + + sig { returns(T.nilable(Symbol)) } + def test_oneof + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::IntegerMessage::InnerNestedMessage + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::IntegerMessage::InnerNestedMessage) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage::InnerNestedMessage).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage::InnerNestedMessage) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage::InnerNestedMessage, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + value: T.nilable(Float) + ).void + end + def initialize( + value: 0.0 + ) + end + + sig { returns(Float) } + def value + end + + sig { params(value: Float).void } + def value=(value) + end + + sig { void } + def clear_value + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::IntegerMessage::NestedEmpty + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::IntegerMessage::NestedEmpty) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage::NestedEmpty).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage::NestedEmpty) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage::NestedEmpty, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig {void} + def initialize; end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::AllTypes::InnerMessage + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::AllTypes::InnerMessage) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::AllTypes::InnerMessage).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::AllTypes::InnerMessage) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::AllTypes::InnerMessage, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + value: T.nilable(String) + ).void + end + def initialize( + value: "" + ) + end + + sig { returns(String) } + def value + end + + sig { params(value: String).void } + def value=(value) + end + + sig { void } + def clear_value + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +module Testdata::Subdir::AllTypes::Corpus + self::UNIVERSAL = T.let(0, Integer) + self::WEB = T.let(1, Integer) + self::IMAGES = T.let(2, Integer) + self::LOCAL = T.let(3, Integer) + self::NEWS = T.let(4, Integer) + self::PRODUCTS = T.let(5, Integer) + self::VIDEO = T.let(6, Integer) + self::END = T.let(7, Integer) + + sig { params(value: Integer).returns(T.nilable(Symbol)) } + def self.lookup(value) + end + + sig { params(value: Symbol).returns(T.nilable(Integer)) } + def self.resolve(value) + end + + sig { returns(::Google::Protobuf::EnumDescriptor) } + def self.descriptor + end +end + +module Testdata::Subdir::AllTypes::EnumAllowingAlias + self::UNKNOWN = T.let(0, Integer) + self::STARTED = T.let(1, Integer) + self::RUNNING = T.let(1, Integer) + + sig { params(value: Integer).returns(T.nilable(Symbol)) } + def self.lookup(value) + end + + sig { params(value: Symbol).returns(T.nilable(Integer)) } + def self.resolve(value) + end + + sig { returns(::Google::Protobuf::EnumDescriptor) } + def self.descriptor + end +end diff --git a/testdata/hide_common_methods/broken_field_name_pb.rbi b/testdata/hide_common_methods/broken_field_name_pb.rbi new file mode 100644 index 0000000..72231e5 --- /dev/null +++ b/testdata/hide_common_methods/broken_field_name_pb.rbi @@ -0,0 +1,68 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: broken_field_name.proto +# typed: strict + +class Example::Broken_field_name + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Broken_field_name) } + def self.decode(str) + end + + sig { params(msg: Example::Broken_field_name).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Broken_field_name) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Broken_field_name, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + # Constants of the form Constant_1 are invalid. We've declined to type this as a result, taking a hash instead. + sig { params(args: T::Hash[T.untyped, T.untyped]).void } + def initialize(args); end + + sig { returns(String) } + def name + end + + sig { params(value: String).void } + def name=(value) + end + + sig { void } + def clear_name + end + + sig { returns(String) } + def Field_name_1 + end + + sig { params(value: String).void } + def Field_name_1=(value) + end + + sig { void } + def clear_Field_name_1 + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end diff --git a/testdata/hide_common_methods/broken_package_name_pb.rbi b/testdata/hide_common_methods/broken_package_name_pb.rbi new file mode 100644 index 0000000..1e9599c --- /dev/null +++ b/testdata/hide_common_methods/broken_package_name_pb.rbi @@ -0,0 +1,62 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: broken_package_name.proto +# typed: strict + +class Package2test::Message2test + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Package2test::Message2test) } + def self.decode(str) + end + + sig { params(msg: Package2test::Message2test).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Package2test::Message2test) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Package2test::Message2test, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + field2test: T.nilable(String) + ).void + end + def initialize( + field2test: "" + ) + end + + sig { returns(String) } + def field2test + end + + sig { params(value: String).void } + def field2test=(value) + end + + sig { void } + def clear_field2test + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end diff --git a/testdata/hide_common_methods/example_pb.rbi b/testdata/hide_common_methods/example_pb.rbi new file mode 100644 index 0000000..4309f5c --- /dev/null +++ b/testdata/hide_common_methods/example_pb.rbi @@ -0,0 +1,121 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: example.proto +# typed: strict + +class Example::Request + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Request) } + def self.decode(str) + end + + sig { params(msg: Example::Request).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Request) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Request, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + name: T.nilable(String) + ).void + end + def initialize( + name: "" + ) + end + + sig { returns(String) } + def name + end + + sig { params(value: String).void } + def name=(value) + end + + sig { void } + def clear_name + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Example::Response + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Response) } + def self.decode(str) + end + + sig { params(msg: Example::Response).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Response) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Response, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + greeting: T.nilable(String) + ).void + end + def initialize( + greeting: "" + ) + end + + sig { returns(String) } + def greeting + end + + sig { params(value: String).void } + def greeting=(value) + end + + sig { void } + def clear_greeting + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end diff --git a/testdata/hide_common_methods/example_services_pb.rbi b/testdata/hide_common_methods/example_services_pb.rbi new file mode 100644 index 0000000..b4a2322 --- /dev/null +++ b/testdata/hide_common_methods/example_services_pb.rbi @@ -0,0 +1,29 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: example.proto +# typed: strict + +module Example::Greeter + class Service + include ::GRPC::GenericService + end + + class Stub < ::GRPC::ClientStub + sig do + params( + host: String, + creds: T.any(::GRPC::Core::ChannelCredentials, Symbol), + kw: T.untyped, + ).void + end + def initialize(host, creds, **kw) + end + + sig do + params( + request: Example::Request + ).returns(Example::Response) + end + def hello(request) + end + end +end diff --git a/testdata/hide_common_methods/lowercase_pb.rbi b/testdata/hide_common_methods/lowercase_pb.rbi new file mode 100644 index 0000000..65fd4a3 --- /dev/null +++ b/testdata/hide_common_methods/lowercase_pb.rbi @@ -0,0 +1,121 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: lowercase.proto +# typed: strict + +class Example::Lowercase + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Lowercase) } + def self.decode(str) + end + + sig { params(msg: Example::Lowercase).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Lowercase) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Lowercase, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + example_proto_field: T.nilable(String) + ).void + end + def initialize( + example_proto_field: "" + ) + end + + sig { returns(String) } + def example_proto_field + end + + sig { params(value: String).void } + def example_proto_field=(value) + end + + sig { void } + def clear_example_proto_field + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Example::Lowercase_with_underscores + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Lowercase_with_underscores) } + def self.decode(str) + end + + sig { params(msg: Example::Lowercase_with_underscores).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Lowercase_with_underscores) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Lowercase_with_underscores, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + example_proto_field: T.nilable(String) + ).void + end + def initialize( + example_proto_field: "" + ) + end + + sig { returns(String) } + def example_proto_field + end + + sig { params(value: String).void } + def example_proto_field=(value) + end + + sig { void } + def clear_example_proto_field + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end diff --git a/testdata/hide_common_methods/services_pb.rbi b/testdata/hide_common_methods/services_pb.rbi new file mode 100644 index 0000000..808f87b --- /dev/null +++ b/testdata/hide_common_methods/services_pb.rbi @@ -0,0 +1,3 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: services.proto +# typed: strict diff --git a/testdata/hide_common_methods/services_services_pb.rbi b/testdata/hide_common_methods/services_services_pb.rbi new file mode 100644 index 0000000..9dae5e2 --- /dev/null +++ b/testdata/hide_common_methods/services_services_pb.rbi @@ -0,0 +1,79 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: services.proto +# typed: strict + +module Testdata::SimpleMathematics + class Service + include ::GRPC::GenericService + end + + class Stub < ::GRPC::ClientStub + sig do + params( + host: String, + creds: T.any(::GRPC::Core::ChannelCredentials, Symbol), + kw: T.untyped, + ).void + end + def initialize(host, creds, **kw) + end + + sig do + params( + request: Testdata::Subdir::IntegerMessage + ).returns(Testdata::Subdir::IntegerMessage) + end + def negate(request) + end + + sig do + params( + request: T::Enumerable[Testdata::Subdir::IntegerMessage] + ).returns(Testdata::Subdir::IntegerMessage) + end + def median(request) + end + end +end + +module Testdata::ComplexMathematics + class Service + include ::GRPC::GenericService + end + + class Stub < ::GRPC::ClientStub + sig do + params( + host: String, + creds: T.any(::GRPC::Core::ChannelCredentials, Symbol), + kw: T.untyped, + ).void + end + def initialize(host, creds, **kw) + end + + sig do + params( + request: Testdata::Subdir::IntegerMessage + ).returns(T::Enumerable[Testdata::Subdir::IntegerMessage]) + end + def fibonacci(request) + end + + sig do + params( + request: T::Enumerable[Testdata::Subdir::IntegerMessage] + ).returns(T::Enumerable[Testdata::Subdir::IntegerMessage]) + end + def running_max(request) + end + + sig do + params( + request: T::Enumerable[Testdata::Subdir::IntegerMessage] + ).returns(T::Enumerable[Testdata::Subdir::IntegerMessage]) + end + def periodic_max(request) + end + end +end diff --git a/testdata/hide_common_methods/subdir/messages_pb.rbi b/testdata/hide_common_methods/subdir/messages_pb.rbi new file mode 100644 index 0000000..4bd0e3e --- /dev/null +++ b/testdata/hide_common_methods/subdir/messages_pb.rbi @@ -0,0 +1,760 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: subdir/messages.proto +# typed: strict + +class Testdata::Subdir::IntegerMessage + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::IntegerMessage) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + value: T.nilable(Integer) + ).void + end + def initialize( + value: 0 + ) + end + + sig { returns(Integer) } + def value + end + + sig { params(value: Integer).void } + def value=(value) + end + + sig { void } + def clear_value + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::Empty + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::Empty) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::Empty).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::Empty) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::Empty, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig {void} + def initialize; end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::AllTypes + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::AllTypes) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::AllTypes).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::AllTypes) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::AllTypes, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + double_value: T.nilable(Float), + float_value: T.nilable(Float), + int32_value: T.nilable(Integer), + int64_value: T.nilable(Integer), + uint32_value: T.nilable(Integer), + uint64_value: T.nilable(Integer), + sint32_value: T.nilable(Integer), + sint64_value: T.nilable(Integer), + fixed32_value: T.nilable(Integer), + fixed64_value: T.nilable(Integer), + sfixed32_value: T.nilable(Integer), + sfixed64_value: T.nilable(Integer), + bool_value: T.nilable(T::Boolean), + string_value: T.nilable(String), + bytes_value: T.nilable(String), + enum_value: T.nilable(T.any(Symbol, String, Integer)), + alias_enum_value: T.nilable(T.any(Symbol, String, Integer)), + nested_value: T.nilable(Testdata::Subdir::IntegerMessage), + repeated_nested_value: T.nilable(T::Array[T.nilable(Testdata::Subdir::IntegerMessage)]), + repeated_int32_value: T.nilable(T::Array[Integer]), + repeated_enum: T.nilable(T::Array[T.any(Symbol, String, Integer)]), + inner_value: T.nilable(Testdata::Subdir::AllTypes::InnerMessage), + inner_nested_value: T.nilable(Testdata::Subdir::IntegerMessage::InnerNestedMessage), + name: T.nilable(String), + sub_message: T.nilable(T::Boolean), + string_map_value: T.nilable(T::Hash[String, T.nilable(Testdata::Subdir::IntegerMessage)]), + int32_map_value: T.nilable(T::Hash[Integer, T.nilable(Testdata::Subdir::IntegerMessage)]), + enum_map_value: T.nilable(T::Hash[String, T.any(Symbol, String, Integer)]), + optional_bool: T.nilable(T::Boolean) + ).void + end + def initialize( + double_value: 0.0, + float_value: 0.0, + int32_value: 0, + int64_value: 0, + uint32_value: 0, + uint64_value: 0, + sint32_value: 0, + sint64_value: 0, + fixed32_value: 0, + fixed64_value: 0, + sfixed32_value: 0, + sfixed64_value: 0, + bool_value: false, + string_value: "", + bytes_value: "", + enum_value: :UNIVERSAL, + alias_enum_value: :UNKNOWN, + nested_value: nil, + repeated_nested_value: [], + repeated_int32_value: [], + repeated_enum: [], + inner_value: nil, + inner_nested_value: nil, + name: "", + sub_message: false, + string_map_value: ::Google::Protobuf::Map.new(:string, :message, Testdata::Subdir::IntegerMessage), + int32_map_value: ::Google::Protobuf::Map.new(:int32, :message, Testdata::Subdir::IntegerMessage), + enum_map_value: ::Google::Protobuf::Map.new(:string, :enum), + optional_bool: false + ) + end + + sig { returns(Float) } + def double_value + end + + sig { params(value: Float).void } + def double_value=(value) + end + + sig { void } + def clear_double_value + end + + sig { returns(Float) } + def float_value + end + + sig { params(value: Float).void } + def float_value=(value) + end + + sig { void } + def clear_float_value + end + + sig { returns(Integer) } + def int32_value + end + + sig { params(value: Integer).void } + def int32_value=(value) + end + + sig { void } + def clear_int32_value + end + + sig { returns(Integer) } + def int64_value + end + + sig { params(value: Integer).void } + def int64_value=(value) + end + + sig { void } + def clear_int64_value + end + + sig { returns(Integer) } + def uint32_value + end + + sig { params(value: Integer).void } + def uint32_value=(value) + end + + sig { void } + def clear_uint32_value + end + + sig { returns(Integer) } + def uint64_value + end + + sig { params(value: Integer).void } + def uint64_value=(value) + end + + sig { void } + def clear_uint64_value + end + + sig { returns(Integer) } + def sint32_value + end + + sig { params(value: Integer).void } + def sint32_value=(value) + end + + sig { void } + def clear_sint32_value + end + + sig { returns(Integer) } + def sint64_value + end + + sig { params(value: Integer).void } + def sint64_value=(value) + end + + sig { void } + def clear_sint64_value + end + + sig { returns(Integer) } + def fixed32_value + end + + sig { params(value: Integer).void } + def fixed32_value=(value) + end + + sig { void } + def clear_fixed32_value + end + + sig { returns(Integer) } + def fixed64_value + end + + sig { params(value: Integer).void } + def fixed64_value=(value) + end + + sig { void } + def clear_fixed64_value + end + + sig { returns(Integer) } + def sfixed32_value + end + + sig { params(value: Integer).void } + def sfixed32_value=(value) + end + + sig { void } + def clear_sfixed32_value + end + + sig { returns(Integer) } + def sfixed64_value + end + + sig { params(value: Integer).void } + def sfixed64_value=(value) + end + + sig { void } + def clear_sfixed64_value + end + + sig { returns(T::Boolean) } + def bool_value + end + + sig { params(value: T::Boolean).void } + def bool_value=(value) + end + + sig { void } + def clear_bool_value + end + + sig { returns(String) } + def string_value + end + + sig { params(value: String).void } + def string_value=(value) + end + + sig { void } + def clear_string_value + end + + sig { returns(String) } + def bytes_value + end + + sig { params(value: String).void } + def bytes_value=(value) + end + + sig { void } + def clear_bytes_value + end + + sig { returns(Symbol) } + def enum_value + end + + sig { params(value: T.any(Symbol, String, Integer)).void } + def enum_value=(value) + end + + sig { void } + def clear_enum_value + end + + sig { returns(Symbol) } + def alias_enum_value + end + + sig { params(value: T.any(Symbol, String, Integer)).void } + def alias_enum_value=(value) + end + + sig { void } + def clear_alias_enum_value + end + + sig { returns(T.nilable(Testdata::Subdir::IntegerMessage)) } + def nested_value + end + + sig { params(value: T.nilable(Testdata::Subdir::IntegerMessage)).void } + def nested_value=(value) + end + + sig { void } + def clear_nested_value + end + + sig { returns(T::Array[T.nilable(Testdata::Subdir::IntegerMessage)]) } + def repeated_nested_value + end + + sig { params(value: ::Google::Protobuf::RepeatedField).void } + def repeated_nested_value=(value) + end + + sig { void } + def clear_repeated_nested_value + end + + sig { returns(T::Array[Integer]) } + def repeated_int32_value + end + + sig { params(value: ::Google::Protobuf::RepeatedField).void } + def repeated_int32_value=(value) + end + + sig { void } + def clear_repeated_int32_value + end + + sig { returns(T::Array[Symbol]) } + def repeated_enum + end + + sig { params(value: ::Google::Protobuf::RepeatedField).void } + def repeated_enum=(value) + end + + sig { void } + def clear_repeated_enum + end + + sig { returns(T.nilable(Testdata::Subdir::AllTypes::InnerMessage)) } + def inner_value + end + + sig { params(value: T.nilable(Testdata::Subdir::AllTypes::InnerMessage)).void } + def inner_value=(value) + end + + sig { void } + def clear_inner_value + end + + sig { returns(T.nilable(Testdata::Subdir::IntegerMessage::InnerNestedMessage)) } + def inner_nested_value + end + + sig { params(value: T.nilable(Testdata::Subdir::IntegerMessage::InnerNestedMessage)).void } + def inner_nested_value=(value) + end + + sig { void } + def clear_inner_nested_value + end + + sig { returns(String) } + def name + end + + sig { params(value: String).void } + def name=(value) + end + + sig { void } + def clear_name + end + + sig { returns(T::Boolean) } + def sub_message + end + + sig { params(value: T::Boolean).void } + def sub_message=(value) + end + + sig { void } + def clear_sub_message + end + + sig { returns(T::Hash[String, T.nilable(Testdata::Subdir::IntegerMessage)]) } + def string_map_value + end + + sig { params(value: ::Google::Protobuf::Map).void } + def string_map_value=(value) + end + + sig { void } + def clear_string_map_value + end + + sig { returns(T::Hash[Integer, T.nilable(Testdata::Subdir::IntegerMessage)]) } + def int32_map_value + end + + sig { params(value: ::Google::Protobuf::Map).void } + def int32_map_value=(value) + end + + sig { void } + def clear_int32_map_value + end + + sig { returns(T::Hash[String, Symbol]) } + def enum_map_value + end + + sig { params(value: ::Google::Protobuf::Map).void } + def enum_map_value=(value) + end + + sig { void } + def clear_enum_map_value + end + + sig { returns(T::Boolean) } + def optional_bool + end + + sig { params(value: T::Boolean).void } + def optional_bool=(value) + end + + sig { void } + def clear_optional_bool + end + + sig { returns(T::Boolean) } + def has_optional_bool? + end + + sig { returns(T.nilable(Symbol)) } + def test_oneof + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::IntegerMessage::InnerNestedMessage + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::IntegerMessage::InnerNestedMessage) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage::InnerNestedMessage).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage::InnerNestedMessage) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage::InnerNestedMessage, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + value: T.nilable(Float) + ).void + end + def initialize( + value: 0.0 + ) + end + + sig { returns(Float) } + def value + end + + sig { params(value: Float).void } + def value=(value) + end + + sig { void } + def clear_value + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::IntegerMessage::NestedEmpty + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::IntegerMessage::NestedEmpty) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage::NestedEmpty).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage::NestedEmpty) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage::NestedEmpty, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig {void} + def initialize; end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::AllTypes::InnerMessage + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::AllTypes::InnerMessage) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::AllTypes::InnerMessage).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::AllTypes::InnerMessage) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::AllTypes::InnerMessage, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + value: T.nilable(String) + ).void + end + def initialize( + value: "" + ) + end + + sig { returns(String) } + def value + end + + sig { params(value: String).void } + def value=(value) + end + + sig { void } + def clear_value + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +module Testdata::Subdir::AllTypes::Corpus + self::UNIVERSAL = T.let(0, Integer) + self::WEB = T.let(1, Integer) + self::IMAGES = T.let(2, Integer) + self::LOCAL = T.let(3, Integer) + self::NEWS = T.let(4, Integer) + self::PRODUCTS = T.let(5, Integer) + self::VIDEO = T.let(6, Integer) + self::END = T.let(7, Integer) + + sig { params(value: Integer).returns(T.nilable(Symbol)) } + def self.lookup(value) + end + + sig { params(value: Symbol).returns(T.nilable(Integer)) } + def self.resolve(value) + end + + sig { returns(::Google::Protobuf::EnumDescriptor) } + def self.descriptor + end +end + +module Testdata::Subdir::AllTypes::EnumAllowingAlias + self::UNKNOWN = T.let(0, Integer) + self::STARTED = T.let(1, Integer) + self::RUNNING = T.let(1, Integer) + + sig { params(value: Integer).returns(T.nilable(Symbol)) } + def self.lookup(value) + end + + sig { params(value: Symbol).returns(T.nilable(Integer)) } + def self.resolve(value) + end + + sig { returns(::Google::Protobuf::EnumDescriptor) } + def self.descriptor + end +end diff --git a/testdata/use_abstract_message/broken_field_name_pb.rbi b/testdata/use_abstract_message/broken_field_name_pb.rbi new file mode 100644 index 0000000..72231e5 --- /dev/null +++ b/testdata/use_abstract_message/broken_field_name_pb.rbi @@ -0,0 +1,68 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: broken_field_name.proto +# typed: strict + +class Example::Broken_field_name + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Broken_field_name) } + def self.decode(str) + end + + sig { params(msg: Example::Broken_field_name).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Broken_field_name) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Broken_field_name, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + # Constants of the form Constant_1 are invalid. We've declined to type this as a result, taking a hash instead. + sig { params(args: T::Hash[T.untyped, T.untyped]).void } + def initialize(args); end + + sig { returns(String) } + def name + end + + sig { params(value: String).void } + def name=(value) + end + + sig { void } + def clear_name + end + + sig { returns(String) } + def Field_name_1 + end + + sig { params(value: String).void } + def Field_name_1=(value) + end + + sig { void } + def clear_Field_name_1 + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end diff --git a/testdata/use_abstract_message/broken_package_name_pb.rbi b/testdata/use_abstract_message/broken_package_name_pb.rbi new file mode 100644 index 0000000..1e9599c --- /dev/null +++ b/testdata/use_abstract_message/broken_package_name_pb.rbi @@ -0,0 +1,62 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: broken_package_name.proto +# typed: strict + +class Package2test::Message2test + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Package2test::Message2test) } + def self.decode(str) + end + + sig { params(msg: Package2test::Message2test).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Package2test::Message2test) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Package2test::Message2test, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + field2test: T.nilable(String) + ).void + end + def initialize( + field2test: "" + ) + end + + sig { returns(String) } + def field2test + end + + sig { params(value: String).void } + def field2test=(value) + end + + sig { void } + def clear_field2test + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end diff --git a/testdata/use_abstract_message/example_pb.rbi b/testdata/use_abstract_message/example_pb.rbi new file mode 100644 index 0000000..4309f5c --- /dev/null +++ b/testdata/use_abstract_message/example_pb.rbi @@ -0,0 +1,121 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: example.proto +# typed: strict + +class Example::Request + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Request) } + def self.decode(str) + end + + sig { params(msg: Example::Request).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Request) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Request, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + name: T.nilable(String) + ).void + end + def initialize( + name: "" + ) + end + + sig { returns(String) } + def name + end + + sig { params(value: String).void } + def name=(value) + end + + sig { void } + def clear_name + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Example::Response + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Response) } + def self.decode(str) + end + + sig { params(msg: Example::Response).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Response) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Response, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + greeting: T.nilable(String) + ).void + end + def initialize( + greeting: "" + ) + end + + sig { returns(String) } + def greeting + end + + sig { params(value: String).void } + def greeting=(value) + end + + sig { void } + def clear_greeting + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end diff --git a/testdata/use_abstract_message/example_services_pb.rbi b/testdata/use_abstract_message/example_services_pb.rbi new file mode 100644 index 0000000..b4a2322 --- /dev/null +++ b/testdata/use_abstract_message/example_services_pb.rbi @@ -0,0 +1,29 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: example.proto +# typed: strict + +module Example::Greeter + class Service + include ::GRPC::GenericService + end + + class Stub < ::GRPC::ClientStub + sig do + params( + host: String, + creds: T.any(::GRPC::Core::ChannelCredentials, Symbol), + kw: T.untyped, + ).void + end + def initialize(host, creds, **kw) + end + + sig do + params( + request: Example::Request + ).returns(Example::Response) + end + def hello(request) + end + end +end diff --git a/testdata/use_abstract_message/lowercase_pb.rbi b/testdata/use_abstract_message/lowercase_pb.rbi new file mode 100644 index 0000000..65fd4a3 --- /dev/null +++ b/testdata/use_abstract_message/lowercase_pb.rbi @@ -0,0 +1,121 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: lowercase.proto +# typed: strict + +class Example::Lowercase + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Lowercase) } + def self.decode(str) + end + + sig { params(msg: Example::Lowercase).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Lowercase) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Lowercase, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + example_proto_field: T.nilable(String) + ).void + end + def initialize( + example_proto_field: "" + ) + end + + sig { returns(String) } + def example_proto_field + end + + sig { params(value: String).void } + def example_proto_field=(value) + end + + sig { void } + def clear_example_proto_field + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Example::Lowercase_with_underscores + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Example::Lowercase_with_underscores) } + def self.decode(str) + end + + sig { params(msg: Example::Lowercase_with_underscores).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Example::Lowercase_with_underscores) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Example::Lowercase_with_underscores, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + example_proto_field: T.nilable(String) + ).void + end + def initialize( + example_proto_field: "" + ) + end + + sig { returns(String) } + def example_proto_field + end + + sig { params(value: String).void } + def example_proto_field=(value) + end + + sig { void } + def clear_example_proto_field + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end diff --git a/testdata/use_abstract_message/services_pb.rbi b/testdata/use_abstract_message/services_pb.rbi new file mode 100644 index 0000000..808f87b --- /dev/null +++ b/testdata/use_abstract_message/services_pb.rbi @@ -0,0 +1,3 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: services.proto +# typed: strict diff --git a/testdata/use_abstract_message/services_services_pb.rbi b/testdata/use_abstract_message/services_services_pb.rbi new file mode 100644 index 0000000..9dae5e2 --- /dev/null +++ b/testdata/use_abstract_message/services_services_pb.rbi @@ -0,0 +1,79 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: services.proto +# typed: strict + +module Testdata::SimpleMathematics + class Service + include ::GRPC::GenericService + end + + class Stub < ::GRPC::ClientStub + sig do + params( + host: String, + creds: T.any(::GRPC::Core::ChannelCredentials, Symbol), + kw: T.untyped, + ).void + end + def initialize(host, creds, **kw) + end + + sig do + params( + request: Testdata::Subdir::IntegerMessage + ).returns(Testdata::Subdir::IntegerMessage) + end + def negate(request) + end + + sig do + params( + request: T::Enumerable[Testdata::Subdir::IntegerMessage] + ).returns(Testdata::Subdir::IntegerMessage) + end + def median(request) + end + end +end + +module Testdata::ComplexMathematics + class Service + include ::GRPC::GenericService + end + + class Stub < ::GRPC::ClientStub + sig do + params( + host: String, + creds: T.any(::GRPC::Core::ChannelCredentials, Symbol), + kw: T.untyped, + ).void + end + def initialize(host, creds, **kw) + end + + sig do + params( + request: Testdata::Subdir::IntegerMessage + ).returns(T::Enumerable[Testdata::Subdir::IntegerMessage]) + end + def fibonacci(request) + end + + sig do + params( + request: T::Enumerable[Testdata::Subdir::IntegerMessage] + ).returns(T::Enumerable[Testdata::Subdir::IntegerMessage]) + end + def running_max(request) + end + + sig do + params( + request: T::Enumerable[Testdata::Subdir::IntegerMessage] + ).returns(T::Enumerable[Testdata::Subdir::IntegerMessage]) + end + def periodic_max(request) + end + end +end diff --git a/testdata/use_abstract_message/subdir/messages_pb.rbi b/testdata/use_abstract_message/subdir/messages_pb.rbi new file mode 100644 index 0000000..4bd0e3e --- /dev/null +++ b/testdata/use_abstract_message/subdir/messages_pb.rbi @@ -0,0 +1,760 @@ +# Code generated by protoc-gen-rbi. DO NOT EDIT. +# source: subdir/messages.proto +# typed: strict + +class Testdata::Subdir::IntegerMessage + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::IntegerMessage) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + value: T.nilable(Integer) + ).void + end + def initialize( + value: 0 + ) + end + + sig { returns(Integer) } + def value + end + + sig { params(value: Integer).void } + def value=(value) + end + + sig { void } + def clear_value + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::Empty + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::Empty) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::Empty).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::Empty) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::Empty, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig {void} + def initialize; end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::AllTypes + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::AllTypes) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::AllTypes).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::AllTypes) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::AllTypes, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + double_value: T.nilable(Float), + float_value: T.nilable(Float), + int32_value: T.nilable(Integer), + int64_value: T.nilable(Integer), + uint32_value: T.nilable(Integer), + uint64_value: T.nilable(Integer), + sint32_value: T.nilable(Integer), + sint64_value: T.nilable(Integer), + fixed32_value: T.nilable(Integer), + fixed64_value: T.nilable(Integer), + sfixed32_value: T.nilable(Integer), + sfixed64_value: T.nilable(Integer), + bool_value: T.nilable(T::Boolean), + string_value: T.nilable(String), + bytes_value: T.nilable(String), + enum_value: T.nilable(T.any(Symbol, String, Integer)), + alias_enum_value: T.nilable(T.any(Symbol, String, Integer)), + nested_value: T.nilable(Testdata::Subdir::IntegerMessage), + repeated_nested_value: T.nilable(T::Array[T.nilable(Testdata::Subdir::IntegerMessage)]), + repeated_int32_value: T.nilable(T::Array[Integer]), + repeated_enum: T.nilable(T::Array[T.any(Symbol, String, Integer)]), + inner_value: T.nilable(Testdata::Subdir::AllTypes::InnerMessage), + inner_nested_value: T.nilable(Testdata::Subdir::IntegerMessage::InnerNestedMessage), + name: T.nilable(String), + sub_message: T.nilable(T::Boolean), + string_map_value: T.nilable(T::Hash[String, T.nilable(Testdata::Subdir::IntegerMessage)]), + int32_map_value: T.nilable(T::Hash[Integer, T.nilable(Testdata::Subdir::IntegerMessage)]), + enum_map_value: T.nilable(T::Hash[String, T.any(Symbol, String, Integer)]), + optional_bool: T.nilable(T::Boolean) + ).void + end + def initialize( + double_value: 0.0, + float_value: 0.0, + int32_value: 0, + int64_value: 0, + uint32_value: 0, + uint64_value: 0, + sint32_value: 0, + sint64_value: 0, + fixed32_value: 0, + fixed64_value: 0, + sfixed32_value: 0, + sfixed64_value: 0, + bool_value: false, + string_value: "", + bytes_value: "", + enum_value: :UNIVERSAL, + alias_enum_value: :UNKNOWN, + nested_value: nil, + repeated_nested_value: [], + repeated_int32_value: [], + repeated_enum: [], + inner_value: nil, + inner_nested_value: nil, + name: "", + sub_message: false, + string_map_value: ::Google::Protobuf::Map.new(:string, :message, Testdata::Subdir::IntegerMessage), + int32_map_value: ::Google::Protobuf::Map.new(:int32, :message, Testdata::Subdir::IntegerMessage), + enum_map_value: ::Google::Protobuf::Map.new(:string, :enum), + optional_bool: false + ) + end + + sig { returns(Float) } + def double_value + end + + sig { params(value: Float).void } + def double_value=(value) + end + + sig { void } + def clear_double_value + end + + sig { returns(Float) } + def float_value + end + + sig { params(value: Float).void } + def float_value=(value) + end + + sig { void } + def clear_float_value + end + + sig { returns(Integer) } + def int32_value + end + + sig { params(value: Integer).void } + def int32_value=(value) + end + + sig { void } + def clear_int32_value + end + + sig { returns(Integer) } + def int64_value + end + + sig { params(value: Integer).void } + def int64_value=(value) + end + + sig { void } + def clear_int64_value + end + + sig { returns(Integer) } + def uint32_value + end + + sig { params(value: Integer).void } + def uint32_value=(value) + end + + sig { void } + def clear_uint32_value + end + + sig { returns(Integer) } + def uint64_value + end + + sig { params(value: Integer).void } + def uint64_value=(value) + end + + sig { void } + def clear_uint64_value + end + + sig { returns(Integer) } + def sint32_value + end + + sig { params(value: Integer).void } + def sint32_value=(value) + end + + sig { void } + def clear_sint32_value + end + + sig { returns(Integer) } + def sint64_value + end + + sig { params(value: Integer).void } + def sint64_value=(value) + end + + sig { void } + def clear_sint64_value + end + + sig { returns(Integer) } + def fixed32_value + end + + sig { params(value: Integer).void } + def fixed32_value=(value) + end + + sig { void } + def clear_fixed32_value + end + + sig { returns(Integer) } + def fixed64_value + end + + sig { params(value: Integer).void } + def fixed64_value=(value) + end + + sig { void } + def clear_fixed64_value + end + + sig { returns(Integer) } + def sfixed32_value + end + + sig { params(value: Integer).void } + def sfixed32_value=(value) + end + + sig { void } + def clear_sfixed32_value + end + + sig { returns(Integer) } + def sfixed64_value + end + + sig { params(value: Integer).void } + def sfixed64_value=(value) + end + + sig { void } + def clear_sfixed64_value + end + + sig { returns(T::Boolean) } + def bool_value + end + + sig { params(value: T::Boolean).void } + def bool_value=(value) + end + + sig { void } + def clear_bool_value + end + + sig { returns(String) } + def string_value + end + + sig { params(value: String).void } + def string_value=(value) + end + + sig { void } + def clear_string_value + end + + sig { returns(String) } + def bytes_value + end + + sig { params(value: String).void } + def bytes_value=(value) + end + + sig { void } + def clear_bytes_value + end + + sig { returns(Symbol) } + def enum_value + end + + sig { params(value: T.any(Symbol, String, Integer)).void } + def enum_value=(value) + end + + sig { void } + def clear_enum_value + end + + sig { returns(Symbol) } + def alias_enum_value + end + + sig { params(value: T.any(Symbol, String, Integer)).void } + def alias_enum_value=(value) + end + + sig { void } + def clear_alias_enum_value + end + + sig { returns(T.nilable(Testdata::Subdir::IntegerMessage)) } + def nested_value + end + + sig { params(value: T.nilable(Testdata::Subdir::IntegerMessage)).void } + def nested_value=(value) + end + + sig { void } + def clear_nested_value + end + + sig { returns(T::Array[T.nilable(Testdata::Subdir::IntegerMessage)]) } + def repeated_nested_value + end + + sig { params(value: ::Google::Protobuf::RepeatedField).void } + def repeated_nested_value=(value) + end + + sig { void } + def clear_repeated_nested_value + end + + sig { returns(T::Array[Integer]) } + def repeated_int32_value + end + + sig { params(value: ::Google::Protobuf::RepeatedField).void } + def repeated_int32_value=(value) + end + + sig { void } + def clear_repeated_int32_value + end + + sig { returns(T::Array[Symbol]) } + def repeated_enum + end + + sig { params(value: ::Google::Protobuf::RepeatedField).void } + def repeated_enum=(value) + end + + sig { void } + def clear_repeated_enum + end + + sig { returns(T.nilable(Testdata::Subdir::AllTypes::InnerMessage)) } + def inner_value + end + + sig { params(value: T.nilable(Testdata::Subdir::AllTypes::InnerMessage)).void } + def inner_value=(value) + end + + sig { void } + def clear_inner_value + end + + sig { returns(T.nilable(Testdata::Subdir::IntegerMessage::InnerNestedMessage)) } + def inner_nested_value + end + + sig { params(value: T.nilable(Testdata::Subdir::IntegerMessage::InnerNestedMessage)).void } + def inner_nested_value=(value) + end + + sig { void } + def clear_inner_nested_value + end + + sig { returns(String) } + def name + end + + sig { params(value: String).void } + def name=(value) + end + + sig { void } + def clear_name + end + + sig { returns(T::Boolean) } + def sub_message + end + + sig { params(value: T::Boolean).void } + def sub_message=(value) + end + + sig { void } + def clear_sub_message + end + + sig { returns(T::Hash[String, T.nilable(Testdata::Subdir::IntegerMessage)]) } + def string_map_value + end + + sig { params(value: ::Google::Protobuf::Map).void } + def string_map_value=(value) + end + + sig { void } + def clear_string_map_value + end + + sig { returns(T::Hash[Integer, T.nilable(Testdata::Subdir::IntegerMessage)]) } + def int32_map_value + end + + sig { params(value: ::Google::Protobuf::Map).void } + def int32_map_value=(value) + end + + sig { void } + def clear_int32_map_value + end + + sig { returns(T::Hash[String, Symbol]) } + def enum_map_value + end + + sig { params(value: ::Google::Protobuf::Map).void } + def enum_map_value=(value) + end + + sig { void } + def clear_enum_map_value + end + + sig { returns(T::Boolean) } + def optional_bool + end + + sig { params(value: T::Boolean).void } + def optional_bool=(value) + end + + sig { void } + def clear_optional_bool + end + + sig { returns(T::Boolean) } + def has_optional_bool? + end + + sig { returns(T.nilable(Symbol)) } + def test_oneof + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::IntegerMessage::InnerNestedMessage + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::IntegerMessage::InnerNestedMessage) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage::InnerNestedMessage).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage::InnerNestedMessage) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage::InnerNestedMessage, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + value: T.nilable(Float) + ).void + end + def initialize( + value: 0.0 + ) + end + + sig { returns(Float) } + def value + end + + sig { params(value: Float).void } + def value=(value) + end + + sig { void } + def clear_value + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::IntegerMessage::NestedEmpty + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::IntegerMessage::NestedEmpty) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage::NestedEmpty).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage::NestedEmpty) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::IntegerMessage::NestedEmpty, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig {void} + def initialize; end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +class Testdata::Subdir::AllTypes::InnerMessage + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + sig { params(str: String).returns(Testdata::Subdir::AllTypes::InnerMessage) } + def self.decode(str) + end + + sig { params(msg: Testdata::Subdir::AllTypes::InnerMessage).returns(String) } + def self.encode(msg) + end + + sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::AllTypes::InnerMessage) } + def self.decode_json(str, **kw) + end + + sig { params(msg: Testdata::Subdir::AllTypes::InnerMessage, kw: T.untyped).returns(String) } + def self.encode_json(msg, **kw) + end + + sig { returns(::Google::Protobuf::Descriptor) } + def self.descriptor + end + + sig do + params( + value: T.nilable(String) + ).void + end + def initialize( + value: "" + ) + end + + sig { returns(String) } + def value + end + + sig { params(value: String).void } + def value=(value) + end + + sig { void } + def clear_value + end + + sig { params(field: String).returns(T.untyped) } + def [](field) + end + + sig { params(field: String, value: T.untyped).void } + def []=(field, value) + end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h + end +end + +module Testdata::Subdir::AllTypes::Corpus + self::UNIVERSAL = T.let(0, Integer) + self::WEB = T.let(1, Integer) + self::IMAGES = T.let(2, Integer) + self::LOCAL = T.let(3, Integer) + self::NEWS = T.let(4, Integer) + self::PRODUCTS = T.let(5, Integer) + self::VIDEO = T.let(6, Integer) + self::END = T.let(7, Integer) + + sig { params(value: Integer).returns(T.nilable(Symbol)) } + def self.lookup(value) + end + + sig { params(value: Symbol).returns(T.nilable(Integer)) } + def self.resolve(value) + end + + sig { returns(::Google::Protobuf::EnumDescriptor) } + def self.descriptor + end +end + +module Testdata::Subdir::AllTypes::EnumAllowingAlias + self::UNKNOWN = T.let(0, Integer) + self::STARTED = T.let(1, Integer) + self::RUNNING = T.let(1, Integer) + + sig { params(value: Integer).returns(T.nilable(Symbol)) } + def self.lookup(value) + end + + sig { params(value: Symbol).returns(T.nilable(Integer)) } + def self.resolve(value) + end + + sig { returns(::Google::Protobuf::EnumDescriptor) } + def self.descriptor + end +end From e1de9fab5644b60c695a92eb70783a235c5a029f Mon Sep 17 00:00:00 2001 From: Jake Zimmerman Date: Wed, 26 Apr 2023 14:33:57 -0700 Subject: [PATCH 3/3] Show how the tests change --- Makefile | 3 + testdata/all/broken_field_name_pb.rbi | 37 +-- testdata/all/broken_package_name_pb.rbi | 37 +-- testdata/all/example_pb.rbi | 74 +----- testdata/all/lowercase_pb.rbi | 74 +----- testdata/all/subdir/messages_pb.rbi | 222 +----------------- .../broken_field_name_pb.rbi | 32 --- .../broken_package_name_pb.rbi | 32 --- testdata/hide_common_methods/example_pb.rbi | 64 ----- testdata/hide_common_methods/lowercase_pb.rbi | 64 ----- .../subdir/messages_pb.rbi | 192 --------------- .../broken_field_name_pb.rbi | 5 +- .../broken_package_name_pb.rbi | 5 +- testdata/use_abstract_message/example_pb.rbi | 10 +- .../use_abstract_message/lowercase_pb.rbi | 10 +- .../subdir/messages_pb.rbi | 30 +-- 16 files changed, 27 insertions(+), 864 deletions(-) diff --git a/Makefile b/Makefile index 3a2a069..31f73c5 100644 --- a/Makefile +++ b/Makefile @@ -15,4 +15,7 @@ test: init install $(PROTOC_BINARY) --proto_path=testdata --ruby_out=testdata $(PROTOS) $(PROTOC_BINARY) --proto_path=testdata --ruby_grpc_out=testdata --plugin=protoc-gen-ruby_grpc=$(GRPC_PLUGIN) $(PROTOS) $(PROTOC_BINARY) --proto_path=testdata --rbi_out=grpc=true:testdata $(PROTOS) + $(PROTOC_BINARY) --proto_path=testdata --rbi_out=hide_common_methods=true:testdata/hide_common_methods $(PROTOS) + $(PROTOC_BINARY) --proto_path=testdata --rbi_out=use_abstract_message=true:testdata/use_abstract_message $(PROTOS) + $(PROTOC_BINARY) --proto_path=testdata --rbi_out=grpc=true,hide_common_methods=true,use_abstract_message=true:testdata/all $(PROTOS) git diff --exit-code testdata diff --git a/testdata/all/broken_field_name_pb.rbi b/testdata/all/broken_field_name_pb.rbi index 72231e5..665d6bb 100644 --- a/testdata/all/broken_field_name_pb.rbi +++ b/testdata/all/broken_field_name_pb.rbi @@ -2,30 +2,7 @@ # source: broken_field_name.proto # typed: strict -class Example::Broken_field_name - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - - sig { params(str: String).returns(Example::Broken_field_name) } - def self.decode(str) - end - - sig { params(msg: Example::Broken_field_name).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Example::Broken_field_name) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Example::Broken_field_name, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - +class Example::Broken_field_name < ::Google::Protobuf::AbstractMessage # Constants of the form Constant_1 are invalid. We've declined to type this as a result, taking a hash instead. sig { params(args: T::Hash[T.untyped, T.untyped]).void } def initialize(args); end @@ -53,16 +30,4 @@ class Example::Broken_field_name sig { void } def clear_Field_name_1 end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end diff --git a/testdata/all/broken_package_name_pb.rbi b/testdata/all/broken_package_name_pb.rbi index 1e9599c..e5aa17f 100644 --- a/testdata/all/broken_package_name_pb.rbi +++ b/testdata/all/broken_package_name_pb.rbi @@ -2,30 +2,7 @@ # source: broken_package_name.proto # typed: strict -class Package2test::Message2test - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - - sig { params(str: String).returns(Package2test::Message2test) } - def self.decode(str) - end - - sig { params(msg: Package2test::Message2test).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Package2test::Message2test) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Package2test::Message2test, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - +class Package2test::Message2test < ::Google::Protobuf::AbstractMessage sig do params( field2test: T.nilable(String) @@ -47,16 +24,4 @@ class Package2test::Message2test sig { void } def clear_field2test end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end diff --git a/testdata/all/example_pb.rbi b/testdata/all/example_pb.rbi index 4309f5c..18d64ca 100644 --- a/testdata/all/example_pb.rbi +++ b/testdata/all/example_pb.rbi @@ -2,30 +2,7 @@ # source: example.proto # typed: strict -class Example::Request - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - - sig { params(str: String).returns(Example::Request) } - def self.decode(str) - end - - sig { params(msg: Example::Request).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Example::Request) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Example::Request, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - +class Example::Request < ::Google::Protobuf::AbstractMessage sig do params( name: T.nilable(String) @@ -47,44 +24,9 @@ class Example::Request sig { void } def clear_name end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end -class Example::Response - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - - sig { params(str: String).returns(Example::Response) } - def self.decode(str) - end - - sig { params(msg: Example::Response).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Example::Response) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Example::Response, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - +class Example::Response < ::Google::Protobuf::AbstractMessage sig do params( greeting: T.nilable(String) @@ -106,16 +48,4 @@ class Example::Response sig { void } def clear_greeting end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end diff --git a/testdata/all/lowercase_pb.rbi b/testdata/all/lowercase_pb.rbi index 65fd4a3..b378f82 100644 --- a/testdata/all/lowercase_pb.rbi +++ b/testdata/all/lowercase_pb.rbi @@ -2,30 +2,7 @@ # source: lowercase.proto # typed: strict -class Example::Lowercase - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - - sig { params(str: String).returns(Example::Lowercase) } - def self.decode(str) - end - - sig { params(msg: Example::Lowercase).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Example::Lowercase) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Example::Lowercase, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - +class Example::Lowercase < ::Google::Protobuf::AbstractMessage sig do params( example_proto_field: T.nilable(String) @@ -47,44 +24,9 @@ class Example::Lowercase sig { void } def clear_example_proto_field end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end -class Example::Lowercase_with_underscores - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - - sig { params(str: String).returns(Example::Lowercase_with_underscores) } - def self.decode(str) - end - - sig { params(msg: Example::Lowercase_with_underscores).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Example::Lowercase_with_underscores) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Example::Lowercase_with_underscores, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - +class Example::Lowercase_with_underscores < ::Google::Protobuf::AbstractMessage sig do params( example_proto_field: T.nilable(String) @@ -106,16 +48,4 @@ class Example::Lowercase_with_underscores sig { void } def clear_example_proto_field end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end diff --git a/testdata/all/subdir/messages_pb.rbi b/testdata/all/subdir/messages_pb.rbi index 4bd0e3e..fd27673 100644 --- a/testdata/all/subdir/messages_pb.rbi +++ b/testdata/all/subdir/messages_pb.rbi @@ -2,30 +2,7 @@ # source: subdir/messages.proto # typed: strict -class Testdata::Subdir::IntegerMessage - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - - sig { params(str: String).returns(Testdata::Subdir::IntegerMessage) } - def self.decode(str) - end - - sig { params(msg: Testdata::Subdir::IntegerMessage).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Testdata::Subdir::IntegerMessage, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - +class Testdata::Subdir::IntegerMessage < ::Google::Protobuf::AbstractMessage sig do params( value: T.nilable(Integer) @@ -47,84 +24,14 @@ class Testdata::Subdir::IntegerMessage sig { void } def clear_value end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end -class Testdata::Subdir::Empty - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - - sig { params(str: String).returns(Testdata::Subdir::Empty) } - def self.decode(str) - end - - sig { params(msg: Testdata::Subdir::Empty).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::Empty) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Testdata::Subdir::Empty, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - +class Testdata::Subdir::Empty < ::Google::Protobuf::AbstractMessage sig {void} def initialize; end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end -class Testdata::Subdir::AllTypes - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - - sig { params(str: String).returns(Testdata::Subdir::AllTypes) } - def self.decode(str) - end - - sig { params(msg: Testdata::Subdir::AllTypes).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::AllTypes) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Testdata::Subdir::AllTypes, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - +class Testdata::Subdir::AllTypes < ::Google::Protobuf::AbstractMessage sig do params( double_value: T.nilable(Float), @@ -546,44 +453,9 @@ class Testdata::Subdir::AllTypes sig { returns(T.nilable(Symbol)) } def test_oneof end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end -class Testdata::Subdir::IntegerMessage::InnerNestedMessage - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - - sig { params(str: String).returns(Testdata::Subdir::IntegerMessage::InnerNestedMessage) } - def self.decode(str) - end - - sig { params(msg: Testdata::Subdir::IntegerMessage::InnerNestedMessage).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage::InnerNestedMessage) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Testdata::Subdir::IntegerMessage::InnerNestedMessage, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - +class Testdata::Subdir::IntegerMessage::InnerNestedMessage < ::Google::Protobuf::AbstractMessage sig do params( value: T.nilable(Float) @@ -605,84 +477,14 @@ class Testdata::Subdir::IntegerMessage::InnerNestedMessage sig { void } def clear_value end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end -class Testdata::Subdir::IntegerMessage::NestedEmpty - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - - sig { params(str: String).returns(Testdata::Subdir::IntegerMessage::NestedEmpty) } - def self.decode(str) - end - - sig { params(msg: Testdata::Subdir::IntegerMessage::NestedEmpty).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage::NestedEmpty) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Testdata::Subdir::IntegerMessage::NestedEmpty, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - +class Testdata::Subdir::IntegerMessage::NestedEmpty < ::Google::Protobuf::AbstractMessage sig {void} def initialize; end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end -class Testdata::Subdir::AllTypes::InnerMessage - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - - sig { params(str: String).returns(Testdata::Subdir::AllTypes::InnerMessage) } - def self.decode(str) - end - - sig { params(msg: Testdata::Subdir::AllTypes::InnerMessage).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::AllTypes::InnerMessage) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Testdata::Subdir::AllTypes::InnerMessage, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - +class Testdata::Subdir::AllTypes::InnerMessage < ::Google::Protobuf::AbstractMessage sig do params( value: T.nilable(String) @@ -704,18 +506,6 @@ class Testdata::Subdir::AllTypes::InnerMessage sig { void } def clear_value end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end module Testdata::Subdir::AllTypes::Corpus diff --git a/testdata/hide_common_methods/broken_field_name_pb.rbi b/testdata/hide_common_methods/broken_field_name_pb.rbi index 72231e5..3c21afe 100644 --- a/testdata/hide_common_methods/broken_field_name_pb.rbi +++ b/testdata/hide_common_methods/broken_field_name_pb.rbi @@ -6,26 +6,6 @@ class Example::Broken_field_name include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - sig { params(str: String).returns(Example::Broken_field_name) } - def self.decode(str) - end - - sig { params(msg: Example::Broken_field_name).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Example::Broken_field_name) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Example::Broken_field_name, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - # Constants of the form Constant_1 are invalid. We've declined to type this as a result, taking a hash instead. sig { params(args: T::Hash[T.untyped, T.untyped]).void } def initialize(args); end @@ -53,16 +33,4 @@ class Example::Broken_field_name sig { void } def clear_Field_name_1 end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end diff --git a/testdata/hide_common_methods/broken_package_name_pb.rbi b/testdata/hide_common_methods/broken_package_name_pb.rbi index 1e9599c..6fc3390 100644 --- a/testdata/hide_common_methods/broken_package_name_pb.rbi +++ b/testdata/hide_common_methods/broken_package_name_pb.rbi @@ -6,26 +6,6 @@ class Package2test::Message2test include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - sig { params(str: String).returns(Package2test::Message2test) } - def self.decode(str) - end - - sig { params(msg: Package2test::Message2test).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Package2test::Message2test) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Package2test::Message2test, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - sig do params( field2test: T.nilable(String) @@ -47,16 +27,4 @@ class Package2test::Message2test sig { void } def clear_field2test end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end diff --git a/testdata/hide_common_methods/example_pb.rbi b/testdata/hide_common_methods/example_pb.rbi index 4309f5c..ed665d0 100644 --- a/testdata/hide_common_methods/example_pb.rbi +++ b/testdata/hide_common_methods/example_pb.rbi @@ -6,26 +6,6 @@ class Example::Request include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - sig { params(str: String).returns(Example::Request) } - def self.decode(str) - end - - sig { params(msg: Example::Request).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Example::Request) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Example::Request, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - sig do params( name: T.nilable(String) @@ -47,44 +27,12 @@ class Example::Request sig { void } def clear_name end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end class Example::Response include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - sig { params(str: String).returns(Example::Response) } - def self.decode(str) - end - - sig { params(msg: Example::Response).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Example::Response) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Example::Response, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - sig do params( greeting: T.nilable(String) @@ -106,16 +54,4 @@ class Example::Response sig { void } def clear_greeting end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end diff --git a/testdata/hide_common_methods/lowercase_pb.rbi b/testdata/hide_common_methods/lowercase_pb.rbi index 65fd4a3..563d143 100644 --- a/testdata/hide_common_methods/lowercase_pb.rbi +++ b/testdata/hide_common_methods/lowercase_pb.rbi @@ -6,26 +6,6 @@ class Example::Lowercase include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - sig { params(str: String).returns(Example::Lowercase) } - def self.decode(str) - end - - sig { params(msg: Example::Lowercase).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Example::Lowercase) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Example::Lowercase, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - sig do params( example_proto_field: T.nilable(String) @@ -47,44 +27,12 @@ class Example::Lowercase sig { void } def clear_example_proto_field end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end class Example::Lowercase_with_underscores include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - sig { params(str: String).returns(Example::Lowercase_with_underscores) } - def self.decode(str) - end - - sig { params(msg: Example::Lowercase_with_underscores).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Example::Lowercase_with_underscores) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Example::Lowercase_with_underscores, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - sig do params( example_proto_field: T.nilable(String) @@ -106,16 +54,4 @@ class Example::Lowercase_with_underscores sig { void } def clear_example_proto_field end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end diff --git a/testdata/hide_common_methods/subdir/messages_pb.rbi b/testdata/hide_common_methods/subdir/messages_pb.rbi index 4bd0e3e..ea38052 100644 --- a/testdata/hide_common_methods/subdir/messages_pb.rbi +++ b/testdata/hide_common_methods/subdir/messages_pb.rbi @@ -6,26 +6,6 @@ class Testdata::Subdir::IntegerMessage include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - sig { params(str: String).returns(Testdata::Subdir::IntegerMessage) } - def self.decode(str) - end - - sig { params(msg: Testdata::Subdir::IntegerMessage).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Testdata::Subdir::IntegerMessage, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - sig do params( value: T.nilable(Integer) @@ -47,84 +27,20 @@ class Testdata::Subdir::IntegerMessage sig { void } def clear_value end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end class Testdata::Subdir::Empty include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - sig { params(str: String).returns(Testdata::Subdir::Empty) } - def self.decode(str) - end - - sig { params(msg: Testdata::Subdir::Empty).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::Empty) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Testdata::Subdir::Empty, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - sig {void} def initialize; end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end class Testdata::Subdir::AllTypes include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - sig { params(str: String).returns(Testdata::Subdir::AllTypes) } - def self.decode(str) - end - - sig { params(msg: Testdata::Subdir::AllTypes).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::AllTypes) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Testdata::Subdir::AllTypes, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - sig do params( double_value: T.nilable(Float), @@ -546,44 +462,12 @@ class Testdata::Subdir::AllTypes sig { returns(T.nilable(Symbol)) } def test_oneof end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end class Testdata::Subdir::IntegerMessage::InnerNestedMessage include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - sig { params(str: String).returns(Testdata::Subdir::IntegerMessage::InnerNestedMessage) } - def self.decode(str) - end - - sig { params(msg: Testdata::Subdir::IntegerMessage::InnerNestedMessage).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage::InnerNestedMessage) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Testdata::Subdir::IntegerMessage::InnerNestedMessage, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - sig do params( value: T.nilable(Float) @@ -605,84 +489,20 @@ class Testdata::Subdir::IntegerMessage::InnerNestedMessage sig { void } def clear_value end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end class Testdata::Subdir::IntegerMessage::NestedEmpty include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - sig { params(str: String).returns(Testdata::Subdir::IntegerMessage::NestedEmpty) } - def self.decode(str) - end - - sig { params(msg: Testdata::Subdir::IntegerMessage::NestedEmpty).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::IntegerMessage::NestedEmpty) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Testdata::Subdir::IntegerMessage::NestedEmpty, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - sig {void} def initialize; end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end class Testdata::Subdir::AllTypes::InnerMessage include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - sig { params(str: String).returns(Testdata::Subdir::AllTypes::InnerMessage) } - def self.decode(str) - end - - sig { params(msg: Testdata::Subdir::AllTypes::InnerMessage).returns(String) } - def self.encode(msg) - end - - sig { params(str: String, kw: T.untyped).returns(Testdata::Subdir::AllTypes::InnerMessage) } - def self.decode_json(str, **kw) - end - - sig { params(msg: Testdata::Subdir::AllTypes::InnerMessage, kw: T.untyped).returns(String) } - def self.encode_json(msg, **kw) - end - - sig { returns(::Google::Protobuf::Descriptor) } - def self.descriptor - end - sig do params( value: T.nilable(String) @@ -704,18 +524,6 @@ class Testdata::Subdir::AllTypes::InnerMessage sig { void } def clear_value end - - sig { params(field: String).returns(T.untyped) } - def [](field) - end - - sig { params(field: String, value: T.untyped).void } - def []=(field, value) - end - - sig { returns(T::Hash[Symbol, T.untyped]) } - def to_h - end end module Testdata::Subdir::AllTypes::Corpus diff --git a/testdata/use_abstract_message/broken_field_name_pb.rbi b/testdata/use_abstract_message/broken_field_name_pb.rbi index 72231e5..33791f6 100644 --- a/testdata/use_abstract_message/broken_field_name_pb.rbi +++ b/testdata/use_abstract_message/broken_field_name_pb.rbi @@ -2,10 +2,7 @@ # source: broken_field_name.proto # typed: strict -class Example::Broken_field_name - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - +class Example::Broken_field_name < ::Google::Protobuf::AbstractMessage sig { params(str: String).returns(Example::Broken_field_name) } def self.decode(str) end diff --git a/testdata/use_abstract_message/broken_package_name_pb.rbi b/testdata/use_abstract_message/broken_package_name_pb.rbi index 1e9599c..412a3fc 100644 --- a/testdata/use_abstract_message/broken_package_name_pb.rbi +++ b/testdata/use_abstract_message/broken_package_name_pb.rbi @@ -2,10 +2,7 @@ # source: broken_package_name.proto # typed: strict -class Package2test::Message2test - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - +class Package2test::Message2test < ::Google::Protobuf::AbstractMessage sig { params(str: String).returns(Package2test::Message2test) } def self.decode(str) end diff --git a/testdata/use_abstract_message/example_pb.rbi b/testdata/use_abstract_message/example_pb.rbi index 4309f5c..de52b4f 100644 --- a/testdata/use_abstract_message/example_pb.rbi +++ b/testdata/use_abstract_message/example_pb.rbi @@ -2,10 +2,7 @@ # source: example.proto # typed: strict -class Example::Request - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - +class Example::Request < ::Google::Protobuf::AbstractMessage sig { params(str: String).returns(Example::Request) } def self.decode(str) end @@ -61,10 +58,7 @@ class Example::Request end end -class Example::Response - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - +class Example::Response < ::Google::Protobuf::AbstractMessage sig { params(str: String).returns(Example::Response) } def self.decode(str) end diff --git a/testdata/use_abstract_message/lowercase_pb.rbi b/testdata/use_abstract_message/lowercase_pb.rbi index 65fd4a3..0453424 100644 --- a/testdata/use_abstract_message/lowercase_pb.rbi +++ b/testdata/use_abstract_message/lowercase_pb.rbi @@ -2,10 +2,7 @@ # source: lowercase.proto # typed: strict -class Example::Lowercase - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - +class Example::Lowercase < ::Google::Protobuf::AbstractMessage sig { params(str: String).returns(Example::Lowercase) } def self.decode(str) end @@ -61,10 +58,7 @@ class Example::Lowercase end end -class Example::Lowercase_with_underscores - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - +class Example::Lowercase_with_underscores < ::Google::Protobuf::AbstractMessage sig { params(str: String).returns(Example::Lowercase_with_underscores) } def self.decode(str) end diff --git a/testdata/use_abstract_message/subdir/messages_pb.rbi b/testdata/use_abstract_message/subdir/messages_pb.rbi index 4bd0e3e..8efcc46 100644 --- a/testdata/use_abstract_message/subdir/messages_pb.rbi +++ b/testdata/use_abstract_message/subdir/messages_pb.rbi @@ -2,10 +2,7 @@ # source: subdir/messages.proto # typed: strict -class Testdata::Subdir::IntegerMessage - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - +class Testdata::Subdir::IntegerMessage < ::Google::Protobuf::AbstractMessage sig { params(str: String).returns(Testdata::Subdir::IntegerMessage) } def self.decode(str) end @@ -61,10 +58,7 @@ class Testdata::Subdir::IntegerMessage end end -class Testdata::Subdir::Empty - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - +class Testdata::Subdir::Empty < ::Google::Protobuf::AbstractMessage sig { params(str: String).returns(Testdata::Subdir::Empty) } def self.decode(str) end @@ -101,10 +95,7 @@ class Testdata::Subdir::Empty end end -class Testdata::Subdir::AllTypes - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - +class Testdata::Subdir::AllTypes < ::Google::Protobuf::AbstractMessage sig { params(str: String).returns(Testdata::Subdir::AllTypes) } def self.decode(str) end @@ -560,10 +551,7 @@ class Testdata::Subdir::AllTypes end end -class Testdata::Subdir::IntegerMessage::InnerNestedMessage - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - +class Testdata::Subdir::IntegerMessage::InnerNestedMessage < ::Google::Protobuf::AbstractMessage sig { params(str: String).returns(Testdata::Subdir::IntegerMessage::InnerNestedMessage) } def self.decode(str) end @@ -619,10 +607,7 @@ class Testdata::Subdir::IntegerMessage::InnerNestedMessage end end -class Testdata::Subdir::IntegerMessage::NestedEmpty - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - +class Testdata::Subdir::IntegerMessage::NestedEmpty < ::Google::Protobuf::AbstractMessage sig { params(str: String).returns(Testdata::Subdir::IntegerMessage::NestedEmpty) } def self.decode(str) end @@ -659,10 +644,7 @@ class Testdata::Subdir::IntegerMessage::NestedEmpty end end -class Testdata::Subdir::AllTypes::InnerMessage - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - +class Testdata::Subdir::AllTypes::InnerMessage < ::Google::Protobuf::AbstractMessage sig { params(str: String).returns(Testdata::Subdir::AllTypes::InnerMessage) } def self.decode(str) end