rbs 1.6.1 → 1.7.0.beta.3

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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +18 -3
  3. data/.gitignore +10 -1
  4. data/CHANGELOG.md +25 -0
  5. data/Gemfile +1 -0
  6. data/Rakefile +22 -22
  7. data/core/enumerator.rbs +1 -0
  8. data/core/io.rbs +1 -1
  9. data/core/kernel.rbs +4 -4
  10. data/core/trace_point.rbs +1 -1
  11. data/ext/rbs_extension/constants.c +139 -0
  12. data/ext/rbs_extension/constants.h +72 -0
  13. data/ext/rbs_extension/extconf.rb +3 -0
  14. data/ext/rbs_extension/lexer.c +2533 -0
  15. data/ext/rbs_extension/lexer.h +161 -0
  16. data/ext/rbs_extension/lexer.re +140 -0
  17. data/ext/rbs_extension/lexstate.c +139 -0
  18. data/ext/rbs_extension/location.c +295 -0
  19. data/ext/rbs_extension/location.h +59 -0
  20. data/ext/rbs_extension/main.c +9 -0
  21. data/ext/rbs_extension/parser.c +2390 -0
  22. data/ext/rbs_extension/parser.h +18 -0
  23. data/ext/rbs_extension/parserstate.c +313 -0
  24. data/ext/rbs_extension/parserstate.h +141 -0
  25. data/ext/rbs_extension/rbs_extension.h +40 -0
  26. data/ext/rbs_extension/ruby_objs.c +521 -0
  27. data/ext/rbs_extension/ruby_objs.h +46 -0
  28. data/ext/rbs_extension/unescape.c +65 -0
  29. data/goodcheck.yml +1 -1
  30. data/lib/rbs/ast/comment.rb +0 -12
  31. data/lib/rbs/buffer.rb +4 -0
  32. data/lib/rbs/cli.rb +5 -8
  33. data/lib/rbs/collection/installer.rb +1 -0
  34. data/lib/rbs/collection/sources/git.rb +18 -3
  35. data/lib/rbs/errors.rb +28 -1
  36. data/lib/rbs/location.rb +221 -217
  37. data/lib/rbs/location_aux.rb +121 -0
  38. data/lib/rbs/locator.rb +10 -7
  39. data/lib/rbs/parser_aux.rb +63 -0
  40. data/lib/rbs/parser_compat/lexer_error.rb +4 -0
  41. data/lib/rbs/parser_compat/located_value.rb +5 -0
  42. data/lib/rbs/parser_compat/semantics_error.rb +4 -0
  43. data/lib/rbs/parser_compat/syntax_error.rb +4 -0
  44. data/lib/rbs/types.rb +2 -3
  45. data/lib/rbs/version.rb +1 -1
  46. data/lib/rbs/writer.rb +4 -2
  47. data/lib/rbs.rb +14 -7
  48. data/rbs.gemspec +2 -1
  49. data/sig/ancestor_builder.rbs +2 -2
  50. data/sig/annotation.rbs +2 -2
  51. data/sig/comment.rbs +7 -7
  52. data/sig/constant_table.rbs +1 -1
  53. data/sig/declarations.rbs +9 -9
  54. data/sig/definition.rbs +1 -1
  55. data/sig/definition_builder.rbs +2 -2
  56. data/sig/errors.rbs +40 -25
  57. data/sig/location.rbs +46 -78
  58. data/sig/locator.rbs +2 -2
  59. data/sig/members.rbs +7 -7
  60. data/sig/method_types.rbs +3 -3
  61. data/sig/parser.rbs +15 -20
  62. data/sig/rbs.rbs +4 -0
  63. data/sig/types.rbs +45 -27
  64. data/sig/writer.rbs +1 -1
  65. data/stdlib/io-console/0/io-console.rbs +137 -0
  66. data/stdlib/json/0/json.rbs +3 -3
  67. data/stdlib/net-http/0/net-http.rbs +2 -1
  68. data/stdlib/tempfile/0/tempfile.rbs +4 -6
  69. metadata +32 -7
  70. data/lib/rbs/parser.rb +0 -3614
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cffc862a61abaf040b4873bca9c7c93bf191400b079763825c7bfa34ff066410
4
- data.tar.gz: 3771aaa34f52b4eda197ca53f2d09d0a474cd73daa9e11fd71e39ef6d2bbcccf
3
+ metadata.gz: 7486f2fc540fa8039a9729a4447016b7c730f9460647c2b8c441a1df75aba708
4
+ data.tar.gz: 0c2d486cd334b46eb101c3b5a6bf4724c7029bf9da95069bbfedbe001c4d4c04
5
5
  SHA512:
