typeprof
An experimental type-level Ruby interpreter for testing and understanding Ruby code
File Explorer
- devcontainer.json
- main.yml
- release.yml
- dependabot.yml
- typeprof
- doc.ja.md
- doc.md
- report_guide.md
- cli.rb
- base.rb
- call.rb
- const.rb
- control.rb
- meta.rb
- method.rb
- misc.rb
- module.rb
- pattern.rb
- sig_decl.rb
- sig_type.rb
- value.rb
- variable.rb
- method.rb
- method_entity.rb
- module_entity.rb
- narrowing.rb
- static_read.rb
- type_alias_entity.rb
- value_entity.rb
- box.rb
- change_set.rb
- filter.rb
- vertex.rb
- ast.rb
- builtin.rb
- env.rb
- service.rb
- type.rb
- util.rb
- messages.rb
- server.rb
- text.rb
- util.rb
- cli.rb
- code_range.rb
- core.rb
- diagnostic.rb
- lsp.rb
- version.rb
- typeprof.rb
- anonymous_keyword.rb
- anonymous_rest.rb
- forwarding_arguments.rb
- keyword-as-hash.rb
- keyword-twice.rb
- keyword_splat.rb
- multi_target_arg.rb
- no-keyword.rb
- positionals_rb_to_rb1.rb
- positionals_rb_to_rb2.rb
- positionals_rb_to_rb3.rb
- positionals_rb_to_rb_block.rb
- positionals_rb_to_rbs.rb
- positionals_rbs_to_rb.rb
- positionals_rbs_to_rb_block.rb
- splat-twice.rb
- splat_rb_to_rb.rb
- splat_rbs_to_rb.rb
- splat_with_opt.rb
- array-zip-type.rb
- basic1.rb
- basic2.rb
- push.rb
- rbs_tuple.rb
- rbs_tuple2.rb
- slice_aset.rb
- splat.rb
- splat2.rb
- tuple_aref.rb
- tuple_aset.rb
- anonymous_block_forwarding.rb
- basic1.rb
- basic2.rb
- block_optionals.rb
- block_pass.rb
- block_to_hash_with_kwargs.rb
- it.rb
- multi_target_block_arg.rb
- numbered_parameter.rb
- rbs_block.rb
- rbs_block2.rb
- rbs_block3.rb
- rbs_block4.rb
- rbs_block5.rb
- rbs_block6.rb
- rbs_block7.rb
- sort_by_multi_param.rb
- symbol_to_proc.rb
- basic1.rb
- basic2.rb
- circular.rb
- circular_mutual.rb
- dynamic.rb
- eigenclass-attr.rb
- include-hack.rb
- initialize.rb
- initialize2.rb
- initialize3.rb
- initialize4.rb
- module.rb
- module2.rb
- rbs_class.rb
- rbs_const_resolution.rb
- rbs_module.rb
- rbs_module2.rb
- rbs_module3.rb
- rbs_self_types1.rb
- rbs_self_types2.rb
- rbs_self_types3.rb
- self-in-cbase.rb
- singleton_class.rb
- unknown-cbase.rb
- basic1.rb
- basic2.rb
- circular.rb
- const-scope.rb
- cross_file_value.rb
- dynamic.rb
- module_const.rb
- multi-const-write.rb
- rbs_const.rb
- resolve.rb
- superclass1.rb
- superclass2.rb
- superclass3.rb
- superclass4.rb
- and.rb
- begin-variable-tracking.rb
- begin.rb
- bot.rb
- bot2.rb
- bot3.rb
- bot4.rb
- branch.rb
- break.rb
- break2.rb
- case.rb
- case2.rb
- case3.rb
- elsif.rb
- empty.rb
- ensure.rb
- loop.rb
- loop2.rb
- multi_arg_break.rb
- next-in-loop.rb
- next.rb
- next2.rb
- next3.rb
- or.rb
- raise-bot.rb
- raise-unknown.rb
- redo.rb
- rescue-assign-with-class-new.rb
- rescue-assign-with-non-singleton.rb
- rescue-assign.rb
- rescue-splat.rb
- rescue.rb
- retry.rb
- return.rb
- return2.rb
- definition-rbs.rb
- definition.rb
- definition_multibyte_characters.rb
- argumenterror.rb
- cbase-is-not-class.rb
- nomethoderror.rb
- reuse.rb
- begin_rescue_var.rb
- case_variable.rb
- chain_and.rb
- chain_or.rb
- complex.rb
- if_assign.rb
- is_a.rb
- is_a2.rb
- is_a_module.rb
- ivar.rb
- ivar2.rb
- ivar3.rb
- nil.rb
- nil2.rb
- nil_check.rb
- or.rb
- return_if.rb
- while.rb
- basic1.rb
- hash-splat.rb
- implicit.rb
- key_check.rb
- add-included-module.rb
- basic1.rb
- basic2.rb
- basic3.rb
- basic4.rb
- basic5.rb
- change-included-module.rb
- change-superclass.rb
- remove-included-module2.rb
- accumulator-in-block.rb
- alias-global-variable.rb
- alias-output.rb
- break-in-loop.rb
- check-return-type.rb
- data-define.rb
- define-method-with-block.rb
- dynamic-include.rb
- extend-self.rb
- forwarding-arguments-extra-positional.rb
- module-function.rb
- pattern-capture-narrowing.rb
- retry.rb
- singleton-class.rb
- singleton-method.rb
- splat-on-non-array.rb
- splat-union-fallback.rb
- struct-new-as-superclass.rb
- struct.rb
- super-parent-arg-inference.rb
- unsupported-arg.rb
- visibility-modifier.rb
- basic1.rb
- attr_accessor.rb
- attr_reader.rb
- alias.rb
- attrasgn.rb
- block-arg.rb
- change-number-of-arguments.rb
- empty_def.rb
- function.rb
- keywords.rb
- method_object.rb
- mid_code_range.rb
- multi_args.rb
- no_args.rb
- prevent-reuse.rb
- rbs_alias.rb
- reuse-alias.rb
- safe-navigation.rb
- self-alias.rb
- send.rb
- singleton.rb
- splat-arg.rb
- subclass-methods.rb
- undef.rb
- alias_gvar.rb
- argv.rb
- ast_glitch.rb
- ast_glitch2.rb
- attr_writer.rb
- bot-diagnostics.rb
- class_method.rb
- complex.rb
- define_method_return.rb
- defined.rb
- dstr.rb
- dsym.rb
- fcall-for-subclass-methods.rb
- flip_flop.rb
- for-variable-leak.rb
- for.rb
- is_a.rb
- kernel_array.rb
- match_asgn.rb
- mix-const.rb
- module_function.rb
- op_asgn1.rb
- op_asgn_or.rb
- parens.rb
- post-exec.rb
- proc.rb
- range.rb
- rational.rb
- regexp.rb
- set.rb
- source_encoding.rb
- source_file.rb
- source_line.rb
- stmts_diff.rb
- struct_new.rb
- super-with-alias.rb
- super.rb
- toplevel-return.rb
- alt_pat.rb
- array_pat.rb
- capture.rb
- const_pat.rb
- find_pat.rb
- hash_pat.rb
- if_pat.rb
- in_match.rb
- literal_pat.rb
- pin_pat.rb
- range_pat.rb
- right_assign.rb
- var_pat.rb
- any.rb
- attr.rb
- basic1.rb
- basic2.rb
- block.rb
- change-scope.rb
- change-scope2.rb
- change-superclass.rb
- change-superclass2.rb
- check-block-return-bot.rb
- check-block-return.rb
- check-return-type-bot.rb
- check-return-type-bot2.rb
- check-return-type.rb
- check-return-type2.rb
- check-return-type3.rb
- check-return-type4.rb
- check-return-type5.rb
- class-module-alias-cycle.rb
- class-module-alias-nested.rb
- class-module-alias.rb
- cvar.rb
- inline-hover.rb
- inline.rb
- inline2.rb
- interface1.rb
- interface2.rb
- intersection.rb
- ivar.rb
- ivar_decl_late_load.rb
- ivar_decl_priority.rb
- keyword-overload.rb
- mixed-keyword-overload.rb
- module1.rb
- module2.rb
- module3.rb
- no-overload.rb
- no-type-var.rb
- optional-type-param.rb
- optional_nil_typecheck.rb
- overloading.rb
- param-default-type.rb
- param1.rb
- param2.rb
- param3.rb
- param4.rb
- param5.rb
- param6.rb
- param7.rb
- param8.rb
- prepend.rb
- prepend_include_mix.rb
- prepend_multiple.rb
- proc.rb
- record-arrays.rb
- record-basic.rb
- record-diff.rb
- record-empty.rb
- record-field-access.rb
- record-field-error.rb
- record-hash-compat.rb
- record-nested.rb
- record-optional.rb
- record-symbol-access.rb
- record-type-checking.rb
- recursive-type-alias.rb
- recursive1.rb
- recursive2.rb
- remove-class.rb
- rest-keyword-overload.rb
- self-types.rb
- superclass1.rb
- superclass2.rb
- symbol.rb
- type-alias.rb
- type-alias2.rb
- type-var1.rb
- type-var2.rb
- untyped-for-overload-record.rb
- untyped-for-overload-singleton.rb
- untyped-for-overload-tuple.rb
- untyped-for-overload.rb
- array-as-self.rb
- array-zip.rb
- avoid-infinite-loop-2.rb
- avoid-infinite-loop-3.rb
- avoid-infinite-loop-4.rb
- avoid-infinite-loop-overload-chain.rb
- avoid-infinite-loop-overload-disjoint.rb
- avoid-infinite-loop-overload-partial.rb
- avoid-infinite-loop.rb
- constant-path.rb
- double-edge-record-block.rb
- empty-block-parameters.rb
- fcall-include.rb
- generic-arg-overload-oscillation.rb
- hash-arg-overload-oscillation.rb
- hash-merge-bang.rb
- hash-with-splat-operator.rb
- iasgn-multi-edge.rb
- include-enumerable.rb
- include-nested-same-name.rb
- ivar-stuck-case.rb
- keyword-generic-overload-oscillation.rb
- multi-next.rb
- multi_edge_to_gvar.rb
- rbs-inline-keywords.rb
- regexp-union.rb
- self-type-var.rb
- singleton-is-a-module.rb
- singleton-show-nil-args.rb
- singleton-type-param.rb
- splat-block.rb
- splat-overload-oscillation-unseeded.rb
- splat-overload-oscillation.rb
- superclass-self-reference.rb
- tuple-overload-oscillation.rb
- code_lens.rb
- code_lens_update.rb
- completion_dot.rb
- completion_dot_module.rb
- definition.rb
- hover.rb
- hover2.rb
- hover3.rb
- hover4.rb
- references.rb
- references2.rb
- rename.rb
- rename2.rb
- rename3.rb
- rename4.rb
- and_write.rb
- cvar.rb
- cvar_operator_write.rb
- dvar.rb
- dvar2.rb
- gvar.rb
- ivar.rb
- ivar2.rb
- ivar3.rb
- masgn-generic-array.rb
- masgn-non-array.rb
- masgn.rb
- masgn2.rb
- masgn3.rb
- masgn_nested.rb
- operator_write.rb
- or_write.rb
- special-vars.rb
- uninitialized_ivar.rb
- uninitialized_lvar.rb
- polyfill.rbs
- typeprof.rbs
- position_encoding_test.rb
- service_test.rb
- basic.rb
- typeprof.conf.json
- .keep
- main.rb
- main.rb
- page.rb
- ignore_directive.rb
- ignore_directive.rbs
- ignore_directive_block.rb
- ignore_directive_block.rbs
- my_dummy_gem.rb
- my_dummy_gem.gemspec
- my_dummy_gem.rbs
- .gitignore
- Gemfile
- Gemfile.lock
- rbs_collection.lock.yaml
- rbs_collection.yaml
- test.rb
- rest_params.rb
- typeprof.conf.json
- show_stats.rb
- typeprof.conf.json
- syntax_error.rb
- syntax_error.rbs
- test.rbs
- test.rb
- typeprof.conf.json
- type_error.rb
- type_error.rbs
- lsp_test.rb
- text_test.rb
- cli_test.rb
- code_range_test.rb
- diagnostic_test.rb
- helper.rb
- scenario_compiler.rb
- scenario_test.rb
- bump.rb
- dog_bench.rb
- scenario_runner.rb
- .gitignore
- Gemfile
- Gemfile.lock
- LICENSE
- Rakefile
- README.md
- typeprof.conf.jsonc
- typeprof.gemspec
# Use via CDN
jsDelivrjsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.
Command Glossary
Commands referenced in this DOCs, explained below.
bundle
View Details ▼
bundle
Dependency manager for the Ruby programming language.
bundle install
Install all gems defined in the `Gemfile` expected in the working directory:
bundle exec {{command}} {{arguments}}
Execute a command in the context of the current bundle:
bundle update
Update all gems by the rules defined in the `Gemfile` and regenerate `Gemfile.lock`:
gem
View Details ▼
gem
A package manager for the Ruby programming language.
gem search {{regex}} {{[-a|--all]}}
Search for remote gem(s) and show all available versions:
gem install {{gem_name}}
Install the latest version of a gem:
gem install {{gem_name}} {{[-v|--version]}} {{1.0.0}}
Install a specific version of a gem:
git clone
View Details ▼
git clone
Clone an existing repository.
git clone {{remote_repository_location}} {{path/to/directory}}
Clone an existing repository into a new directory (the default directory is the repository name):
git clone --recursive {{remote_repository_location}}
Clone an existing repository and its submodules:
git clone {{[-n|--no-checkout]}} {{remote_repository_location}}
Clone only the `.git` directory of an existing repository:
