sorbet-runtime 0.4.4263 → 0.4.4286

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a26ee7f45d9c8d1b8e08c84eeb33779cc50f7ad1
4
- data.tar.gz: 77b2da9a30ecd013d04c300585d83214413b6210
3
+ metadata.gz: 58fd1f33f4010ee7ed667a320704eee0b40e9d52
4
+ data.tar.gz: 957e37e28a0da87dfcff6396623188d571ad1efb
5
5
  SHA512:
6
- metadata.gz: 0beba47673d8a2073ad6e4bdf52dd7d2aadd8d0a9e5d179afa45a8703f87f73ab0df6d9fac25e8e1868f313d716176fb19f6ae3f6590b4183ba0b70fe4e57852
7
- data.tar.gz: 83c6044d4ec9a695b3720b49f17785536aa26a7c99ed0e6f97f0e2fb9add1db0b175aeb5b291025351197deb4f8cab5c44cb8296d626cfa79e3571357a7f82c2
6
+ metadata.gz: 65b2b394682e14565f1fd12530c128bed0275bf520219e865cedc19c24e03e97dc83931a30649faf3cd1ad4935ca64596e58da8c51b74f9da21287c5b2e1e382
7
+ data.tar.gz: 618b4fc7577d7b4fef9b0f97843cc1e8dc47a3408e3904e27280b23219491dba9db8b94bd28e38494d653d93e3bf72223e10e443d4d5530e3ba6553964b5615d
@@ -18,6 +18,10 @@ module T::Private::Abstract::Declare
18
18
  mod.extend(T::InterfaceWrapper::Helpers)
19
19
 
20
20
  if mod.is_a?(Class)
21
+ if mod < T::Struct
22
+ raise "#{mod.name} is a subclass of T::Struct and cannot be declared abstract"
23
+ end
24
+
21
25
  if type == :interface
22
26
  # Since `interface!` is just `abstract!` with some extra validation, we could technically
23
27
  # allow this, but it's unclear there are good use cases, and it might be confusing.
data/lib/types/struct.rb CHANGED
@@ -1,8 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
  # typed: true
3
3
 
4
- class T::Struct
4
+ class T::InexactStruct
5
5
  include T::Props
6
6
  include T::Props::Serializable
7
7
  include T::Props::Constructor
8
8
  end
9
+
10
+ class T::Struct < T::InexactStruct
11
+ def self.inherited(subclass)
12
+ super(subclass)
13
+ T::Private::ClassUtils.replace_method(subclass.singleton_class, :inherited) do |s|
14
+ super(s)
15
+ raise "#{self.name} is a subclass of T::Struct and cannot be subclassed"
16
+ end
17
+ end
18
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sorbet-runtime
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4263
4
+ version: 0.4.4286
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-20 00:00:00.000000000 Z
11
+ date: 2019-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -137,7 +137,10 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
137
  requirements:
138
138
  - - ">="
139
139
  - !ruby/object:Gem::Version
140
- version: '0'
140
+ version: 2.3.0
141
+ - - "<"
142
+ - !ruby/object:Gem::Version
143
+ version: 2.7.0.preview1
141
144
  required_rubygems_version: !ruby/object:Gem::Requirement
142
145
  requirements:
143
146
  - - ">="