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.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/bin/output_rebaseline.rb +15 -30
  4. data/bin/output_test.rb +17 -57
  5. data/lib/steep.rb +4 -0
  6. data/lib/steep/cli.rb +9 -3
  7. data/lib/steep/drivers/check.rb +106 -14
  8. data/lib/steep/drivers/diagnostic_printer.rb +11 -11
  9. data/lib/steep/expectations.rb +159 -0
  10. data/lib/steep/project.rb +6 -0
  11. data/lib/steep/version.rb +1 -1
  12. data/smoke/alias/test_expectations.yml +96 -0
  13. data/smoke/and/test_expectations.yml +31 -0
  14. data/smoke/array/test_expectations.yml +103 -0
  15. data/smoke/block/test_expectations.yml +125 -0
  16. data/smoke/case/test_expectations.yml +47 -0
  17. data/smoke/class/test_expectations.yml +120 -0
  18. data/smoke/const/test_expectations.yml +139 -0
  19. data/smoke/diagnostics-rbs-duplicated/test_expectations.yml +13 -0
  20. data/smoke/diagnostics-rbs/test_expectations.yml +229 -0
  21. data/smoke/diagnostics/test_expectations.yml +477 -0
  22. data/smoke/dstr/test_expectations.yml +13 -0
  23. data/smoke/ensure/test_expectations.yml +62 -0
  24. data/smoke/enumerator/test_expectations.yml +135 -0
  25. data/smoke/extension/test_expectations.yml +61 -0
  26. data/smoke/hash/test_expectations.yml +81 -0
  27. data/smoke/hello/test_expectations.yml +25 -0
  28. data/smoke/if/test_expectations.yml +34 -0
  29. data/smoke/implements/test_expectations.yml +23 -0
  30. data/smoke/initialize/test_expectations.yml +1 -0
  31. data/smoke/integer/test_expectations.yml +101 -0
  32. data/smoke/interface/test_expectations.yml +23 -0
  33. data/smoke/kwbegin/test_expectations.yml +17 -0
  34. data/smoke/lambda/test_expectations.yml +39 -0
  35. data/smoke/literal/test_expectations.yml +106 -0
  36. data/smoke/map/test_expectations.yml +1 -0
  37. data/smoke/method/test_expectations.yml +90 -0
  38. data/smoke/module/test_expectations.yml +75 -0
  39. data/smoke/regexp/test_expectations.yml +615 -0
  40. data/smoke/regression/test_expectations.yml +43 -0
  41. data/smoke/rescue/test_expectations.yml +79 -0
  42. data/smoke/self/test_expectations.yml +23 -0
  43. data/smoke/skip/test_expectations.yml +23 -0
  44. data/smoke/stdout/test_expectations.yml +1 -0
  45. data/smoke/super/test_expectations.yml +79 -0
  46. data/smoke/toplevel/test_expectations.yml +15 -0
  47. data/smoke/tsort/test_expectations.yml +43 -0
  48. data/smoke/type_case/test_expectations.yml +48 -0
  49. data/smoke/yield/test_expectations.yml +68 -0
  50. metadata +41 -44
  51. data/smoke/alias/test.yaml +0 -73
  52. data/smoke/and/test.yaml +0 -24
  53. data/smoke/array/test.yaml +0 -80
  54. data/smoke/block/test.yaml +0 -96
  55. data/smoke/broken/Steepfile +0 -5
  56. data/smoke/broken/broken.rb +0 -0
  57. data/smoke/broken/broken.rbs +0 -0
  58. data/smoke/broken/test.yaml +0 -6
  59. data/smoke/case/test.yaml +0 -36
  60. data/smoke/class/test.yaml +0 -89
  61. data/smoke/const/test.yaml +0 -96
  62. data/smoke/diagnostics-rbs-duplicated/test.yaml +0 -10
  63. data/smoke/diagnostics-rbs/test.yaml +0 -142
  64. data/smoke/diagnostics/test.yaml +0 -333
  65. data/smoke/dstr/test.yaml +0 -10
  66. data/smoke/ensure/test.yaml +0 -47
  67. data/smoke/enumerator/test.yaml +0 -100
  68. data/smoke/extension/test.yaml +0 -50
  69. data/smoke/hash/test.yaml +0 -62
  70. data/smoke/hello/test.yaml +0 -18
  71. data/smoke/if/test.yaml +0 -27
  72. data/smoke/implements/test.yaml +0 -16
  73. data/smoke/initialize/test.yaml +0 -4
  74. data/smoke/integer/test.yaml +0 -66
  75. data/smoke/interface/test.yaml +0 -16
  76. data/smoke/kwbegin/test.yaml +0 -14
  77. data/smoke/lambda/test.yaml +0 -28
  78. data/smoke/literal/test.yaml +0 -79
  79. data/smoke/map/test.yaml +0 -4
  80. data/smoke/method/test.yaml +0 -71
  81. data/smoke/module/test.yaml +0 -51
  82. data/smoke/regexp/test.yaml +0 -372
  83. data/smoke/regression/test.yaml +0 -38
  84. data/smoke/rescue/test.yaml +0 -60
  85. data/smoke/self/test.yaml +0 -16
  86. data/smoke/skip/test.yaml +0 -16
  87. data/smoke/stdout/test.yaml +0 -4
  88. data/smoke/super/test.yaml +0 -52
  89. data/smoke/toplevel/test.yaml +0 -12
  90. data/smoke/tsort/test.yaml +0 -32
  91. data/smoke/type_case/test.yaml +0 -33
  92. data/smoke/yield/test.yaml +0 -49
