Skip to content

Commit ef73385

Browse files
hsbtclaude
andcommitted
Capture Gemfile source location for each override
Bundler::Dsl#override now records caller_locations(1, 1).first on each Override so the originating Gemfile line can be surfaced in later diagnostics. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent dbc9f24 commit ef73385

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

bundler/lib/bundler/dsl.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,8 +201,9 @@ def override(target, **operations)
201201
validate_override_uniqueness!(target, field)
202202
end
203203

204+
source_location = caller_locations(1, 1)&.first
204205
operations.each do |field, operation|
205-
@overrides << Override.new(target, field, operation)
206+
@overrides << Override.new(target, field, operation, source_location: source_location)
206207
end
207208
end
208209

bundler/lib/bundler/override.rb

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,18 @@ def self.find_for(overrides, name, field)
99
overrides.find {|o| o.target == :all && o.field == field }
1010
end
1111

12-
attr_reader :target, :field, :operation
12+
attr_reader :target, :field, :operation, :source_location
1313

14-
def initialize(target, field, operation)
14+
def initialize(target, field, operation, source_location: nil)
1515
@target = target
1616
@field = field
1717
@operation = operation
18+
@source_location = source_location
19+
end
20+
21+
def source_location_label
22+
return nil unless @source_location
23+
"#{File.basename(@source_location.path)}:#{@source_location.lineno}"
1824
end
1925

2026
def apply_to(requirement)

0 commit comments

Comments
 (0)