Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* RubyVM visibility processing. * RubyVM syntax error handling. * RubyVM rescue processing. * RubyVM alias_method processing. * Node type fix. * RubyVM constant rebasing. * RubyVM include and extend processing. * RubyVM processes private constants. * RubyVM module_function processing. * Check call type of visibility methods. * Dirty assignment tests. * RubyVM NodeChainer. * BaseVariable#probe gets range from node. * RubyVM string detection. * RubyVM chains. * RubyVM recipient node detection. * RubyVM cursor, chain, and return node fixes. * RubyVM block_pass links. * RubyVM node chainer processes opcalls. * RubyVM detects strings in unsynchronized sources. * RubyVM chains and probes. * Parser-independent test. * Vary specs based on the parser. * Environment template checks parser type. * Resbody node checks for exception variable. * Finding references includes local variables. * Nil node handling in variable probes. * Register lambda node processor. * Temporarily disable exception variables. * CommentRipper caches buffer lines array. * RubyVM detects literal booleans. * RubyVM detects rescued exception variables. * TypeChecker handles RubyVM VCALL nodes. * Skip legacy specs when using RubyVM. * Off by one error. * Off by one error. * Fix module reference in legacy NodeMethods spec. * Register DASGN_CURR node processor. * Chain ATTRASGN nodes. * Refactoring TypeChecker to use chains instead of nodes (WIP) * Handle blank lines when stringifying comments. * Minor refactoring. * TypeChecker reports not enough arguments. * Kernel method handling. * Remove Chain::Call#head? * SendNode handles mapped methods without arguments. * Stale code. * DRY node methods. * CommentRipper ignores frozen_string_literal. * CommentRipper handles invalid byte sequences. * Formatting. * Remove BLOCK from foldable node types. * Predicate method specs. * Add STR to foldable node types. * Method pin checks for nil type return nodes. * RubyVM AST changes in Ruby 2.7.0 * TypeChecker rules and checks (WIP). * Typechecker#internal? * TypeChecker requires type tags at strong level. * Tag type checks. * TypeChecker normal level specs. * Typed and strict TypeChecker specs. * Strict call validation specs. * Ignore type inference for method macros. * Argument type checks. * Stale comments. * Remove duplicate test. * Normal type check ignores undefined argument types. * Source method pins with empty bodies infer nil. * Nil method inferences from clips. * Refactored typecheck reporter. * Multi-level parameter checks. * Unresolved call handling. * Typecheck kwargs in calls. * Type checker validates duck type parameters. * TypeChecker validates kwrestargs. * TypeChecker treats optional hashes as kwrestargs. * Remove stale TypeChecker code. * TypeChecker qualifies param types in declaration context. * Do not check inference on attributes. * CLI executable uses new type checker. * TypeChecker attribute spec. * New method node stub. * Documentation. * TypeChecker optional parameter spec. * Self handling in type checks. * TypeChecker resolves self on declared and inferred types. * Reduce normal type checking rules. * Strong type checking rules. * TypeChecker validates calls at strict or higher. * Reduce strictness of typed level. * Cached core pins. * Serialize stdlib pins (WIP) * Serialize gem pins. * Stale code. * Moved chainer calls. * Log YardMap loads. * RubyVM detects method body nodes. * RubyVM call node detection (WIP). * Method parameter types. * Unused node methods. * Refactoring node methods (WIP). * Move location of methods defined in macros. * Documentation. * CoreDocs creates gems directory. * CoreDocs.require_minimum always creates cache directories. * RubyVM handles args in for constructs. * Chains infer String from interpolated strings. * Stale code. * Return tags. * Virtual new method spec. * Infer undefined from methods with nil nodes. * Rearranging type checker specs by level (WIP). * Stale typecheck diagnostics test. * Validate attribute writer arguments. * Strong type checks inherit param tags. * Simple matches in any_types_match? * Fix argument chains. * Return nodes include AND. * Return AND nodes inside RETURN nodes. * Type tags. * Object#dup core fill deletes overloads. * String#each_line core fill. * Implicit rest and block parameter types. * Typed level uses loose return tag matches. * Return tag validation specs. * Documentation. * Type tag. * Check variable assignments for external calls. * Validate kwoptargs without arguments. * Parameter traversal and display. * Validate optional hash args as kwrestargs. * Rearranging node methods. * Legacy node chainer attaches nodes. * Legacy node methods and specs. * Add OPCALL to call nodes. * KW_ARG node changed in Ruby 2.7. * Stale code. * Add asgn_code to kwoptargs. * Prefer @return to @type in constant tags. * All BaseMethod pins have node attributes. * Constant links resolve nested constants. * Constant link iterates over all pins for resolution. * TypeChecker handles `@abstract` tags. * Cursor recipient detection (WIP). * Clip#signify edge cases (WIP). * Cursor#recipient_node edge cases (WIP). * Cursor#recipient_node handles unsynchronized sources with parentheses. * Cursor#recipient_node handles synchronized sources with trailing commas. * Redundant code and related specs. * ApiMap#cursor_at raises FileNotFoundError. * Cursor#recipient_node with unsynchronized nested symbols. * Cursor#recipient_node nesting and fencepost issues. * Host#diagnose rescues FileNotFoundError. * Refactored find_recipient_node. * Legacy find_recipient_node (WIP). * Legacy find_recipient_node conforms to specs. * Numeric core fills. * public_suffix dependency for Ruby < 2.3. * Fuzzier inheritance checks. * Unused method. * RubyVM NodeChainer recognizes SUPER. * Superclass namespace detection. * Documentation and minor refactoring. * Fix super/zsuper bug in legacy parser. * Refactored uri queue synchronization. (#289) `Solargraph::LanguageServer::Host::Sources` currently utilizes a queue of uris that is polled every `0.25s` to see if there's anything there. This commit refactors that to use a `ConditionVariable` that automatically blocks until a uri is available. Two new methods - `add_uri` and `next_uri` wrap this logic to avoid manual waiting and signaling. * Constant resolution finds nearest names (#287) * Unused method Cursor#first_char_offset. * Minor typecheck fixes. * Arity checks. * Integer#+ override. * Numeric#+ mapping and checking. * Verify child node in convert_hash * Broaden rest argument check. * Validate optional argument arity. * Exception for restargs in core methods. * BundlerMethods documentation. * BaseMethod#explicit? attribute. * TypeChecker does not check arity of non-explicit methods. * Core == method hack. * Arity checks accept valid block passes. * Arity checks verify extra block passes. * Detect return nodes in case statements (#283) * Update argument array nodes for Ruby 2.7. * Chains can be splats. * Verify arity of calls with splats. * Spec for return nodes from case statements. * Handle ARGSCAT in chains and typechecker. * Handle BLOCK_PASS with other arguments. * Add Errno classes to core pins. * Add @return text to documentaiton. * Unused convention method. * Infer literal DOT3 ranges. * TypeChecker allows undeclared block args. * Kernel#puts returns nil. * Shell cache handling. * Legacy case node handling. * Legacy splat handling. * Plugins configuration. * Rescue specific errors in gemspec evaluation. * Full parameters in signature help. * feat: treat prepend module as include module (#302) * Set prepended module ancestry. * Legacy SendNode typo. * and -> && * Array#uniq CoreFill. * Validate constants. * Legacy const_nodes_from method. * Update YARD dependency. * Rescue ENOENT errors when loading sources (#308) Co-authored-by: SolaWing <316786359@qq.com>
- Loading branch information