steep 0.40.0 → 0.41.0
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 +4 -4
- data/CHANGELOG.md +4 -0
- data/bin/output_rebaseline.rb +15 -30
- data/bin/output_test.rb +17 -57
- data/lib/steep.rb +4 -0
- data/lib/steep/cli.rb +9 -3
- data/lib/steep/drivers/check.rb +106 -14
- data/lib/steep/drivers/diagnostic_printer.rb +11 -11
- data/lib/steep/expectations.rb +159 -0
- data/lib/steep/project.rb +6 -0
- data/lib/steep/version.rb +1 -1
- data/smoke/alias/test_expectations.yml +96 -0
- data/smoke/and/test_expectations.yml +31 -0
- data/smoke/array/test_expectations.yml +103 -0
- data/smoke/block/test_expectations.yml +125 -0
- data/smoke/case/test_expectations.yml +47 -0
- data/smoke/class/test_expectations.yml +120 -0
- data/smoke/const/test_expectations.yml +139 -0
- data/smoke/diagnostics-rbs-duplicated/test_expectations.yml +13 -0
- data/smoke/diagnostics-rbs/test_expectations.yml +229 -0
- data/smoke/diagnostics/test_expectations.yml +477 -0
- data/smoke/dstr/test_expectations.yml +13 -0
- data/smoke/ensure/test_expectations.yml +62 -0
- data/smoke/enumerator/test_expectations.yml +135 -0
- data/smoke/extension/test_expectations.yml +61 -0
- data/smoke/hash/test_expectations.yml +81 -0
- data/smoke/hello/test_expectations.yml +25 -0
- data/smoke/if/test_expectations.yml +34 -0
- data/smoke/implements/test_expectations.yml +23 -0
- data/smoke/initialize/test_expectations.yml +1 -0
- data/smoke/integer/test_expectations.yml +101 -0
- data/smoke/interface/test_expectations.yml +23 -0
- data/smoke/kwbegin/test_expectations.yml +17 -0
- data/smoke/lambda/test_expectations.yml +39 -0
- data/smoke/literal/test_expectations.yml +106 -0
- data/smoke/map/test_expectations.yml +1 -0
- data/smoke/method/test_expectations.yml +90 -0
- data/smoke/module/test_expectations.yml +75 -0
- data/smoke/regexp/test_expectations.yml +615 -0
- data/smoke/regression/test_expectations.yml +43 -0
- data/smoke/rescue/test_expectations.yml +79 -0
- data/smoke/self/test_expectations.yml +23 -0
- data/smoke/skip/test_expectations.yml +23 -0
- data/smoke/stdout/test_expectations.yml +1 -0
- data/smoke/super/test_expectations.yml +79 -0
- data/smoke/toplevel/test_expectations.yml +15 -0
- data/smoke/tsort/test_expectations.yml +43 -0
- data/smoke/type_case/test_expectations.yml +48 -0
- data/smoke/yield/test_expectations.yml +68 -0
- metadata +41 -44
- data/smoke/alias/test.yaml +0 -73
- data/smoke/and/test.yaml +0 -24
- data/smoke/array/test.yaml +0 -80
- data/smoke/block/test.yaml +0 -96
- data/smoke/broken/Steepfile +0 -5
- data/smoke/broken/broken.rb +0 -0
- data/smoke/broken/broken.rbs +0 -0
- data/smoke/broken/test.yaml +0 -6
- data/smoke/case/test.yaml +0 -36
- data/smoke/class/test.yaml +0 -89
- data/smoke/const/test.yaml +0 -96
- data/smoke/diagnostics-rbs-duplicated/test.yaml +0 -10
- data/smoke/diagnostics-rbs/test.yaml +0 -142
- data/smoke/diagnostics/test.yaml +0 -333
- data/smoke/dstr/test.yaml +0 -10
- data/smoke/ensure/test.yaml +0 -47
- data/smoke/enumerator/test.yaml +0 -100
- data/smoke/extension/test.yaml +0 -50
- data/smoke/hash/test.yaml +0 -62
- data/smoke/hello/test.yaml +0 -18
- data/smoke/if/test.yaml +0 -27
- data/smoke/implements/test.yaml +0 -16
- data/smoke/initialize/test.yaml +0 -4
- data/smoke/integer/test.yaml +0 -66
- data/smoke/interface/test.yaml +0 -16
- data/smoke/kwbegin/test.yaml +0 -14
- data/smoke/lambda/test.yaml +0 -28
- data/smoke/literal/test.yaml +0 -79
- data/smoke/map/test.yaml +0 -4
- data/smoke/method/test.yaml +0 -71
- data/smoke/module/test.yaml +0 -51
- data/smoke/regexp/test.yaml +0 -372
- data/smoke/regression/test.yaml +0 -38
- data/smoke/rescue/test.yaml +0 -60
- data/smoke/self/test.yaml +0 -16
- data/smoke/skip/test.yaml +0 -16
- data/smoke/stdout/test.yaml +0 -4
- data/smoke/super/test.yaml +0 -52
- data/smoke/toplevel/test.yaml +0 -12
- data/smoke/tsort/test.yaml +0 -32
- data/smoke/type_case/test.yaml +0 -33
- data/smoke/yield/test.yaml +0 -49
@@ -1,142 +0,0 @@
|
|
1
|
-
---
|
2
|
-
test:
|
3
|
-
duplicated-method-definition.rbs:
|
4
|
-
diagnostics:
|
5
|
-
- |
|
6
|
-
duplicated-method-definition.rbs:2:2: [error] Non-overloading method definition of `foo` in `::DuplicatedMethodDefinitionError` cannot be duplicated
|
7
|
-
│ Diagnostic ID: Ruby::DuplicatedMethodDefinition
|
8
|
-
│
|
9
|
-
└ def foo: () -> void
|
10
|
-
~~~~~~~~~~~~~~~~~~~
|
11
|
-
- |
|
12
|
-
duplicated-method-definition.rbs:18:4: [error] Non-overloading method definition of `g` in `::DuplicatedMethodDefinitionError::A` cannot be duplicated
|
13
|
-
│ Diagnostic ID: Ruby::DuplicatedMethodDefinition
|
14
|
-
│
|
15
|
-
└ def g: () -> String
|
16
|
-
~~~~~~~~~~~~~~~~~~~
|
17
|
-
- |
|
18
|
-
duplicated-method-definition.rbs:6:4: [error] Non-overloading method definition of `f` in `::DuplicatedMethodDefinitionError::_Hello` cannot be duplicated
|
19
|
-
│ Diagnostic ID: Ruby::DuplicatedMethodDefinition
|
20
|
-
│
|
21
|
-
└ def f: () -> void
|
22
|
-
~~~~~~~~~~~~~~~~~
|
23
|
-
generic-parameter-mismatch.rbs:
|
24
|
-
diagnostics:
|
25
|
-
- |
|
26
|
-
generic-parameter-mismatch.rbs:5:2: [error] Different generic parameters are specified across definitions of `::GenericParameterMismatchError::Foo`
|
27
|
-
│ Diagnostic ID: Ruby::GenericParameterMismatch
|
28
|
-
│
|
29
|
-
└ class Foo[A, B]
|
30
|
-
~~~~~~~~~~~~~~~
|
31
|
-
invalid-method-overload.rbs:
|
32
|
-
diagnostics:
|
33
|
-
- |
|
34
|
-
invalid-method-overload.rbs:2:2: [error] Cannot find a non-overloading definition of `foo` in `::InvalidMethodOverload`
|
35
|
-
│ Diagnostic ID: Ruby::InvalidMethodOverload
|
36
|
-
│
|
37
|
-
└ def foo: () -> void | ...
|
38
|
-
~~~~~~~~~~~~~~~~~~~~~~~~~
|
39
|
-
invalid-type-application.rbs:
|
40
|
-
diagnostics:
|
41
|
-
- |
|
42
|
-
invalid-type-application.rbs:2:13: [error] Type `::Integer` is not generic but used as a generic type with 1 arguments
|
43
|
-
│ Diagnostic ID: Ruby::InvalidTypeApplication
|
44
|
-
│
|
45
|
-
└ type foo = Integer[3]
|
46
|
-
~~~~~~~~~~
|
47
|
-
- |
|
48
|
-
invalid-type-application.rbs:4:13: [error] Type `::Array` expects 1 arguments, but 2 arguments are given
|
49
|
-
│ Diagnostic ID: Ruby::InvalidTypeApplication
|
50
|
-
│
|
51
|
-
└ type bar = Array[1, 2]
|
52
|
-
~~~~~~~~~~~
|
53
|
-
- |
|
54
|
-
invalid-type-application.rbs:6:13: [error] Type `::Hash` is generic but used as a non generic type
|
55
|
-
│ Diagnostic ID: Ruby::InvalidTypeApplication
|
56
|
-
│
|
57
|
-
└ type baz = Hash
|
58
|
-
~~~~
|
59
|
-
invalid_variance_annotation.rbs:
|
60
|
-
diagnostics:
|
61
|
-
- |
|
62
|
-
invalid_variance_annotation.rbs:2:11: [error] The variance of type parameter `A` is covariant, but used in incompatible position here
|
63
|
-
│ Diagnostic ID: Ruby::InvalidVarianceAnnotation
|
64
|
-
│
|
65
|
-
└ def foo: (A) -> void
|
66
|
-
~~~~~~~~~~~
|
67
|
-
recursive-alias.rbs:
|
68
|
-
diagnostics:
|
69
|
-
- |
|
70
|
-
recursive-alias.rbs:2:2: [error] Circular method alias is detected in `::RecursiveAlias`: foo -> bar -> baz
|
71
|
-
│ Diagnostic ID: Ruby::RecursiveAlias
|
72
|
-
│
|
73
|
-
└ alias foo bar
|
74
|
-
~~~~~~~~~~~~~
|
75
|
-
recursive-class.rbs:
|
76
|
-
diagnostics:
|
77
|
-
- |
|
78
|
-
recursive-class.rbs:1:0: [error] Circular inheritance/mix-in is detected: ::Foo <: ::Bar <: ::Baz <: ::Foo
|
79
|
-
│ Diagnostic ID: Ruby::RecursiveAncestor
|
80
|
-
│
|
81
|
-
└ class Foo < Bar
|
82
|
-
~~~~~~~~~~~~~~~
|
83
|
-
- |
|
84
|
-
recursive-class.rbs:4:0: [error] Circular inheritance/mix-in is detected: ::Bar <: ::Baz <: ::Foo <: ::Bar
|
85
|
-
│ Diagnostic ID: Ruby::RecursiveAncestor
|
86
|
-
│
|
87
|
-
└ class Bar < Baz
|
88
|
-
~~~~~~~~~~~~~~~
|
89
|
-
- |
|
90
|
-
recursive-class.rbs:7:0: [error] Circular inheritance/mix-in is detected: ::Baz <: ::Foo <: ::Bar <: ::Baz
|
91
|
-
│ Diagnostic ID: Ruby::RecursiveAncestor
|
92
|
-
│
|
93
|
-
└ class Baz < Foo
|
94
|
-
~~~~~~~~~~~~~~~
|
95
|
-
superclass-mismatch.rbs:
|
96
|
-
diagnostics:
|
97
|
-
- |
|
98
|
-
superclass-mismatch.rbs:2:2: [error] Different superclasses are specified for `::SuperclassMismatch::Foo`
|
99
|
-
│ Diagnostic ID: Ruby::SuperclassMismatch
|
100
|
-
│
|
101
|
-
└ class Foo < String
|
102
|
-
~~~~~~~~~~~~~~~~~~
|
103
|
-
unknown-method-alias.rbs:
|
104
|
-
diagnostics:
|
105
|
-
- |
|
106
|
-
unknown-method-alias.rbs:2:2: [error] Cannot find the original method `bar` in `::UnknownMethodAlias`
|
107
|
-
│ Diagnostic ID: Ruby::UnknownMethodAlias
|
108
|
-
│
|
109
|
-
└ alias foo bar
|
110
|
-
~~~~~~~~~~~~~
|
111
|
-
unknown-type-name.rbs:
|
112
|
-
diagnostics:
|
113
|
-
- |
|
114
|
-
unknown-type-name.rbs:6:2: [error] Cannot find type `World`
|
115
|
-
│ Diagnostic ID: Ruby::UnknownTypeName
|
116
|
-
│
|
117
|
-
└ include World
|
118
|
-
~~~~~~~~~~~~~
|
119
|
-
- |
|
120
|
-
unknown-type-name.rbs:8:2: [error] Cannot find type `ABC`
|
121
|
-
│ Diagnostic ID: Ruby::UnknownTypeName
|
122
|
-
│
|
123
|
-
└ class Foo < ABC
|
124
|
-
~~~~~~~~~~~~~~~
|
125
|
-
- |
|
126
|
-
unknown-type-name.rbs:11:15: [error] Cannot find type `ZZZ`
|
127
|
-
│ Diagnostic ID: Ruby::UnknownTypeName
|
128
|
-
│
|
129
|
-
└ module Bar : ZZZ
|
130
|
-
~~~
|
131
|
-
- |
|
132
|
-
unknown-type-name.rbs:4:9: [error] Cannot find type `::World`
|
133
|
-
│ Diagnostic ID: Ruby::UnknownTypeName
|
134
|
-
│
|
135
|
-
└ Hello: World
|
136
|
-
~~~~~
|
137
|
-
- |
|
138
|
-
unknown-type-name.rbs:2:13: [error] Cannot find type `::bar`
|
139
|
-
│ Diagnostic ID: Ruby::UnknownTypeName
|
140
|
-
│
|
141
|
-
└ type foo = bar
|
142
|
-
~~~
|
data/smoke/diagnostics/test.yaml
DELETED
@@ -1,333 +0,0 @@
|
|
1
|
-
---
|
2
|
-
test:
|
3
|
-
argument_type_mismatch.rb:
|
4
|
-
diagnostics:
|
5
|
-
- |
|
6
|
-
argument_type_mismatch.rb:1:9: [error] Cannot pass a value of type `::String` as an argument of type `::int`
|
7
|
-
│ ::String <: ::int
|
8
|
-
│ ::String <: (::Integer | ::_ToInt)
|
9
|
-
│ ::String <: ::Integer
|
10
|
-
│ ::Object <: ::Integer
|
11
|
-
│ ::BasicObject <: ::Integer
|
12
|
-
│
|
13
|
-
│ Diagnostic ID: Ruby::ArgumentTypeMismatch
|
14
|
-
│
|
15
|
-
└ [123].at("")
|
16
|
-
~~
|
17
|
-
block_body_type_mismatch.rb:
|
18
|
-
diagnostics:
|
19
|
-
- |
|
20
|
-
block_body_type_mismatch.rb:1:30: [error] Cannot allow block body have type `::String` because declared as type `::Integer`
|
21
|
-
│ ::String <: ::Integer
|
22
|
-
│ ::Object <: ::Integer
|
23
|
-
│ ::BasicObject <: ::Integer
|
24
|
-
│
|
25
|
-
│ Diagnostic ID: Ruby::BlockBodyTypeMismatch
|
26
|
-
│
|
27
|
-
└ BlockBodyTypeMismatch.new.foo { "" }
|
28
|
-
~~~~~~
|
29
|
-
block_type_mismatch.rb:
|
30
|
-
diagnostics:
|
31
|
-
- |
|
32
|
-
block_type_mismatch.rb:3:8: [error] Cannot pass a value of type `^(untyped, untyped, untyped) -> untyped` as a block-pass-argument of type `^(::Integer) -> void`
|
33
|
-
│ ^(untyped, untyped, untyped) -> untyped <: ^(::Integer) -> void
|
34
|
-
│
|
35
|
-
│ Diagnostic ID: Ruby::BlockTypeMismatch
|
36
|
-
│
|
37
|
-
└ 123.tap(&lam)
|
38
|
-
~~~~
|
39
|
-
break_type_mismatch.rb:
|
40
|
-
diagnostics:
|
41
|
-
- |
|
42
|
-
break_type_mismatch.rb:1:10: [error] Cannot break with a value of type `::String` because type `::Integer` is assumed
|
43
|
-
│ ::String <: ::Integer
|
44
|
-
│ ::Object <: ::Integer
|
45
|
-
│ ::BasicObject <: ::Integer
|
46
|
-
│
|
47
|
-
│ Diagnostic ID: Ruby::BreakTypeMismatch
|
48
|
-
│
|
49
|
-
└ 123.tap { break "" }
|
50
|
-
~~~~~~~~
|
51
|
-
else_on_exhaustive_case.rb:
|
52
|
-
diagnostics:
|
53
|
-
- |
|
54
|
-
else_on_exhaustive_case.rb:11:2: [error] The branch is unreachable because the condition is exhaustive
|
55
|
-
│ Diagnostic ID: Ruby::ElseOnExhaustiveCase
|
56
|
-
│
|
57
|
-
└ raise "Unexpected value"
|
58
|
-
~~~~~~~~~~~~~~~~~~~~~~~~
|
59
|
-
incompatible_annotation.rb:
|
60
|
-
diagnostics:
|
61
|
-
- |
|
62
|
-
incompatible_annotation.rb:5:2: [error] Type annotation about `a` is incompatible since ::String <: ::Array[::Integer] doesn't hold
|
63
|
-
│ ::String <: ::Array[::Integer]
|
64
|
-
│ ::Object <: ::Array[::Integer]
|
65
|
-
│ ::BasicObject <: ::Array[::Integer]
|
66
|
-
│
|
67
|
-
│ Diagnostic ID: Ruby::IncompatibleAnnotation
|
68
|
-
│
|
69
|
-
└ a + ""
|
70
|
-
~~~~~~
|
71
|
-
incompatible_argument.rb:
|
72
|
-
diagnostics:
|
73
|
-
- |
|
74
|
-
incompatible_argument.rb:1:6: [error] Cannot find method `at` of type `::Array[::Integer]` with compatible arity
|
75
|
-
│ Method types:
|
76
|
-
│ def at: (::int) -> (::Integer | nil)
|
77
|
-
│
|
78
|
-
│ Diagnostic ID: Ruby::IncompatibleArguments
|
79
|
-
│
|
80
|
-
└ [123].at(1,2,3)
|
81
|
-
~~
|
82
|
-
incompatible_assignment.rb:
|
83
|
-
diagnostics:
|
84
|
-
- |
|
85
|
-
incompatible_assignment.rb:2:0: [error] Cannot assign a value of type `::Integer` to a variable of type `::String`
|
86
|
-
│ ::Integer <: ::String
|
87
|
-
│ ::Numeric <: ::String
|
88
|
-
│ ::Object <: ::String
|
89
|
-
│ ::BasicObject <: ::String
|
90
|
-
│
|
91
|
-
│ Diagnostic ID: Ruby::IncompatibleAssignment
|
92
|
-
│
|
93
|
-
└ x = 3
|
94
|
-
~~~~~
|
95
|
-
- |
|
96
|
-
incompatible_assignment.rb:5:0: [error] Cannot assign a value of type `::Integer` to a constant of type `::String`
|
97
|
-
│ ::Integer <: ::String
|
98
|
-
│ ::Numeric <: ::String
|
99
|
-
│ ::Object <: ::String
|
100
|
-
│ ::BasicObject <: ::String
|
101
|
-
│
|
102
|
-
│ Diagnostic ID: Ruby::IncompatibleAssignment
|
103
|
-
│
|
104
|
-
└ X = 123
|
105
|
-
~~~~~~~
|
106
|
-
- |
|
107
|
-
incompatible_assignment.rb:8:0: [error] Cannot assign a value of type `::Symbol` to a variable of type `::Integer`
|
108
|
-
│ ::Symbol <: ::Integer
|
109
|
-
│ ::Object <: ::Integer
|
110
|
-
│ ::BasicObject <: ::Integer
|
111
|
-
│
|
112
|
-
│ Diagnostic ID: Ruby::IncompatibleAssignment
|
113
|
-
│
|
114
|
-
└ @x = :foo
|
115
|
-
~~~~~~~~~
|
116
|
-
method_arity_mismatch.rb:
|
117
|
-
diagnostics:
|
118
|
-
- |
|
119
|
-
method_arity_mismatch.rb:3:9: [error] Method parameters are incompatible with declaration `() -> void`
|
120
|
-
│ Diagnostic ID: Ruby::MethodArityMismatch
|
121
|
-
│
|
122
|
-
└ def foo(x)
|
123
|
-
~~~
|
124
|
-
- |
|
125
|
-
method_arity_mismatch.rb:8:11: [error] Method parameters are incompatible with declaration `(::String) -> void`
|
126
|
-
│ Diagnostic ID: Ruby::MethodArityMismatch
|
127
|
-
│
|
128
|
-
└ def self.bar
|
129
|
-
~~~
|
130
|
-
method_body_type_mismatch.rb:
|
131
|
-
diagnostics:
|
132
|
-
- |
|
133
|
-
method_body_type_mismatch.rb:3:2: [error] Cannot allow method body have type `::String` because declared as type `::Integer`
|
134
|
-
│ ::String <: ::Integer
|
135
|
-
│ ::Object <: ::Integer
|
136
|
-
│ ::BasicObject <: ::Integer
|
137
|
-
│
|
138
|
-
│ Diagnostic ID: Ruby::MethodBodyTypeMismatch
|
139
|
-
│
|
140
|
-
└ def foo
|
141
|
-
~~~~~~~
|
142
|
-
method_definition_missing.rb:
|
143
|
-
diagnostics:
|
144
|
-
- |
|
145
|
-
method_definition_missing.rb:1:6: [error] Cannot find implementation of method `::MethodDefinitionMissing#foo`
|
146
|
-
│ Diagnostic ID: Ruby::MethodDefinitionMissing
|
147
|
-
│
|
148
|
-
└ class MethodDefinitionMissing
|
149
|
-
~~~~~~~~~~~~~~~~~~~~~~~
|
150
|
-
method_return_type_annotation_mismatch.rb:
|
151
|
-
diagnostics:
|
152
|
-
- |
|
153
|
-
method_return_type_annotation_mismatch.rb:3:2: [error] Annotation `@type return` specifies type `::Integer` where declared as type `::String`
|
154
|
-
│ ::Integer <: ::String
|
155
|
-
│ ::Numeric <: ::String
|
156
|
-
│ ::Object <: ::String
|
157
|
-
│ ::BasicObject <: ::String
|
158
|
-
│
|
159
|
-
│ Diagnostic ID: Ruby::MethodReturnTypeAnnotationMismatch
|
160
|
-
│
|
161
|
-
└ def foo
|
162
|
-
~~~~~~~
|
163
|
-
missing_keyword.rb:
|
164
|
-
diagnostics:
|
165
|
-
- |
|
166
|
-
missing_keyword.rb:1:23: [error] Cannot omit required keywords: `foo`
|
167
|
-
│ Diagnostic ID: Ruby::MissingKeyword
|
168
|
-
│
|
169
|
-
└ MissingKeyword.new.foo bar: :bar
|
170
|
-
~~~~~~~~~
|
171
|
-
no_method.rb:
|
172
|
-
diagnostics:
|
173
|
-
- |
|
174
|
-
no_method.rb:1:2: [error] Type `::Integer` does not have method `foo`
|
175
|
-
│ Diagnostic ID: Ruby::NoMethod
|
176
|
-
│
|
177
|
-
└ 1.foo()
|
178
|
-
~~~
|
179
|
-
required_block_missing.rb:
|
180
|
-
diagnostics:
|
181
|
-
- |
|
182
|
-
required_block_missing.rb:1:4: [error] The method cannot be called without a block
|
183
|
-
│ Diagnostic ID: Ruby::RequiredBlockMissing
|
184
|
-
│
|
185
|
-
└ 123.tap()
|
186
|
-
~~~
|
187
|
-
return_type_mismatch.rb:
|
188
|
-
diagnostics:
|
189
|
-
- |
|
190
|
-
return_type_mismatch.rb:4:4: [error] The method cannot return a value of type `::Integer` because declared as type `::String`
|
191
|
-
│ ::Integer <: ::String
|
192
|
-
│ ::Numeric <: ::String
|
193
|
-
│ ::Object <: ::String
|
194
|
-
│ ::BasicObject <: ::String
|
195
|
-
│
|
196
|
-
│ Diagnostic ID: Ruby::ReturnTypeMismatch
|
197
|
-
│
|
198
|
-
└ return 30
|
199
|
-
~~~~~~~~~
|
200
|
-
unexpected_block_given.rb:
|
201
|
-
diagnostics:
|
202
|
-
- |
|
203
|
-
unexpected_block_given.rb:1:10: [error] The method cannot be called with a block
|
204
|
-
│ Diagnostic ID: Ruby::UnexpectedBlockGiven
|
205
|
-
│
|
206
|
-
└ [1].at(1) { 123 }
|
207
|
-
~~~~~~~
|
208
|
-
unexpected_dynamic_method.rb:
|
209
|
-
diagnostics:
|
210
|
-
- |
|
211
|
-
unexpected_dynamic_method.rb:1:6: [error] @dynamic annotation contains unknown method name `foo`
|
212
|
-
│ Diagnostic ID: Ruby::UnexpectedDynamicMethod
|
213
|
-
│
|
214
|
-
└ class UnexpectedDynamicMethod
|
215
|
-
~~~~~~~~~~~~~~~~~~~~~~~
|
216
|
-
unexpected_jump.rb:
|
217
|
-
diagnostics:
|
218
|
-
- |
|
219
|
-
unexpected_jump.rb:1:0: [error] Cannot jump from here
|
220
|
-
│ Diagnostic ID: Ruby::UnexpectedJump
|
221
|
-
│
|
222
|
-
└ break
|
223
|
-
~~~~~
|
224
|
-
- |
|
225
|
-
unexpected_jump.rb:3:0: [error] Cannot jump from here
|
226
|
-
│ Diagnostic ID: Ruby::UnexpectedJump
|
227
|
-
│
|
228
|
-
└ next
|
229
|
-
~~~~
|
230
|
-
unexpected_jump_value.rb:
|
231
|
-
diagnostics:
|
232
|
-
- |
|
233
|
-
unexpected_jump_value.rb:2:2: [error] The value given to break will be ignored
|
234
|
-
│ Diagnostic ID: Ruby::UnexpectedJumpValue
|
235
|
-
│
|
236
|
-
└ break 10
|
237
|
-
~~~~~~~~
|
238
|
-
unexpected_keyword.rb:
|
239
|
-
diagnostics:
|
240
|
-
- |
|
241
|
-
unexpected_keyword.rb:1:26: [error] Cannot specify unexpected keyword arguments: `bar`
|
242
|
-
│ Diagnostic ID: Ruby::UnexpectedKeyword
|
243
|
-
│
|
244
|
-
└ UnexpectedKeyword.new.foo(foo: 123, bar: :bar)
|
245
|
-
~~~~~~~~~~~~~~~~~~~
|
246
|
-
unexpected_splat.rb:
|
247
|
-
diagnostics:
|
248
|
-
- |
|
249
|
-
unexpected_splat.rb:1:13: [error] Hash splat is given with object other than `Hash[X, Y]`
|
250
|
-
│ Diagnostic ID: Ruby::UnexpectedSplat
|
251
|
-
│
|
252
|
-
└ { foo: :bar, **123 }
|
253
|
-
~~~~~
|
254
|
-
unexpected_yield.rb:
|
255
|
-
diagnostics:
|
256
|
-
- |
|
257
|
-
unexpected_yield.rb:4:4: [error] No block given for `yield`
|
258
|
-
│ Diagnostic ID: Ruby::UnexpectedYield
|
259
|
-
│
|
260
|
-
└ yield
|
261
|
-
~~~~~
|
262
|
-
- |
|
263
|
-
unexpected_yield.rb:4:4: [error] Cannot detect the type of the expression
|
264
|
-
│ Diagnostic ID: Ruby::FallbackAny
|
265
|
-
│
|
266
|
-
└ yield
|
267
|
-
~~~~~
|
268
|
-
unknown_constant_assigned.rb:
|
269
|
-
diagnostics:
|
270
|
-
- |
|
271
|
-
unknown_constant_assigned.rb:2:2: [error] Cannot find the declaration of constant `FOO`
|
272
|
-
│ Diagnostic ID: Ruby::UnknownConstantAssigned
|
273
|
-
│
|
274
|
-
└ FOO = 123
|
275
|
-
~~~
|
276
|
-
- |
|
277
|
-
unknown_constant_assigned.rb:4:2: [error] Cannot detect the type of the expression
|
278
|
-
│ Diagnostic ID: Ruby::FallbackAny
|
279
|
-
│
|
280
|
-
└ FOO::BAR = 123
|
281
|
-
~~~
|
282
|
-
- |
|
283
|
-
unknown_constant_assigned.rb:4:2: [error] Cannot find the declaration of constant `FOO::BAR`
|
284
|
-
│ Diagnostic ID: Ruby::UnknownConstantAssigned
|
285
|
-
│
|
286
|
-
└ FOO::BAR = 123
|
287
|
-
~~~~~~~~
|
288
|
-
- |
|
289
|
-
unknown_constant_assigned.rb:6:2: [error] Cannot find the declaration of constant `::FOO`
|
290
|
-
│ Diagnostic ID: Ruby::UnknownConstantAssigned
|
291
|
-
│
|
292
|
-
└ ::FOO = :foo
|
293
|
-
~~~~~
|
294
|
-
unresolved_overloading.rb:
|
295
|
-
diagnostics:
|
296
|
-
- |
|
297
|
-
unresolved_overloading.rb:1:0: [error] Cannot find compatible overloading of method `+` of type `::Integer`
|
298
|
-
│ Method types:
|
299
|
-
│ def +: (::Integer) -> ::Integer
|
300
|
-
│ | (::Float) -> ::Float
|
301
|
-
│ | (::Rational) -> ::Rational
|
302
|
-
│ | (::Complex) -> ::Complex
|
303
|
-
│
|
304
|
-
│ Diagnostic ID: Ruby::UnresolvedOverloading
|
305
|
-
│
|
306
|
-
└ 1 + ""
|
307
|
-
~~~~~~
|
308
|
-
unsatisfiable_constraint.rb:
|
309
|
-
diagnostics:
|
310
|
-
- |
|
311
|
-
unsatisfiable_constraint.rb:6:4: [error] Type `::String` does not have method `foo`
|
312
|
-
│ Diagnostic ID: Ruby::NoMethod
|
313
|
-
│
|
314
|
-
└ x.foo()
|
315
|
-
~~~
|
316
|
-
- |
|
317
|
-
unsatisfiable_constraint.rb:4:0: [error] Unsatisfiable constraint `::Array[untyped] <: A(1) <: ::String` is generated through (A(1)) { (A(1)) -> void } -> B(2)
|
318
|
-
│ ::Array[untyped] <: ::String
|
319
|
-
│ ::Object <: ::String
|
320
|
-
│ ::BasicObject <: ::String
|
321
|
-
│
|
322
|
-
│ Diagnostic ID: Ruby::UnsatisfiableConstraint
|
323
|
-
│
|
324
|
-
└ test.foo([]) do |x|
|
325
|
-
~~~~~~~~~~~~~~~~~~~
|
326
|
-
unsupported_syntax.rb:
|
327
|
-
diagnostics:
|
328
|
-
- |
|
329
|
-
unsupported_syntax.rb:1:0: [error] sclass receiver must be instance type or singleton type, but type given `(::Integer | ::String | nil)`
|
330
|
-
│ Diagnostic ID: Ruby::UnsupportedSyntax
|
331
|
-
│
|
332
|
-
└ class <<[1, ""].sample
|
333
|
-
~~~~~~~~~~~~~~~~~~~~~~
|