This is most noticeable when you have a large local tap and it ends
up taking a nontrivial percentage of the overall run time for simple
commands like `brew info gimp`. The improvement here is to just
create paths later on in the loop which copies what we already do
for formulae.
See b1ddb05
```console
$ hyperfine --parameter-list branch master,speed-up-cask-files-by-name --warmup 5 --setup 'git switch {branch}' 'brew info gimp'
Benchmark 1: brew info gimp (branch = master)
Time (mean ± σ): 2.737 s ± 0.010 s [User: 1.958 s, System: 0.732 s]
Range (min … max): 2.720 s … 2.748 s 10 runs
Benchmark 2: brew info gimp (branch = speed-up-cask-files-by-name)
Time (mean ± σ): 2.597 s ± 0.017 s [User: 1.828 s, System: 0.724 s]
Range (min … max): 2.577 s … 2.624 s 10 runs
Summary
brew info gimp (branch = speed-up-cask-files-by-name) ran
1.05 ± 0.01 times faster than brew info gimp (branch = master)
```
The main class you should look at is the {Formula} class (and classes linked from there). That's the class that's used to create Homebrew formulae (i.e. package descriptions). Assume anything else you stumble upon is private.