6
- metadata.gz: 713cf7abebe3f03bdd6c1c7be31173db1e210180bb50b33f3587990eba18eb934668ec5d4ad6bf9e89848da29b559a493c2a2636fa319601b8af4c4b91e0d4a8
7
- data.tar.gz: ec10a533cda84779326b21f5d00e5f9a139f6c5a8bf392640eaa52a8a1dd01b1181e7bb24709dae2fa8bdb35785e0b47fd5ff1ccc88b06fbc3ce6852975bf2a9
6
+ metadata.gz: 9050aadaf5538fc9f1d132619df96da6039f3dc13e961a5c7fc75e9a7087d9aafe4db0be0e1bd545c1d870f180d8ecef38f071e7c8add8056e32bc8ba72fdce0
7
+ data.tar.gz: 333011168ba724f6c12fa37d8df906e253578060d2e5ef7c54ba0373a5e22d1f665339e5c08c80fa39d2d9aef459f8a8f95b4378d93385c0b5f7c81124d94b47
@@ -15,14 +15,18 @@ jobs:
15
15
  - master-nightly-focal
16
16
  - 3.0-focal
17
17
  - 2.7-bionic
18
+ - 2.6-bionic
18
19
  job:
19
20
  - test
20
21
  - stdlib_test
21
22
  - rubocop validate test_doc build test_generate_stdlib
22
- - confirm_parser
23
+ - lexer confirm_lexer
24
+ - lexer compile
23
25
  exclude:
24
26
  - container_tag: master-nightly-focal
25
- job: confirm_parser
27
+ job: confirm_lexer
28
+ - container_tag: 2.6-bionic
29
+ job: stdlib_test
26
30
  container:
27
31
  image: rubylang/ruby:${{ matrix.container_tag }}
28
32
  steps:
@@ -30,7 +34,18 @@ jobs:
30
34
  - name: Install dependencies
31
35
  run: |
32
36
  apt-get update
33
- apt-get install -y libdb-dev
37
+ apt-get install -y libdb-dev curl autoconf automake m4 libtool
38
+ - name: Install Re2c
39
+ if: contains(matrix.job, 'lexer')
40
+ run: |
41
+ cd /tmp
42
+ curl -L https://github.com/skvadrik/re2c/archive/refs/tags/2.2.tar.gz > re2c-2.2.tar.gz
43
+ tar xf re2c-2.2.tar.gz
44
+ cd re2c-2.2
45
+ autoreconf -i -W all
46
+ ./configure
47
+ make
48
+ make install
34
49
  - name: Update rubygems & bundler
35
50
  run: |
36
51
  ruby -v
data/.gitignore CHANGED
@@ -1,13 +1,22 @@
1
1
  /.bundle/
2
+ /vendor/bundle/
2
3
  /steep/.bundle/
4
+ /steep/vendor/bundle/
3
5
  /.yardoc
4
6
  /_yardoc/
5
7
  /coverage/
6
8
  /pkg/
7
9
  /spec/reports/
8
10
  /tmp/
9
- /.ruby-version
11
+ **/.ruby-version
12
+ **/.rvmrc
13
+ **/.rbfu-version
14
+ **/.rbenv-version
15
+ **/.versions.conf
10
16
  /lib/rbs/parser.output
11
17
  /vendor/sigs
12
18
  /Gemfile.lock
13
19
 
20
+ lib/**/*.bundle
21
+ lib/**/*.so
22
+ lib/**/*.dll
data/CHANGELOG.md CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
  ## master
4
4
 