@@ -1,73 +0,0 @@
1
- ---
2
- test:
3
- a.rb:
4
- diagnostics:
5
- - |
6
- a.rb:4:0: [error] Cannot find compatible overloading of method `+` of type `(::String | ::Integer)`
7
- │ Method types:
8
- │ def +: ((::string & ::Integer)) -> (::String | ::Integer)
9
- │ | ((::string & ::Float)) -> (::String | ::Float)
10
- │ | ((::string & ::Rational)) -> (::String | ::Rational)
11
- │ | ((::string & ::Complex)) -> (::String | ::Complex)
12
-
13
- │ Diagnostic ID: Ruby::UnresolvedOverloading
14
-
15
- └ x + 123
16
- ~~~~~~~
17
- - |
18
- a.rb:13:2: [error] Cannot assign a value of type `::String` to a variable of type `::Symbol`
19
- │ ::String <: ::Symbol
20
- │ ::Object <: ::Symbol
21
- │ ::BasicObject <: ::Symbol
22
-
23
- │ Diagnostic ID: Ruby::IncompatibleAssignment
24
-
25
- └ z = x
26
- ~~~~~
27
- - |
28
- a.rb:15:2: [error] Cannot assign a value of type `::Integer` to a variable of type `::Symbol`
29
- │ ::Integer <: ::Symbol
30
- │ ::Numeric <: ::Symbol
31
- │ ::Object <: ::Symbol
32
- │ ::BasicObject <: ::Symbol
33
-
34
- │ Diagnostic ID: Ruby::IncompatibleAssignment
35
-
36
- └ z = x
37
- ~~~~~
38
- b.rb:
39
- diagnostics:
40
- - |
41
- b.rb:6:0: [error] Cannot assign a value of type `::String` to a variable of type `::Integer`
42
- │ ::String <: ::Integer
43
- │ ::Object <: ::Integer
44
- │ ::BasicObject <: ::Integer
45
-
46
- │ Diagnostic ID: Ruby::IncompatibleAssignment
47
-
48
- └ x = a[0]
49
- ~~~~~~~~
50
- c.rb:
51
- diagnostics:
52
- - |
53
- c.rb:3:0: [error] Cannot assign a value of type `::Integer` to a variable of type `::String`
54
- │ ::Integer <: ::String
55
- │ ::Numeric <: ::String
56
- │ ::Object <: ::String
57
- │ ::BasicObject <: ::String
58
-
59
- │ Diagnostic ID: Ruby::IncompatibleAssignment
60
-
61
- └ x = AliasMethodArg.new.foo(:foo)
62
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
63
- - |
64
- c.rb:8:0: [error] Cannot assign a value of type `::Integer` to a variable of type `::String`
65
- │ ::Integer <: ::String
66
- │ ::Numeric <: ::String
67
- │ ::Object <: ::String
68
- │ ::BasicObject <: ::String
69
-
70
- │ Diagnostic ID: Ruby::IncompatibleAssignment
71
-
72
- └ x = AliasMethodArg.new.foo(name)
73
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
data/smoke/and/test.yaml DELETED
@@ -1,24 +0,0 @@
1
- ---
2
- test:
3
- a.rb:
4
- diagnostics:
5
- - |
6
- a.rb:6:0: [error] Cannot assign a value of type `(::String | nil)` to a variable of type `::String`
7
- │ (::String | nil) <: ::String
8
- │ nil <: ::String
9
-
10
- │ Diagnostic ID: Ruby::IncompatibleAssignment
11
-
12
- └ b = a && a.to_str
13
- ~~~~~~~~~~~~~~~~~
14
- - |
15
- a.rb:8:0: [error] Cannot assign a value of type `(::String | nil)` to a variable of type `::Integer`
16
- │ (::String | nil) <: ::Integer
17
- │ ::String <: ::Integer
18
- │ ::Object <: ::Integer
19
- │ ::BasicObject <: ::Integer
20
-
21
- │ Diagnostic ID: Ruby::IncompatibleAssignment
22
-
23
- └ c = a && a.to_str
24
- ~~~~~~~~~~~~~~~~~
@@ -1,80 +0,0 @@
1
- ---
2
- test:
3
- a.rb:
4
- diagnostics:
5
- - |
6
- a.rb:6:0: [error] Cannot find compatible overloading of method `[]=` of type `::Array[::Integer]`
7
- │ Method types:
8
- │ def []=: (::int, ::Integer) -> ::Integer
9
- │ | (::int, ::int, ::Integer) -> ::Integer
10
- │ | (::int, ::int, ::Array[::Integer]) -> ::Array[::Integer]
11
- │ | (::int, ::int, nil) -> nil
12
- │ | (::Range[::Integer], ::Integer) -> ::Integer
13
- │ | (::Range[::Integer], ::Array[::Integer]) -> ::Array[::Integer]
14
- │ | (::Range[::Integer], nil) -> nil
15
-
16
- │ Diagnostic ID: Ruby::UnresolvedOverloading
17
-
18
- └ a[2] = "foo"
19
- ~~~~~~~~~~~~
20
- - |
21
- a.rb:12:0: [error] Cannot assign a value of type `::Integer` to a variable of type `::String`
22
- │ ::Integer <: ::String
23
- │ ::Numeric <: ::String
24
- │ ::Object <: ::String
25
- │ ::BasicObject <: ::String
26
-
27
- │ Diagnostic ID: Ruby::IncompatibleAssignment
28
-
29
- └ s = a[1]
30
- ~~~~~~~~
31
- - |
32
- a.rb:18:0: [error] Cannot assign a value of type `::String` to a variable of type `::Integer`
33
- │ ::String <: ::Integer
34
- │ ::Object <: ::Integer
35
- │ ::BasicObject <: ::Integer
36
-
37
- │ Diagnostic ID: Ruby::IncompatibleAssignment
38
-
39
- └ i = b[1]
40
- ~~~~~~~~
41
- b.rb:
42
- diagnostics:
43
- - |
44
- b.rb:11:0: [error] Cannot assign a value of type `::Array[::Integer]` to a variable of type `::Array[::String]`
45
- │ ::Array[::Integer] <: ::Array[::String]
46
- │ ::Integer <: ::String
47
- │ ::Numeric <: ::String
48
- │ ::Object <: ::String
49
- │ ::BasicObject <: ::String
50
-
51
- │ Diagnostic ID: Ruby::IncompatibleAssignment
52
-
53
- └ b = a
54
- ~~~~~
55
- - |
56
- b.rb:12:0: [error] Cannot assign a value of type `::Array[::String]` to a variable of type `::Array[::Integer]`
57
- │ ::Array[::String] <: ::Array[::Integer]
58
- │ ::String <: ::Integer
59
- │ ::Object <: ::Integer
60
- │ ::BasicObject <: ::Integer
61
-
62
- │ Diagnostic ID: Ruby::IncompatibleAssignment
63
-
64
- └ a = b
65
- ~~~~~
66
- c.rb:
67
- diagnostics:
68
- - |
69
- c.rb:6:0: [error] Cannot assign a value of type `::Array[::Integer]` to a variable of type `::Array[(::String | nil)]`
70
- │ ::Array[::Integer] <: ::Array[(::String | nil)]
71
- │ ::Integer <: (::String | nil)
72
- │ ::Integer <: ::String
73
- │ ::Numeric <: ::String
74
- │ ::Object <: ::String
75
- │ ::BasicObject <: ::String
76
-
77
- │ Diagnostic ID: Ruby::IncompatibleAssignment
78
-
79
- └ x = [1]
80
- ~~~~~~~
@@ -1,96 +0,0 @@
1
- ---
2
- test:
3
- a.rb:
4
- diagnostics:
5
- - |
6
- a.rb:8:0: [error] Cannot assign a value of type `::Integer` to a variable of type `::String`
7
- │ ::Integer <: ::String
8
- │ ::Numeric <: ::String
9
- │ ::Object <: ::String
10
- │ ::BasicObject <: ::String
11
-
12
- │ Diagnostic ID: Ruby::IncompatibleAssignment
13
-
14
- └ s = a.foo
15
- ~~~~~~~~~
16
- - |
17
- a.rb:10:0: [error] Cannot assign a value of type `::String` to a variable of type `::Integer`
18
- │ ::String <: ::Integer
19
- │ ::Object <: ::Integer
20
- │ ::BasicObject <: ::Integer
21
-
22
- │ Diagnostic ID: Ruby::IncompatibleAssignment
23
-
24
- └ i = a.foo { nil }
25
- ~~~~~~~~~~~~~~~~~
26
- b.rb:
27
- diagnostics:
28
- - |
29
- b.rb:5:2: [error] Cannot break with a value of type `::Integer` because type `::Symbol` is assumed
30
- │ ::Integer <: ::Symbol
31
- │ ::Numeric <: ::Symbol
32
- │ ::Object <: ::Symbol
33
- │ ::BasicObject <: ::Symbol
34
-
35
- │ Diagnostic ID: Ruby::BreakTypeMismatch
36
-
37
- └ break 3
38
- ~~~~~~~
39
- - |
40
- b.rb:10:0: [error] Cannot assign a value of type `(::Integer | ::Symbol)` to a variable of type `::String`
41
- │ (::Integer | ::Symbol) <: ::String
42
- │ ::Integer <: ::String
43
- │ ::Numeric <: ::String
44
- │ ::Object <: ::String
45
- │ ::BasicObject <: ::String
46
-
47
- │ Diagnostic ID: Ruby::IncompatibleAssignment
48
-
49
- └ s = a.bar do |x|
50
- ~~~~~~~~~~~~~~~~
51
- c.rb:
52
- diagnostics: []
53
- d.rb:
54
- diagnostics:
55
- - |
56
- d.rb:6:0: [error] Cannot assign a value of type `::Array[::String]` to a variable of type `::Array[::Float]`
57
- │ ::Array[::String] <: ::Array[::Float]
58
- │ ::String <: ::Float
59
- │ ::Object <: ::Float
60
- │ ::BasicObject <: ::Float
61
-
62
- │ Diagnostic ID: Ruby::IncompatibleAssignment
63
-
64
- └ b = [1,2,3].map(&a)
65
- ~~~~~~~~~~~~~~~~~~~
66
- - |
67
- d.rb:8:0: [error] Cannot assign a value of type `::Array[::String]` to a variable of type `::Array[::Float]`
68
- │ ::Array[::String] <: ::Array[::Float]
69
- │ ::String <: ::Float
70
- │ ::Object <: ::Float
71
- │ ::BasicObject <: ::Float
72
-
73
- │ Diagnostic ID: Ruby::IncompatibleAssignment
74
-
75
- └ b = [1,2,3].map(&:to_s)
76
- ~~~~~~~~~~~~~~~~~~~~~~~
77
- - |
78
- d.rb:10:0: [error] Cannot find compatible overloading of method `map` of type `::Array[::Integer]`
79
- │ Method types:
80
- │ def map: [U] () { (::Integer) -> U } -> ::Array[U]
81
- │ | () -> ::Enumerator[::Integer, ::Array[untyped]]
82
-
83
- │ Diagnostic ID: Ruby::UnresolvedOverloading
84
-
85
- └ [1,2,3].map(&:no_such_method)
86
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
87
- - |
88
- d.rb:11:0: [error] Cannot find compatible overloading of method `map` of type `::Array[::Integer]`
89
- │ Method types:
90
- │ def map: [U] () { (::Integer) -> U } -> ::Array[U]
91
- │ | () -> ::Enumerator[::Integer, ::Array[untyped]]
92
-
93
- │ Diagnostic ID: Ruby::UnresolvedOverloading
94
-
95
- └ [1,2,3].map(&:divmod)
96
- ~~~~~~~~~~~~~~~~~~~~~
@@ -1,5 +0,0 @@
1
- target :test do
2
- typing_options :strict
3
- check "*.rb"
4
- signature "*.rbs"
5
- end
Binary file
Binary file
@@ -1,6 +0,0 @@
1
- ---
2
- test:
3
- broken.rbs:
4
- diagnostics: []
5
- broken.rb:
6
- diagnostics: []
data/smoke/case/test.yaml DELETED
@@ -1,36 +0,0 @@
1
- ---
2
- test:
3
- a.rb:
4
- diagnostics:
5
- - |
6
- a.rb:3:0: [error] Cannot assign a value of type `(::Integer | ::Array[::String] | nil | ::String)` to a variable of type `::Integer`
7
- │ (::Integer | ::Array[::String] | nil | ::String) <: ::Integer
8
- │ ::Array[::String] <: ::Integer
9
- │ ::Object <: ::Integer
10
- │ ::BasicObject <: ::Integer
11
-
12
- │ Diagnostic ID: Ruby::IncompatibleAssignment
13
-
14
- └ a = case 1
15
- ~~~~~~~~~~
16
- - |
17
- a.rb:16:9: [error] Cannot find compatible overloading of method `+` of type `::Integer`
18
- │ Method types:
19
- │ def +: (::Integer) -> ::Integer
20
- │ | (::Float) -> ::Float
21
- │ | (::Rational) -> ::Rational
22
- │ | (::Complex) -> ::Complex
23
-
24
- │ Diagnostic ID: Ruby::UnresolvedOverloading
25
-
26
- └ when 1+"a"
27
- ~~~~~
28
- - |
29
- a.rb:15:0: [error] Cannot assign a value of type `(::Integer | nil)` to a variable of type `::Integer`
30
- │ (::Integer | nil) <: ::Integer
31
- │ nil <: ::Integer
32
-
33
- │ Diagnostic ID: Ruby::IncompatibleAssignment
34
-
35
- └ a = case
36
- ~~~~~~~~
@@ -1,89 +0,0 @@
1
- ---
2
- test:
3
- a.rb:
4
- diagnostics:
5
- - |
6
- a.rb:8:9: [error] Method parameters are incompatible with declaration `() -> ::String`
7
- │ Diagnostic ID: Ruby::MethodArityMismatch
8
-
9
- └ def bar(y)
10
- ~~~
11
- - |
12
- a.rb:13:2: [error] Cannot allow method body have type `::Integer` because declared as type `::String`
13
- │ ::Integer <: ::String
14
- │ ::Numeric <: ::String
15
- │ ::Object <: ::String
16
- │ ::BasicObject <: ::String
17
-
18
- │ Diagnostic ID: Ruby::MethodBodyTypeMismatch
19
-
20
- └ def to_s
21
- ~~~~~~~~
22
- - |
23
- a.rb:22:2: [error] Cannot allow method body have type `::String` because declared as type `::Integer`
24
- │ ::String <: ::Integer
25
- │ ::Object <: ::Integer
26
- │ ::BasicObject <: ::Integer
27
-
28
- │ Diagnostic ID: Ruby::MethodBodyTypeMismatch
29
-
30
- └ def self.baz
31
- ~~~~~~~~~~~~
32
- b.rb:
33
- diagnostics: []
34
- c.rb:
35
- diagnostics:
36
- - |
37
- c.rb:1:6: [error] @dynamic annotation contains unknown method name `type`
38
- │ Diagnostic ID: Ruby::UnexpectedDynamicMethod
39
-
40
- └ class B
41
- ~
42
- f.rb:
43
- diagnostics:
44
- - |
45
- f.rb:9:0: [error] Cannot assign a value of type `::_E` to a variable of type `::D`
46
- │ ::_E <: ::D
47
-
48
- │ Diagnostic ID: Ruby::IncompatibleAssignment
49
-
50
- └ d = e
51
- ~~~~~
52
- g.rb:
53
- diagnostics:
54
- - |
55
- g.rb:1:6: [error] Cannot find implementation of method `::B#name`
56
- │ Diagnostic ID: Ruby::MethodDefinitionMissing
57
-
58
- └ class B
59
- ~
60
- - |
61
- g.rb:4:6: [error] Cannot find implementation of method `::B#name`
62
- │ Diagnostic ID: Ruby::MethodDefinitionMissing
63
-
64
- └ class C
65
- ~
66
- h.rb:
67
- diagnostics: []
68
- i.rb:
69
- diagnostics:
70
- - |
71
- i.rb:4:4: [error] Cannot assign a value of type `::Integer` to a variable of type `::Symbol`
72
- │ ::Integer <: ::Symbol
73
- │ ::Numeric <: ::Symbol
74
- │ ::Object <: ::Symbol
75
- │ ::BasicObject <: ::Symbol
76
-
77
- │ Diagnostic ID: Ruby::IncompatibleAssignment
78
-
79
- └ x = super()
80
- ~~~~~~~~~~~
81
- - |
82
- i.rb:10:4: [error] Cannot find method `initialize` of type `::IncompatibleChild` with compatible arity
83
- │ Method types:
84
- │ def initialize: (name: ::String) -> untyped
85
-
86
- │ Diagnostic ID: Ruby::IncompatibleArguments
87
-
88
- └ super()
89
- ~~~~~~~
@@ -1,96 +0,0 @@
1
- ---
2
- test:
3
- a.rb:
4
- diagnostics:
5
- - |
6
- a.rb:4:0: [error] Cannot assign a value of type `::Integer` to a variable of type `::String`
7
- │ ::Integer <: ::String
8
- │ ::Numeric <: ::String
9
- │ ::Object <: ::String
10
- │ ::BasicObject <: ::String
11
-
12
- │ Diagnostic ID: Ruby::IncompatibleAssignment
13
-
14
- └ x = A
15
- ~~~~~
16
- - |
17
- a.rb:6:4: [error] Cannot detect the type of the expression
18
- │ Diagnostic ID: Ruby::FallbackAny
19
-
20
- └ x = B
21
- ~
22
- - |
23
- a.rb:8:7: [error] Cannot detect the type of the expression
24
- │ Diagnostic ID: Ruby::FallbackAny
25
-
26
- └ module X
27
- ~
28
- - |
29
- a.rb:14:4: [error] Cannot assign a value of type `::Integer` to a variable of type `::String`
30
- │ ::Integer <: ::String
31
- │ ::Numeric <: ::String
32
- │ ::Object <: ::String
33
- │ ::BasicObject <: ::String
34
-
35
- │ Diagnostic ID: Ruby::IncompatibleAssignment
36
-
37
- └ x = A
38
- ~~~~~
39
- - |
40
- a.rb:16:8: [error] Cannot detect the type of the expression
41
- │ Diagnostic ID: Ruby::FallbackAny
42
-
43
- └ x = B
44
- ~
45
- - |
46
- a.rb:23:0: [error] Cannot assign a value of type `::Integer` to a variable of type `::String`
47
- │ ::Integer <: ::String
48
- │ ::Numeric <: ::String
49
- │ ::Object <: ::String
50
- │ ::BasicObject <: ::String
51
-
52
- │ Diagnostic ID: Ruby::IncompatibleAssignment
53
-
54
- └ x = Foo::Bar::Baz
55
- ~~~~~~~~~~~~~~~~~
56
- - |
57
- a.rb:26:4: [error] Cannot detect the type of the expression
58
- │ Diagnostic ID: Ruby::FallbackAny
59
-
60
- └ x = z::Bar::Baz
61
- ~~~~~~
62
- - |
63
- a.rb:26:4: [error] Cannot detect the type of the expression
64
- │ Diagnostic ID: Ruby::FallbackAny
65
-
66
- └ x = z::Bar::Baz
67
- ~~~~~~~~~~~
68
- - |
69
- a.rb:27:0: [error] Cannot assign a value of type `::Integer` to a variable of type `::String`
70
- │ ::Integer <: ::String
71
- │ ::Numeric <: ::String
72
- │ ::Object <: ::String
73
- │ ::BasicObject <: ::String
74
-
75
- │ Diagnostic ID: Ruby::IncompatibleAssignment
76
-
77
- └ x = ::Foo::Bar::Baz
78
- ~~~~~~~~~~~~~~~~~~~
79
- b.rb:
80
- diagnostics:
81
- - |
82
- b.rb:3:4: [error] Cannot assign a value of type `::String` to a constant of type `::Integer`
83
- │ ::String <: ::Integer
84
- │ ::Object <: ::Integer
85
- │ ::BasicObject <: ::Integer
86
-
87
- │ Diagnostic ID: Ruby::IncompatibleAssignment
88
-
89
- └ Baz = "Hello"
90
- ~~~~~~~~~~~~~
91
- - |
92
- b.rb:5:4: [error] Cannot find the declaration of constant `Baz2`
93
- │ Diagnostic ID: Ruby::UnknownConstantAssigned
94
-
95
- └ Baz2 = "World"
96
- ~~~~