diff options
author | 2017-12-22 00:56:58 -0800 | |
---|---|---|
committer | 2017-12-22 00:58:31 -0800 | |
commit | e63a867feb2483851b5169894ff7b3c0bdb26581 (patch) | |
tree | 68306264ab9dc8f2383f987a42fb768b2d6436a8 /src/main/java/com/google/devtools/build/lib/analysis/configuredtargets | |
parent | 85e8d51c72c5dcb4d1f6a8f3186149339ca59fac (diff) |
Redo FileType to reduce generated garbage.
* Change FileType to no longer assume it operates on just the base name (it can now be given a full path).
* Move the responsibility to specific classes (Artifact, Path, PathFragment) to decide how they want to offer up a string that includes the file name.
* Flip the order in which users are expected to check Artifact type, from FileType#matches(Artifact) to Artifact#isFileType(FileType). This looks natural and should encourage developers to use efficient file type checking methods.
* Change CppCompileAction to use the new API.
RELNOTES: None
PiperOrigin-RevId: 179903239
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/configuredtargets')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java index 4a009fe326..30e9f2f203 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java @@ -35,11 +35,11 @@ import com.google.devtools.build.lib.packages.Provider; import com.google.devtools.build.lib.util.FileType; /** - * A ConfiguredTarget for a source FileTarget. (Generated files use a - * subclass, OutputFileConfiguredTarget.) + * A ConfiguredTarget for a source FileTarget. (Generated files use a subclass, + * OutputFileConfiguredTarget.) */ public abstract class FileConfiguredTarget extends AbstractConfiguredTarget - implements FileType.HasFilename, LicensesProvider { + implements FileType.HasFileType, LicensesProvider { private final Artifact artifact; private final TransitiveInfoProviderMap providers; @@ -78,12 +78,16 @@ public abstract class FileConfiguredTarget extends AbstractConfiguredTarget /** * Returns the file name of this file target. */ - @Override public String getFilename() { return getTarget().getFilename(); } @Override + public String filePathForFileTypeMatcher() { + return getFilename(); + } + + @Override public <P extends TransitiveInfoProvider> P getProvider(Class<P> provider) { AnalysisUtils.checkProvider(provider); return providers.getProvider(provider); |