steep 1.7.1 → 1.8.0.dev.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6031a713ec97be707b33a667121cba53ba966e30c0949c1070c62ccf4c698596
4
- data.tar.gz: 01cd81e06eb1228a4b01070e0f6a12098fe10ee2cfe7620434a629f70e504005
3
+ metadata.gz: 635cc7b37608055562fc399845485f40c065e7300072a2ca194ea15137a0ac11
4
+ data.tar.gz: c16be740c2d1a8a11ece00fc3abbca6b33a715ddbbfb0a210bc8e09287e2c7d5
5
5
  SHA512:
6
- metadata.gz: abfac9447afb1c68ba1702738f1ffd67c9b2cddc860a84a4552b963eafd3e9936987c2085d25b565b8834bc70be49bf5271daa28ac02926db12a5d056cc0780b
7
- data.tar.gz: '0871a287d3bc466c58a9106def0ed944e682c862f5ab30d849cfd9dfdcbd9aefb49b376791c6a61211f0cfefef000d05f62e7b0ce3a5045faf9f2f9a39eadc0d'
6
+ metadata.gz: 164e5369654bc6ef2bd0ef355b796f3b9ee2c43a1887501cfc0282c8cccedc84a2d3a61a4ca257c51ea2500f342f5ad7c9496e03b29d1433aee81c020bae18db
7
+ data.tar.gz: 03ba49762f19dda444ff5a73a08eca0417ef02d89bed4039ccbc01c07cb1d59e05714583cfaa654dff5597e55ebc55844a038483ec1a46068cd8613f9d575c78
data/lib/steep/source.rb CHANGED
@@ -459,12 +459,14 @@ module Steep
459
459
  case node.type
460
460
  when :lvasgn, :ivasgn, :gvasgn, :cvasgn, :casgn
461
461
  # Skip
462
+ when :return, :break, :next
463
+ # Skip
464
+ when :def, :defs
465
+ # Skip
462
466
  when :masgn
463
467
  lhs, rhs = node.children
464
468
  node = node.updated(nil, [lhs, insert_type_node(rhs, comments)])
465
469
  return adjust_location(node)
466
- when :return, :break, :next
467
- # Skip
468
470
  when :begin
469
471
  location = node.loc #: Parser::Source::Map & Parser::AST::_Collection
470
472
  if location.begin
@@ -475,6 +477,15 @@ module Steep
475
477
  return assertion_node(node, last_comment)
476
478
  end
477
479
  else
480
+ if (receiver, name, * = deconstruct_send_node(node))
481
+ if receiver.nil?
482
+ if name == :attr_reader || name == :attr_writer || name == :attr_accessor
483
+ child_assertions = comments.except(last_line)
484
+ node = map_child_node(node) {|child| insert_type_node(child, child_assertions) }
485
+ return adjust_location(node)
486
+ end
487
+ end
488
+ end
478
489
  child_assertions = comments.except(last_line)
479
490
  node = map_child_node(node) {|child| insert_type_node(child, child_assertions) }
480
491
  node = adjust_location(node)
@@ -540,6 +551,21 @@ module Steep
540
551
  ]
541
552
  )
542
553
  )
554
+ when :def
555
+ name, args, body = node.children
556
+ assertion_location = args&.location&.expression || (_ = node.location).name
557
+ no_assertion_comments = comments.except(assertion_location.last_line)
558
+ args = insert_type_node(args, no_assertion_comments)
559
+ body = insert_type_node(body, comments) if body
560
+ return adjust_location(node.updated(nil, [name, args, body]))
561
+ when :defs
562
+ object, name, args, body = node.children
563
+ assertion_location = args&.location&.expression || (_ = node.location).name
564
+ no_assertion_comments = comments.except(assertion_location.last_line)
565
+ object = insert_type_node(object, no_assertion_comments)
566
+ args = insert_type_node(args, no_assertion_comments)
567
+ body = insert_type_node(body, comments) if body
568
+ return adjust_location(node.updated(nil, [object, name, args, body]))
543
569
  else
544
570
  adjust_location(
545
571
  map_child_node(node, nil) {|child| insert_type_node(child, comments) }
data/lib/steep/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Steep
2
- VERSION = "1.7.1"
2
+ VERSION = "1.8.0.dev.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: steep
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.1
4
+ version: 1.8.0.dev.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Soutaro Matsumoto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-06-12 00:00:00.000000000 Z
11
+ date: 2024-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -401,7 +401,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
401
401
  - !ruby/object:Gem::Version
402
402
  version: '0'
403
403
  requirements: []
404
- rubygems_version: 3.5.3
404
+ rubygems_version: 3.5.9
405
405
  signing_key:
406
406
  specification_version: 4
407
407
  summary: Gradual Typing for Ruby