Shopify / Shopify/packwerk

[Bug Report] - Packwerk::NodeHelpers::TypeError

Open
#299 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Ruby
Stars
1.9k
Forks
121
Avg merge
2m
Merged PRs (30d)
1

Description

Description
When running bin/packwerk check I got the following error

bin/packwerk check
[TEST PROF INFO] Spring detected
📦 Packwerk is inspecting 4433 files
...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................Traceback (most recent call last):
	140: from bin/packwerk:27:in `<main>'
	139: from bin/packwerk:27:in `load'
	138: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/exe/packwerk:12:in `<top (required)>'
	137: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/_methods.rb:275:in `block in _on_method_added'
	136: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:256:in `validate_call'
	135: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:256:in `bind_call'
	134: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/cli.rb:43:in `run'
	133: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/_methods.rb:275:in `block in _on_method_added'
	132: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:256:in `validate_call'
	131: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:256:in `bind_call'
	130: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/cli.rb:54:in `execute_command'
	129: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/_methods.rb:275:in `block in _on_method_added'
	128: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:256:in `validate_call'
	127: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:256:in `bind_call'
	126: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parse_run.rb:68:in `check'
	125: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/_methods.rb:275:in `block in _on_method_added'
	124: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:256:in `validate_call'
	123: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:256:in `bind_call'
	122: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parse_run.rb:97:in `find_offenses'
	121: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/2.7.0/benchmark.rb:308:in `realtime'
	120: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parse_run.rb:99:in `block in find_offenses'
	119: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/parallel-1.22.1/lib/parallel.rb:307:in `flat_map'
	118: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/parallel-1.22.1/lib/parallel.rb:294:in `map'
	117: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/parallel-1.22.1/lib/parallel.rb:457:in `work_in_processes'
	116: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/parallel-1.22.1/lib/parallel.rb:518:in `create_workers'
	115: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/parallel-1.22.1/lib/parallel.rb:518:in `each_with_index'
	114: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/parallel-1.22.1/lib/parallel.rb:518:in `each'
	113: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/parallel-1.22.1/lib/parallel.rb:519:in `block in create_workers'
	112: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/parallel-1.22.1/lib/parallel.rb:528:in `worker'
	111: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/parallel-1.22.1/lib/parallel.rb:528:in `fork'
	110: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/parallel-1.22.1/lib/parallel.rb:537:in `block in worker'
	109: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/parallel-1.22.1/lib/parallel.rb:557:in `process_incoming_jobs'
	108: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/parallel-1.22.1/lib/parallel.rb:587:in `call_with_index'
	107: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parse_run.rb:91:in `block in find_offenses'
	106: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:95:in `block in create_validator_slow_skip_block_type'
	105: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:153:in `validate_call_skip_block_type'
	104: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:153:in `bind_call'
	103: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/run_context.rb:83:in `process_file'
	102: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:106:in `block in create_validator_method_fast1'
	101: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:106:in `bind_call'
	100: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/file_processor.rb:46:in `call'
	 99: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:177:in `block in create_validator_slow'
	 98: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:256:in `validate_call'
	 97: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:256:in `bind_call'
	 96: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/cache.rb:78:in `with_cache'
	 95: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/file_processor.rb:50:in `block in call'
	 94: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:764:in `block in create_validator_method_medium2'
	 93: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:764:in `bind_call'
	 92: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/file_processor.rb:66:in `references_from_ast'
	 91: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:95:in `block in create_validator_slow_skip_block_type'
	 90: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:153:in `validate_call_skip_block_type'
	 89: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:153:in `bind_call'
	 88: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_processor_factory.rb:15:in `for'
	 87: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:95:in `block in create_validator_slow_skip_block_type'
	 86: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:153:in `validate_call_skip_block_type'
	 85: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:153:in `bind_call'
	 84: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_processor_factory.rb:24:in `reference_extractor'
	 83: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_processor_factory.rb:24:in `new'
	 82: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:95:in `block in create_validator_slow_skip_block_type'
	 81: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:153:in `validate_call_skip_block_type'
	 80: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation.rb:153:in `bind_call'
	 79: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/reference_extractor.rb:66:in `initialize'
	 78: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/reference_extractor.rb:66:in `new'
	 77: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:27:in `initialize'
	 76: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `collect_local_definitions_from_root'
	 75: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `block in create_validator_method_medium1'
	 74: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `bind_call'
	 73: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each_child'
	 72: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each'
	 71: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:68:in `block in each_child'
	 70: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `block in collect_local_definitions_from_root'
	 69: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `collect_local_definitions_from_root'
	 68: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `block in create_validator_method_medium1'
	 67: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `bind_call'
	 66: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each_child'
	 65: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each'
	 64: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:68:in `block in each_child'
	 63: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `block in collect_local_definitions_from_root'
	 62: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `collect_local_definitions_from_root'
	 61: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `block in create_validator_method_medium1'
	 60: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `bind_call'
	 59: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each_child'
	 58: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each'
	 57: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:68:in `block in each_child'
	 56: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `block in collect_local_definitions_from_root'
	 55: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `collect_local_definitions_from_root'
	 54: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `block in create_validator_method_medium1'
	 53: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `bind_call'
	 52: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each_child'
	 51: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each'
	 50: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:68:in `block in each_child'
	 49: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `block in collect_local_definitions_from_root'
	 48: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `collect_local_definitions_from_root'
	 47: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `block in create_validator_method_medium1'
	 46: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `bind_call'
	 45: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each_child'
	 44: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each'
	 43: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:68:in `block in each_child'
	 42: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `block in collect_local_definitions_from_root'
	 41: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `collect_local_definitions_from_root'
	 40: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `block in create_validator_method_medium1'
	 39: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `bind_call'
	 38: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each_child'
	 37: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each'
	 36: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:68:in `block in each_child'
	 35: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `block in collect_local_definitions_from_root'
	 34: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `collect_local_definitions_from_root'
	 33: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `block in create_validator_method_medium1'
	 32: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `bind_call'
	 31: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each_child'
	 30: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each'
	 29: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:68:in `block in each_child'
	 28: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `block in collect_local_definitions_from_root'
	 27: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `collect_local_definitions_from_root'
	 26: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `block in create_validator_method_medium1'
	 25: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `bind_call'
	 24: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each_child'
	 23: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each'
	 22: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:68:in `block in each_child'
	 21: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `block in collect_local_definitions_from_root'
	 20: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `collect_local_definitions_from_root'
	 19: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `block in create_validator_method_medium1'
	 18: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `bind_call'
	 17: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each_child'
	 16: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each'
	 15: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:68:in `block in each_child'
	 14: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `block in collect_local_definitions_from_root'
	 13: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `collect_local_definitions_from_root'
	 12: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `block in create_validator_method_medium1'
	 11: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:703:in `bind_call'
	 10: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each_child'
	  9: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:67:in `each'
	  8: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:68:in `block in each_child'
	  7: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:55:in `block in collect_local_definitions_from_root'
	  6: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/parsed_constant_definitions.rb:43:in `collect_local_definitions_from_root'
	  5: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:106:in `block in create_validator_method_fast1'
	  4: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:106:in `bind_call'
	  3: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:53:in `constant_name'
	  2: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:106:in `block in create_validator_method_fast1'
	  1: from /Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/sorbet-runtime-0.5.10647/lib/types/private/methods/call_validation_2_7.rb:106:in `bind_call'
/Users/hugues/.rbenv/versions/2.7.7/lib/ruby/gems/2.7.0/gems/packwerk-2.2.2/lib/packwerk/node_helpers.rb:60:in `constant_name': Packwerk::NodeHelpers::TypeError (Packwerk::NodeHelpers::TypeError)