5
+ ## 1.7.0 (beta.3)
6
+
7
+ ## Signature updates
8
+
9
+ * io/console ([\#783](https://github.com/ruby/rbs/pull/783))
10
+ * `Net::HTTPRequest` ([\#784](https://github.com/ruby/rbs/pull/784))
11
+ * `Tempfile.new`, `Tempfile.create` ([\#792](https://github.com/ruby/rbs/pull/792), [\#791](https://github.com/ruby/rbs/pull/791))
12
+
13
+ ## Library changes
14
+
15
+ * Fix unexpected `CollectionNotAvailable` without `gems` from git source ([\#795](https://github.com/ruby/rbs/pull/795))
16
+ * Replace RBS::Parser ([#788](https://github.com/ruby/rbs/pull/788), [#789](https://github.com/ruby/rbs/pull/789))
17
+ * Print deprecation warning ([\#801](https://github.com/ruby/rbs/pull/801))
18
+
19
+ ## 1.6.2 (2021-09-09)
20
+
21
+ ## Signature updates
22
+
23
+ * `Enumerator::Lazy#force` ([\#782](https://github.com/ruby/rbs/pull/782))
24
+ * `IO.readlines` ([\#780](https://github.com/ruby/rbs/pull/780))
25
+
26
+ ## Miscellaneous
27
+
28
+ * Set `$XDG_CACHE_HOME` during test ([\#781](https://github.com/ruby/rbs/pull/781))
29
+
5
30
  ## 1.6.1 (2021-09-05)
6
31
 
7
32
  This is a minor release including test fixes.
data/Gemfile CHANGED
@@ -5,6 +5,7 @@ gemspec
5
5
 
6
6
  # Development dependencies
7
7
  gem "rake"
8
+ gem "rake-compiler"
8
9
  gem "test-unit"
9
10
  gem "rspec"
10
11
  gem "racc"
data/Rakefile CHANGED
@@ -1,15 +1,17 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rake/testtask"
3
3
  require "rbconfig"
4
+ require 'rake/extensiontask'
4
5
 
5
6
  $LOAD_PATH << File.join(__dir__, "test")
6
7
 
7
8
  ruby = ENV["RUBY"] || RbConfig.ruby
8
- racc = ENV.fetch("RACC", "racc")
9
9
  rbs = File.join(__dir__, "exe/rbs")
10
10
  bin = File.join(__dir__, "bin")
11
11
 
12
- Rake::TestTask.new(:test) do |t|
12
+ Rake::ExtensionTask.new("rbs_extension")
13
+
14
+ Rake::TestTask.new(:test => :compile) do |t|
13
15
  t.libs << "test"
14
16
  t.libs << "lib"
15
17
  t.test_files = FileList["test/**/*_test.rb"].reject do |path|
@@ -19,7 +21,22 @@ end
19
21
 
20
22
  multitask :default => [:test, :stdlib_test, :rubocop, :validate, :test_doc]
21
23
 
22
- task :test_doc => :parser do
24
+ task :lexer do
25
+ sh "re2c -W --no-generation-date -o ext/rbs_extension/lexer.c ext/rbs_extension/lexer.re"
26
+ end
27
+
28
+ task :confirm_lexer => :lexer do
29
+ puts "Testing if lexer.c is updated with respect to lexer.re"
30
+ sh "git diff --exit-code ext/rbs_extension/lexer.c"
31
+ end
32
+
33
+ rule ".c" => ".re" do |t|
34
+ puts "⚠️⚠️⚠️ #{t.name} is older than #{t.source}. You may need to run `rake lexer` ⚠️⚠️⚠️"
35
+ end
36
+
37
+ task :compile => "ext/rbs_extension/lexer.c"
38
+
39
+ task :test_doc do
23
40
  files = Dir.chdir(File.expand_path('..', __FILE__)) do
24
41
  `git ls-files -z`.split("\x0").select do |file| Pathname(file).extname == ".md" end
25
42
  end
@@ -27,7 +44,7 @@ task :test_doc => :parser do
27
44
  sh "#{ruby} #{__dir__}/bin/run_in_md.rb #{files.join(" ")}"
28
45
  end
29
46
 
30
- task :validate => :parser do
47
+ task :validate => :compile do
31
48
  sh "#{ruby} #{rbs} validate --silent"
32
49
 
33
50
  FileList["stdlib/*"].each do |path|
@@ -72,7 +89,7 @@ task :validate => :parser do
72
89
  end
73
90
 
74
91
  FileList["test/stdlib/**/*_test.rb"].each do |test|
75
- task test => :parser do
92
+ task test => :compile do
76
93
  sh "#{ruby} -Ilib #{bin}/test_runner.rb #{test}"
77
94
  end
78
95
  task stdlib_test: test
@@ -82,21 +99,6 @@ task :rubocop do
82
99
  sh "rubocop --parallel"
83
100
  end
84
101
 
85
- rule ".rb" => ".y" do |t|
86
- sh "#{racc} -v -o #{t.name} #{t.source}"
87
- end
88
-
89
- task :parser => "lib/rbs/parser.rb"
90
- task :test => :parser
91
- task :stdlib_test => :parser
92
- task :build => :parser
93
-
94
- task :confirm_parser do
95
- puts "Testing if parser.rb is updated with respect to parser.y"
96
- sh "#{racc} -v -o lib/rbs/parser.rb lib/rbs/parser.y"
97
- sh "git diff --exit-code lib/rbs/parser.rb"
98
- end
99
-
100
102
  namespace :generate do
101
103
  desc "Generate a test file for a stdlib class signatures"
102
104
  task :stdlib_test, [:class] do |_task, args|
@@ -225,5 +227,3 @@ task :test_generate_stdlib do
225
227
  sh "RBS_GENERATE_TEST_PATH=/tmp/Array_test.rb rake 'generate:stdlib_test[Array]'"
226
228
  sh "ruby -c /tmp/Array_test.rb"
227
229
  end
228
-
229
- CLEAN.include("lib/rbs/parser.rb")
data/core/enumerator.rbs CHANGED
@@ -249,6 +249,7 @@ class Enumerator::Generator[out Elem] < Object
249
249
  end
250
250
 
251
251
  class Enumerator::Lazy[out Elem, out Return] < Enumerator[Elem, Return]
252
+ alias force to_a
252
253
  end
253
254
 
254
255
  class Enumerator::Yielder < Object
data/core/io.rbs CHANGED
@@ -749,7 +749,7 @@ class IO < Object
749
749
 
750
750
  def self.read: (String name, ?Integer length, ?Integer offset, ?external_encoding: String external_encoding, ?internal_encoding: String internal_encoding, ?encoding: String encoding, ?textmode: untyped textmode, ?binmode: untyped binmode, ?autoclose: untyped autoclose, ?mode: String mode) -> String
751
751
 
752
- def self.readlines: (String name, ?String sep, ?Integer limit, ?external_encoding: String external_encoding, ?internal_encoding: String internal_encoding, ?encoding: String encoding, ?textmode: untyped textmode, ?binmode: untyped binmode, ?autoclose: untyped autoclose, ?mode: String mode) -> ::Array[String]
752
+ def self.readlines: (String name, ?String sep, ?Integer limit, ?external_encoding: String external_encoding, ?internal_encoding: String internal_encoding, ?encoding: String encoding, ?textmode: untyped textmode, ?binmode: untyped binmode, ?autoclose: untyped autoclose, ?mode: String mode, ?chomp: boolish) -> ::Array[String]
753
753
 
754
754
  def self.select: [X, Y, Z] (::Array[X & io]? read_array, ?::Array[Y & io]? write_array, ?::Array[Z & io]? error_array) -> [Array[X], Array[Y], Array[Z]]
755
755
  | [X, Y, Z] (::Array[X & io]? read_array, ?::Array[Y & io]? write_array, ?::Array[Z & io]? error_array, Numeric? timeout) -> [Array[X], Array[Y], Array[Z]]?
data/core/kernel.rbs CHANGED
@@ -482,8 +482,8 @@ module Kernel : BasicObject
482
482
  | [:child, int] # redirect to the redirected file descriptor
483
483
  | :close # close the file descriptor in child process
484
484
 
485
- def self?.spawn: (String command, *String args, ?unsetenv_others: boolish, ?pgroup?: (true | Integer), ?umask: Integer, ?in: redirect_fd, ?out: redirect_fd, ?err: redirect_fd, ?close_others: boolish, ?chdir: String) -> Integer
486
- | (Hash[string, string?] env, String command, *String args, ?unsetenv_others: boolish, ?pgroup?: (true | Integer), ?umask: Integer, ?in: redirect_fd, ?out: redirect_fd, ?err: redirect_fd, ?close_others: boolish, ?chdir: String) -> Integer
485
+ def self?.spawn: (String command, *String args, ?unsetenv_others: boolish, ?pgroup: (true | Integer), ?umask: Integer, ?in: redirect_fd, ?out: redirect_fd, ?err: redirect_fd, ?close_others: boolish, ?chdir: String) -> Integer
486
+ | (Hash[string, string?] env, String command, *String args, ?unsetenv_others: boolish, ?pgroup: (true | Integer), ?umask: Integer, ?in: redirect_fd, ?out: redirect_fd, ?err: redirect_fd, ?close_others: boolish, ?chdir: String) -> Integer
487
487
 
488
488
  # Executes *command…* in a subshell. *command…* is one of following forms.
489
489
  #
@@ -510,8 +510,8 @@ module Kernel : BasicObject
510
510
  # *
511
511
  #
512
512
  # See `Kernel.exec` for the standard shell.
513
- def self?.system: (String command, *String args, ?unsetenv_others: boolish, ?pgroup?: (true | Integer), ?umask: Integer, ?in: redirect_fd, ?out: redirect_fd, ?err: redirect_fd, ?close_others: boolish, ?chdir: String) -> (NilClass | FalseClass | TrueClass)
514
- | (Hash[string, string?] env, String command, *String args, ?unsetenv_others: boolish, ?pgroup?: (true | Integer), ?umask: Integer, ?in: redirect_fd, ?out: redirect_fd, ?err: redirect_fd, ?close_others: boolish, ?chdir: String) -> (NilClass | FalseClass | TrueClass)
513
+ def self?.system: (String command, *String args, ?unsetenv_others: boolish, ?pgroup: (true | Integer), ?umask: Integer, ?in: redirect_fd, ?out: redirect_fd, ?err: redirect_fd, ?close_others: boolish, ?chdir: String) -> (NilClass | FalseClass | TrueClass)
514
+ | (Hash[string, string?] env, String command, *String args, ?unsetenv_others: boolish, ?pgroup: (true | Integer), ?umask: Integer, ?in: redirect_fd, ?out: redirect_fd, ?err: redirect_fd, ?close_others: boolish, ?chdir: String) -> (NilClass | FalseClass | TrueClass)
515
515
  end
516
516
 
517
517
  Kernel::RUBYGEMS_ACTIVATION_MONITOR: untyped
data/core/trace_point.rbs CHANGED
@@ -286,5 +286,5 @@ class TracePoint < Object
286
286
  # Same as TracePoint#binding:
287
287
  # trace.binding.eval('self')
288
288
  #
289
- def `self`: () -> Binding
289
+ def self: () -> Binding
290
290
  end
@@ -0,0 +1,139 @@
1
+ #include "rbs_extension.h"
2
+
3
+ VALUE RBS_Parser;
4
+
5
+ VALUE RBS;
6
+ VALUE RBS_AST;
7
+ VALUE RBS_AST_Comment;
8
+ VALUE RBS_AST_Annotation;
9
+
10
+ VALUE RBS_AST_Declarations;
11
+
12
+ VALUE RBS_AST_Declarations_ModuleTypeParams;
13
+ VALUE RBS_AST_Declarations_ModuleTypeParams_TypeParam;
14
+
15
+ VALUE RBS_AST_Declarations_Alias;
16
+ VALUE RBS_AST_Declarations_Constant;
17
+ VALUE RBS_AST_Declarations_Global;
18
+ VALUE RBS_AST_Declarations_Interface;
19
+ VALUE RBS_AST_Declarations_Module;
20
+ VALUE RBS_AST_Declarations_Module_Self;
21
+ VALUE RBS_AST_Declarations_Class;
22
+ VALUE RBS_AST_Declarations_Class_Super;
23
+
24
+ VALUE RBS_AST_Members;
25
+ VALUE RBS_AST_Members_Alias;
26
+ VALUE RBS_AST_Members_AttrAccessor;
27
+ VALUE RBS_AST_Members_AttrReader;
28
+ VALUE RBS_AST_Members_AttrWriter;
29
+ VALUE RBS_AST_Members_ClassInstanceVariable;
30
+ VALUE RBS_AST_Members_ClassVariable;
31
+ VALUE RBS_AST_Members_Extend;
32
+ VALUE RBS_AST_Members_Include;
33
+ VALUE RBS_AST_Members_InstanceVariable;
34
+ VALUE RBS_AST_Members_MethodDefinition;
35
+ VALUE RBS_AST_Members_Prepend;
36
+ VALUE RBS_AST_Members_Private;
37
+ VALUE RBS_AST_Members_Public;
38
+
39
+ VALUE RBS_Namespace;
40
+ VALUE RBS_TypeName;
41
+
42
+ VALUE RBS_Types_Alias;
43
+ VALUE RBS_Types_Bases_Any;
44
+ VALUE RBS_Types_Bases_Bool;
45
+ VALUE RBS_Types_Bases_Bottom;
46
+ VALUE RBS_Types_Bases_Class;
47
+ VALUE RBS_Types_Bases_Instance;
48
+ VALUE RBS_Types_Bases_Nil;
49
+ VALUE RBS_Types_Bases_Self;
50
+ VALUE RBS_Types_Bases_Top;
51
+ VALUE RBS_Types_Bases_Void;
52
+ VALUE RBS_Types_Bases;
53
+ VALUE RBS_Types_Block;
54
+ VALUE RBS_Types_ClassInstance;
55
+ VALUE RBS_Types_ClassSingleton;
56
+ VALUE RBS_Types_Function_Param;
57
+ VALUE RBS_Types_Function;
58
+ VALUE RBS_Types_Interface;
59
+ VALUE RBS_Types_Intersection;
60
+ VALUE RBS_Types_Literal;
61
+ VALUE RBS_Types_Optional;
62
+ VALUE RBS_Types_Proc;
63
+ VALUE RBS_Types_Record;
64
+ VALUE RBS_Types_Tuple;
65
+ VALUE RBS_Types_Union;
66
+ VALUE RBS_Types_Variable;
67
+ VALUE RBS_Types;
68
+ VALUE RBS_MethodType;
69
+
70
+ VALUE RBS_ParsingError;
71
+
72
+ void rbs__init_constants() {
73
+ ID id_RBS = rb_intern_const("RBS");
74
+
75
+ RBS = rb_const_get(rb_cObject, id_RBS);
76
+ RBS_ParsingError = rb_const_get(RBS, rb_intern("ParsingError"));
77
+ RBS_AST = rb_const_get(RBS, rb_intern("AST"));
78
+ RBS_AST_Comment = rb_const_get(RBS_AST, rb_intern("Comment"));
79
+ RBS_AST_Annotation = rb_const_get(RBS_AST, rb_intern("Annotation"));
80
+
81
+ RBS_AST_Declarations = rb_const_get(RBS_AST, rb_intern("Declarations"));
82
+
83
+ RBS_AST_Declarations_ModuleTypeParams = rb_const_get(RBS_AST_Declarations, rb_intern("ModuleTypeParams"));
84
+ RBS_AST_Declarations_ModuleTypeParams_TypeParam = rb_const_get(RBS_AST_Declarations_ModuleTypeParams, rb_intern("TypeParam"));
85
+
86
+ RBS_AST_Declarations_Alias = rb_const_get(RBS_AST_Declarations, rb_intern("Alias"));
87
+ RBS_AST_Declarations_Constant = rb_const_get(RBS_AST_Declarations, rb_intern("Constant"));
88
+ RBS_AST_Declarations_Global = rb_const_get(RBS_AST_Declarations, rb_intern("Global"));
89
+ RBS_AST_Declarations_Interface = rb_const_get(RBS_AST_Declarations, rb_intern("Interface"));
90
+ RBS_AST_Declarations_Module = rb_const_get(RBS_AST_Declarations, rb_intern("Module"));
91
+ RBS_AST_Declarations_Module_Self = rb_const_get(RBS_AST_Declarations_Module, rb_intern("Self"));
92
+ RBS_AST_Declarations_Class = rb_const_get(RBS_AST_Declarations, rb_intern("Class"));
93
+ RBS_AST_Declarations_Class_Super = rb_const_get(RBS_AST_Declarations_Class, rb_intern("Super"));
94
+
95
+ RBS_AST_Members = rb_const_get(RBS_AST, rb_intern("Members"));
96
+ RBS_AST_Members_Alias = rb_const_get(RBS_AST_Members, rb_intern("Alias"));
97
+ RBS_AST_Members_AttrAccessor = rb_const_get(RBS_AST_Members, rb_intern("AttrAccessor"));
98
+ RBS_AST_Members_AttrReader = rb_const_get(RBS_AST_Members, rb_intern("AttrReader"));
99
+ RBS_AST_Members_AttrWriter = rb_const_get(RBS_AST_Members, rb_intern("AttrWriter"));
100
+ RBS_AST_Members_ClassInstanceVariable = rb_const_get(RBS_AST_Members, rb_intern("ClassInstanceVariable"));
101
+ RBS_AST_Members_ClassVariable = rb_const_get(RBS_AST_Members, rb_intern("ClassVariable"));
102
+ RBS_AST_Members_Extend = rb_const_get(RBS_AST_Members, rb_intern("Extend"));
103
+ RBS_AST_Members_Include = rb_const_get(RBS_AST_Members, rb_intern("Include"));
104
+ RBS_AST_Members_InstanceVariable = rb_const_get(RBS_AST_Members, rb_intern("InstanceVariable"));
105
+ RBS_AST_Members_MethodDefinition = rb_const_get(RBS_AST_Members, rb_intern("MethodDefinition"));
106
+ RBS_AST_Members_Prepend = rb_const_get(RBS_AST_Members, rb_intern("Prepend"));
107
+ RBS_AST_Members_Private = rb_const_get(RBS_AST_Members, rb_intern("Private"));
108
+ RBS_AST_Members_Public = rb_const_get(RBS_AST_Members, rb_intern("Public"));
109
+
110
+ RBS_Namespace = rb_const_get(RBS, rb_intern("Namespace"));
111
+ RBS_TypeName = rb_const_get(RBS, rb_intern("TypeName"));
112
+ RBS_Types = rb_const_get(RBS, rb_intern("Types"));
113
+ RBS_Types_Alias = rb_const_get(RBS_Types, rb_intern("Alias"));
114
+ RBS_Types_Bases = rb_const_get(RBS_Types, rb_intern("Bases"));
115
+ RBS_Types_Bases_Any = rb_const_get(RBS_Types_Bases, rb_intern("Any"));
116
+ RBS_Types_Bases_Bool = rb_const_get(RBS_Types_Bases, rb_intern("Bool"));
117
+ RBS_Types_Bases_Bottom = rb_const_get(RBS_Types_Bases, rb_intern("Bottom"));
118
+ RBS_Types_Bases_Class = rb_const_get(RBS_Types_Bases, rb_intern("Class"));
119
+ RBS_Types_Bases_Instance = rb_const_get(RBS_Types_Bases, rb_intern("Instance"));
120
+ RBS_Types_Bases_Nil = rb_const_get(RBS_Types_Bases, rb_intern("Nil"));
121
+ RBS_Types_Bases_Self = rb_const_get(RBS_Types_Bases, rb_intern("Self"));
122
+ RBS_Types_Bases_Top = rb_const_get(RBS_Types_Bases, rb_intern("Top"));
123
+ RBS_Types_Bases_Void = rb_const_get(RBS_Types_Bases, rb_intern("Void"));
124
+ RBS_Types_Block = rb_const_get(RBS_Types, rb_intern("Block"));
125
+ RBS_Types_ClassInstance = rb_const_get(RBS_Types, rb_intern("ClassInstance"));
126
+ RBS_Types_ClassSingleton = rb_const_get(RBS_Types, rb_intern("ClassSingleton"));
127
+ RBS_Types_Function = rb_const_get(RBS_Types, rb_intern("Function"));
128
+ RBS_Types_Function_Param = rb_const_get(RBS_Types_Function, rb_intern("Param"));
129
+ RBS_Types_Interface = rb_const_get(RBS_Types, rb_intern("Interface"));
130
+ RBS_Types_Intersection = rb_const_get(RBS_Types, rb_intern("Intersection"));
131
+ RBS_Types_Literal = rb_const_get(RBS_Types, rb_intern("Literal"));
132
+ RBS_Types_Optional = rb_const_get(RBS_Types, rb_intern("Optional"));
133
+ RBS_Types_Proc = rb_const_get(RBS_Types, rb_intern("Proc"));
134
+ RBS_Types_Record = rb_const_get(RBS_Types, rb_intern("Record"));
135
+ RBS_Types_Tuple = rb_const_get(RBS_Types, rb_intern("Tuple"));
136
+ RBS_Types_Union = rb_const_get(RBS_Types, rb_intern("Union"));
137
+ RBS_Types_Variable = rb_const_get(RBS_Types, rb_intern("Variable"));
138
+ RBS_MethodType = rb_const_get(RBS, rb_intern("MethodType"));
139
+ }
@@ -0,0 +1,72 @@
1
+ #ifndef RBS__CONSTANTS_H
2
+ #define RBS__CONSTANTS_H
3
+
4
+ extern VALUE RBS;
5
+
6
+ extern VALUE RBS_AST;
7
+ extern VALUE RBS_AST_Annotation;
8
+ extern VALUE RBS_AST_Comment;
9
+
10
+ extern VALUE RBS_AST_Declarations;
11
+ extern VALUE RBS_AST_Declarations_Alias;
12
+ extern VALUE RBS_AST_Declarations_Class_Super;
13
+ extern VALUE RBS_AST_Declarations_Class;
14
+ extern VALUE RBS_AST_Declarations_Constant;
15
+ extern VALUE RBS_AST_Declarations_Global;
16
+ extern VALUE RBS_AST_Declarations_Interface;
17
+ extern VALUE RBS_AST_Declarations_Module_Self;
18
+ extern VALUE RBS_AST_Declarations_Module;
19
+ extern VALUE RBS_AST_Declarations_ModuleTypeParams_TypeParam;
20
+ extern VALUE RBS_AST_Declarations_ModuleTypeParams;
21
+
22
+ extern VALUE RBS_AST_Members;
23
+ extern VALUE RBS_AST_Members_Alias;
24
+ extern VALUE RBS_AST_Members_AttrAccessor;
25
+ extern VALUE RBS_AST_Members_AttrReader;
26
+ extern VALUE RBS_AST_Members_AttrWriter;
27
+ extern VALUE RBS_AST_Members_ClassInstanceVariable;
28
+ extern VALUE RBS_AST_Members_ClassVariable;
29
+ extern VALUE RBS_AST_Members_Extend;
30
+ extern VALUE RBS_AST_Members_Include;
31
+ extern VALUE RBS_AST_Members_InstanceVariable;
32
+ extern VALUE RBS_AST_Members_MethodDefinition;
33
+ extern VALUE RBS_AST_Members_Prepend;
34
+ extern VALUE RBS_AST_Members_Private;
35
+ extern VALUE RBS_AST_Members_Public;
36
+
37
+ extern VALUE RBS_MethodType;
38
+ extern VALUE RBS_Namespace;
39
+
40
+ extern VALUE RBS_ParsingError;
41
+ extern VALUE RBS_TypeName;
42
+
43
+ extern VALUE RBS_Types;
44
+ extern VALUE RBS_Types_Alias;
45
+ extern VALUE RBS_Types_Bases;
46
+ extern VALUE RBS_Types_Bases_Any;
47
+ extern VALUE RBS_Types_Bases_Bool;
48
+ extern VALUE RBS_Types_Bases_Bottom;
49
+ extern VALUE RBS_Types_Bases_Class;
50
+ extern VALUE RBS_Types_Bases_Instance;
51
+ extern VALUE RBS_Types_Bases_Nil;
52
+ extern VALUE RBS_Types_Bases_Self;
53
+ extern VALUE RBS_Types_Bases_Top;
54
+ extern VALUE RBS_Types_Bases_Void;
55
+ extern VALUE RBS_Types_Block;
56
+ extern VALUE RBS_Types_ClassInstance;
57
+ extern VALUE RBS_Types_ClassSingleton;
58
+ extern VALUE RBS_Types_Function_Param;
59
+ extern VALUE RBS_Types_Function;
60
+ extern VALUE RBS_Types_Interface;
61
+ extern VALUE RBS_Types_Intersection;
62
+ extern VALUE RBS_Types_Literal;
63
+ extern VALUE RBS_Types_Optional;
64
+ extern VALUE RBS_Types_Proc;
65
+ extern VALUE RBS_Types_Record;
66
+ extern VALUE RBS_Types_Tuple;
67
+ extern VALUE RBS_Types_Union;
68
+ extern VALUE RBS_Types_Variable;
69
+
70
+ void rbs__init_constants();
71
+
72
+ #endif
@@ -0,0 +1,3 @@
1
+ require 'mkmf'
2
+ $INCFLAGS << " -I$(top_srcdir)" if $extmk
3
+ create_makefile 'rbs_extension'