File tree Expand file tree Collapse file tree 3 files changed +15
-7
lines changed Expand file tree Collapse file tree 3 files changed +15
-7
lines changed Original file line number Diff line number Diff line change @@ -414,7 +414,9 @@ def self.create_rbs_member(raw_decl, lenv)
414
414
when RBS ::AST ::Declarations ::Base
415
415
self . create_rbs_decl ( raw_decl , lenv )
416
416
when RBS ::AST ::Members ::InstanceVariable
417
- SigInstanceVariableNode . new ( raw_decl , lenv )
417
+ SigInstanceVariableNode . new ( raw_decl , lenv , false )
418
+ when RBS ::AST ::Members ::ClassInstanceVariable
419
+ SigInstanceVariableNode . new ( raw_decl , lenv , true )
418
420
else
419
421
raise "unsupported: #{ raw_decl . class } "
420
422
end
Original file line number Diff line number Diff line change @@ -435,33 +435,34 @@ def install0(genv)
435
435
end
436
436
437
437
class SigInstanceVariableNode < Node
438
- def initialize ( raw_decl , lenv )
438
+ def initialize ( raw_decl , lenv , class_scope )
439
439
super ( raw_decl , lenv )
440
440
@var = raw_decl . name
441
441
@cpath = lenv . cref . cpath
442
+ @class_scope = class_scope
442
443
@type = AST . create_rbs_type ( raw_decl . type , lenv )
443
444
end
444
445
445
- attr_reader :cpath , :type
446
+ attr_reader :cpath , :class_scope , : type
446
447
def subnodes = { type : }
447
- def attrs = { cpath : }
448
+ def attrs = { cpath :, class_scope : }
448
449
449
450
def define0 ( genv )
450
451
@type . define ( genv )
451
- mod = genv . resolve_ivar ( cpath , false , @var )
452
+ mod = genv . resolve_ivar ( cpath , @class_scope , @var )
452
453
mod . add_decl ( self )
453
454
mod
454
455
end
455
456
456
457
def define_copy ( genv )
457
- mod = genv . resolve_ivar ( cpath , false , @var )
458
+ mod = genv . resolve_ivar ( cpath , @class_scope , @var )
458
459
mod . add_decl ( self )
459
460
mod . remove_decl ( @prev_node )
460
461
super ( genv )
461
462
end
462
463
463
464
def undefine0 ( genv )
464
- genv . resolve_ivar ( cpath , false , @var ) . remove_decl ( self )
465
+ genv . resolve_ivar ( cpath , @class_scope , @var ) . remove_decl ( self )
465
466
@type . undefine ( genv )
466
467
end
467
468
Original file line number Diff line number Diff line change 1
1
## update: test.rbs
2
2
class Foo
3
3
@foo : String
4
+ self . @foo : Integer
4
5
end
5
6
6
7
## update: test.rb
7
8
class Foo
8
9
def check
9
10
@foo
10
11
end
12
+ def self . check
13
+ @foo
14
+ end
11
15
end
12
16
13
17
## assert
14
18
class Foo
15
19
def check : -> String
20
+ def self . check : -> Integer
16
21
end
You can’t perform that action at this time.
0 commit comments