To Reproduce
Unsure

Expected Behaviour
Running the check properly

Screenshots
If applicable, add screenshots to help explain your problem.

Version Information

  • Packwerk: 2.2.2
  • Ruby 2.7.7

Additional Context
I've added some debug statement where the error is raised

def constant_name(constant_node)
        case type_of(constant_node)
        when CONSTANT_ROOT_NAMESPACE
          ""
        when CONSTANT, CONSTANT_ASSIGNMENT, SELF
          # (const nil :Foo)
          #   "Foo"
          # (const (cbase) :Foo)
          #   "::Foo"
          # (const (lvar :a) :Foo)
          #   "a::Foo"
          # (casgn nil :Foo (int 1))
          #   "Foo = 1"
          # (casgn (cbase) :Foo (int 1))
          #   "::Foo = 1"
          # (casgn (lvar :a) :Foo (int 1))
          #   "a::Foo = 1"
          # (casgn (self) :Foo (int 1))
          #   "self::Foo = 1"
          namespace, name = constant_node.children

          if namespace
            [constant_name(namespace), name].join("::")
          else
            name.to_s
          end
        else
          puts "constant_node: #{constant_node}"
          puts "type_of(constant_node): #{type_of(constant_node)}"
          raise TypeError
        end
      end

And I got the following logs

constant_node: (send
  (self) :class)
type_of(constant_node): send
constant_node: (send nil :described_class)
type_of(constant_node): send

Because packwerk seems to leverage parallel, it's a bit harder to debug using binding.pry

The described_class leads me to believe packwerk doesn't some of my specs files...

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with bin/packwerk check under Ruby 2.7.7, then trace Packwerk::NodeHelpers::TypeError through the node_processor_factory.rb, file_processor.rb, and parse_run.rb entries shown in the report. Identify a minimal input that triggers it and verify that the command completes without this exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.