sorbet-runtime 0.5.9279 → 0.5.9287

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 97e70ccff1ad31b25ca778b170ed78fc295fbfd64293fce5b40fbddf2eab7393
4
- data.tar.gz: 02d10f5a30930ed5dae32d9e6dd24f1dab1baf5981f2c008f6d7f1fdad109ea5
3
+ metadata.gz: 53cf2740a5d62c687f1c05148c6e59546c1a0250b706a960e0e1ca998dd9c917
4
+ data.tar.gz: c607bcf2b4cf9382f15c4274f963bc1033a8dad286b278551a7fb52a84f4b22c
5
5
  SHA512:
6
- metadata.gz: caf8dece46b93623a080f58da1aaa7e7ef193529254d59dad18dfea48cf77d42eb7fd801bc608a104ca05b138b79f896fae55adc9a24e10142f2aadd6d090077
7
- data.tar.gz: bfd44f7636f86e8d10055887dfb1cc95fbe17d4600c9e4c35f929f52f83e13b49b58d6a610c468d494b16b1bb346f40aa0147485dea2712448128d152b22e54a
6
+ metadata.gz: 7bc3a0dc930e6f8689e041cdc129532607bc295395d190e35d15b6aff494ec9efb98a2d993042eaca6c2d1a6445ba2d5c51c1e44599837dfd39ed7cf2ba3cc98
7
+ data.tar.gz: 29982ffa0238b6aa91dd653d54d4bead28fb2f99ede5bac9826e758b99e6ce50e0f0f78777ab88235e8209c01c4d8ad71aae2e1a48eef514f0aa33b035e32616
@@ -3,11 +3,11 @@
3
3
 
4
4
  module T::Private::Sealed
5
5
  module NoInherit
6
- def inherited(other)
6
+ def inherited(child)
7
7
  super
8
8
  this_line = Kernel.caller.find {|line| !line.match(/in `inherited'$/)}
9
- T::Private::Sealed.validate_inheritance(this_line, self, 'inherited')
10
- @sorbet_sealed_module_all_subclasses << other
9
+ T::Private::Sealed.validate_inheritance(this_line, self, child, 'inherited')
10
+ @sorbet_sealed_module_all_subclasses << child
11
11
  end
12
12
 
13
13
  def sealed_subclasses
@@ -20,18 +20,18 @@ module T::Private::Sealed
20
20
  end
21
21
 
22
22
  module NoIncludeExtend
23
- def included(other)
23
+ def included(child)
24
24
  super
25
25
  this_line = Kernel.caller.find {|line| !line.match(/in `included'$/)}
26
- T::Private::Sealed.validate_inheritance(this_line, self, 'included')
27
- @sorbet_sealed_module_all_subclasses << other
26
+ T::Private::Sealed.validate_inheritance(this_line, self, child, 'included')
27
+ @sorbet_sealed_module_all_subclasses << child
28
28
  end
29
29
 
30
- def extended(other)
30
+ def extended(child)
31
31
  super
32
32
  this_line = Kernel.caller.find {|line| !line.match(/in `extended'$/)}
33
- T::Private::Sealed.validate_inheritance(this_line, self, 'extended')
34
- @sorbet_sealed_module_all_subclasses << other
33
+ T::Private::Sealed.validate_inheritance(this_line, self, child, 'extended')
34
+ @sorbet_sealed_module_all_subclasses << child
35
35
  end
36
36
 
37
37
  def sealed_subclasses
@@ -68,12 +68,15 @@ module T::Private::Sealed
68
68
  mod.instance_variable_defined?(:@sorbet_sealed_module_decl_file)
69
69
  end
70
70
 
71
- def self.validate_inheritance(this_line, parent, verb)
71
+ def self.validate_inheritance(this_line, parent, child, verb)
72
72
  this_file = this_line&.split(':')&.first
73
73
  decl_file = parent.instance_variable_get(:@sorbet_sealed_module_decl_file)
74
74
 
75
- if !this_file || !decl_file
76
- raise "Couldn't determine enough file information for checking sealed modules"
75
+ if !this_file
76
+ raise "Could not use backtrace to determine file for #{verb} child #{child}"
77
+ end
78
+ if !decl_file
79
+ raise "#{parent} does not seem to be a sealed module (#{verb} by #{child})"
77
80
  end
78
81
 
79
82
  if !this_file.start_with?(decl_file)
@@ -133,7 +133,7 @@ module T::Types
133
133
  if valid?(obj)
134
134
  nil
135
135
  else
136
- "Expected type #{self.name}, got #{describe_obj(obj)}"
136
+ error_message(obj)
137
137
  end
138
138
  end
139
139
 
@@ -141,10 +141,14 @@ module T::Types
141
141
  if recursively_valid?(obj)
142
142
  nil
143
143
  else
144
- "Expected type #{self.name}, got #{describe_obj(obj)}"
144
+ error_message(obj)
145
145
  end
146
146
  end
147
147
 
148
+ private def error_message(obj)
149
+ "Expected type #{self.name}, got #{describe_obj(obj)}"
150
+ end
151
+
148
152
  def validate!(obj)
149
153
  err = error_message_for_obj(obj)
150
154
  raise TypeError.new(err) if err
@@ -34,6 +34,23 @@ module T::Types
34
34
  end
35
35
  end
36
36
 
37
+ # overrides Base
38
+ private def error_message(obj)
39
+ error_message = super(obj)
40
+ actual_name = obj.class.name
41
+
42
+ return error_message unless name == actual_name
43
+
44
+ <<~MSG.strip
45
+ #{error_message}
46
+
47
+ The expected type and received object type have the same name but refer to different constants.
48
+ Expected type is #{name} with object id #{@raw_type.__id__}, but received type is #{actual_name} with object id #{obj.class.__id__}.
49
+
50
+ There might be a constant reloading problem in your application.
51
+ MSG
52
+ end
53
+
37
54
  def to_nilable
38
55
  @nilable ||= T::Types::Union.new([self, T::Utils::Nilable::NIL_TYPE])
39
56
  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.5.9279
4
+ version: 0.5.9287
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-27 00:00:00.000000000 Z
11
+ date: 2021-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest