steep 1.7.1 → 1.8.0.dev.1

Sign up to get free protection for your applications and to get access to all the features.
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