//foo:all
) into one or more lists of targets (such as //foo:foo,
* //foo:bar
). During a call to {@link TargetPattern#eval}, the {@link TargetPattern} makes
* calls to this interface to implement the target pattern semantics. The generic type {@code T} is
* only for compile-time type safety; there are no requirements to the actual type.
*/
public interface TargetPatternResolverNote that the {@code pathPrefix} can be empty, which corresponds to the "//..." pattern. * Implementations may choose not to support this case and throw an exception instead, or may * restrict the set of directories that are considered by default. * *
If the {@code pathPrefix} points to a package, then that package should also be part of the
* result.
*
* @param originalPattern the original target pattern for error reporting purposes
* @param pathPrefix the directory in which to look for packages
* @param rulesOnly whether to return rules only
*/
ResolvedTargets