@@ -50,16 +50,20 @@ module Crystal
50
50
51
51
def find (filename, relative_to = nil ) : Array (String )?
52
52
relative_to = File .dirname(relative_to) if relative_to.is_a?(String )
53
+
53
54
if filename.starts_with? '.'
54
55
result = find_in_path_relative_to_dir(filename, relative_to)
55
56
else
56
- result = find_in_crystal_path(filename, relative_to )
57
+ result = find_in_crystal_path(filename)
57
58
end
59
+
60
+ cant_find_file filename, relative_to unless result
61
+
58
62
result = [result] if result.is_a?(String )
59
63
result
60
64
end
61
65
62
- private def find_in_path_relative_to_dir (filename , relative_to , check_crystal_path = true )
66
+ private def find_in_path_relative_to_dir (filename , relative_to )
63
67
if relative_to.is_a?(String )
64
68
# Check if it's a wildcard.
65
69
if filename.ends_with?(" /*" ) || (recursive = filename.ends_with?(" /**" ))
@@ -116,11 +120,7 @@ module Crystal
116
120
end
117
121
end
118
122
119
- if check_crystal_path
120
- find_in_crystal_path filename, relative_to
121
- else
122
- nil
123
- end
123
+ nil
124
124
end
125
125
126
126
private def gather_dir_files (dir , files_accumulator , recursive )
@@ -158,12 +158,16 @@ module Crystal
158
158
File .expand_path(filename)
159
159
end
160
160
161
- private def find_in_crystal_path (filename , relative_to )
161
+ private def find_in_crystal_path (filename )
162
162
@crystal_path .each do |path |
163
- required = find_in_path_relative_to_dir(filename, path, check_crystal_path: false )
163
+ required = find_in_path_relative_to_dir(filename, path)
164
164
return required if required
165
165
end
166
166
167
+ nil
168
+ end
169
+
170
+ private def cant_find_file (filename , relative_to )
167
171
if relative_to
168
172
raise Error .new(" can't find file '#{ filename } ' relative to '#{ relative_to } '" )
169
173
else
0 commit comments