summaryrefslogtreecommitdiffstats
path: root/source/compiler-core/slang-artifact-util.cpp
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2024-10-29 14:49:26 +0800
committerGitHub <noreply@github.com>2024-10-29 14:49:26 +0800
commitf65d756bff8d4c5cbc15bd0322a2ae8e6b896a21 (patch)
treeea1d61342cd29368e19135000ec2948813096205 /source/compiler-core/slang-artifact-util.cpp
parenta729c15e9dce9f5116a38afc66329ab2ca4cea54 (diff)
format
* format * Minor test fixes * enable checking cpp format in ci
Diffstat (limited to 'source/compiler-core/slang-artifact-util.cpp')
-rw-r--r--source/compiler-core/slang-artifact-util.cpp124
1 files changed, 81 insertions, 43 deletions
diff --git a/source/compiler-core/slang-artifact-util.cpp b/source/compiler-core/slang-artifact-util.cpp
index e03f02e1e..703f8fddb 100644
--- a/source/compiler-core/slang-artifact-util.cpp
+++ b/source/compiler-core/slang-artifact-util.cpp
@@ -1,15 +1,14 @@
// slang-artifact-util.cpp
#include "slang-artifact-util.h"
-#include "slang-artifact-impl.h"
-#include "slang-artifact-representation-impl.h"
-
-#include "slang-artifact-desc-util.h"
-
#include "../core/slang-castable.h"
#include "../core/slang-io.h"
+#include "slang-artifact-desc-util.h"
+#include "slang-artifact-impl.h"
+#include "slang-artifact-representation-impl.h"
-namespace Slang {
+namespace Slang
+{
static bool _checkSelf(ArtifactUtil::FindStyle findStyle)
{
@@ -23,36 +22,39 @@ static bool _checkChildren(ArtifactUtil::FindStyle findStyle)
static bool _checkRecursive(ArtifactUtil::FindStyle findStyle)
{
- return findStyle == ArtifactUtil::FindStyle::Recursive ||
- findStyle == ArtifactUtil::FindStyle::ChildrenRecursive;
+ return findStyle == ArtifactUtil::FindStyle::Recursive ||
+ findStyle == ArtifactUtil::FindStyle::ChildrenRecursive;
}
-
+
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ArtifactUtil !!!!!!!!!!!!!!!!!!!!!!!!!!! */
-/* static */ComPtr<IArtifact> ArtifactUtil::createArtifact(const ArtifactDesc& desc, const char* name)
+/* static */ ComPtr<IArtifact> ArtifactUtil::createArtifact(
+ const ArtifactDesc& desc,
+ const char* name)
{
auto artifact = createArtifact(desc);
artifact->setName(name);
return artifact;
}
-/* static */ComPtr<IArtifact> ArtifactUtil::createArtifact(const ArtifactDesc& desc)
+/* static */ ComPtr<IArtifact> ArtifactUtil::createArtifact(const ArtifactDesc& desc)
{
return Artifact::create(desc);
}
-/* static */ComPtr<IArtifact> ArtifactUtil::createArtifactForCompileTarget(SlangCompileTarget target)
+/* static */ ComPtr<IArtifact> ArtifactUtil::createArtifactForCompileTarget(
+ SlangCompileTarget target)
{
auto desc = ArtifactDescUtil::makeDescForCompileTarget(target);
return createArtifact(desc);
}
-/* static */bool ArtifactUtil::isSignificant(IArtifact* artifact)
+/* static */ bool ArtifactUtil::isSignificant(IArtifact* artifact)
{
return isSignificant(artifact->getDesc());
}
-/* static */bool ArtifactUtil::isSignificant(const ArtifactDesc& desc)
+/* static */ bool ArtifactUtil::isSignificant(const ArtifactDesc& desc)
{
// Containers are not significant as of themselves, they may contain something tho
if (isDerivedFrom(desc.kind, ArtifactKind::Container))
@@ -61,16 +63,14 @@ static bool _checkRecursive(ArtifactUtil::FindStyle findStyle)
}
// If it has no payload.. we are done
- if (desc.payload == ArtifactPayload::None ||
- desc.payload == ArtifactPayload::Invalid)
+ if (desc.payload == ArtifactPayload::None || desc.payload == ArtifactPayload::Invalid)
{
return false;
}
// If it's binary like or assembly/source we it's significant
if (isDerivedFrom(desc.kind, ArtifactKind::CompileBinary) ||
- desc.kind == ArtifactKind::Assembly ||
- desc.kind == ArtifactKind::Source)
+ desc.kind == ArtifactKind::Assembly || desc.kind == ArtifactKind::Source)
{
return true;
}
@@ -93,15 +93,19 @@ static bool _checkRecursive(ArtifactUtil::FindStyle findStyle)
}
-/* static */bool ArtifactUtil::isSignificant(IArtifact* artifact, void* data)
+/* static */ bool ArtifactUtil::isSignificant(IArtifact* artifact, void* data)
{
SLANG_UNUSED(data);
return isSignificant(artifact->getDesc());
}
-/* static */IArtifact* ArtifactUtil::findSignificant(IArtifact* artifact)
-{
- return findArtifactByPredicate(artifact, FindStyle::SelfOrChildren, &ArtifactUtil::isSignificant, nullptr);
+/* static */ IArtifact* ArtifactUtil::findSignificant(IArtifact* artifact)
+{
+ return findArtifactByPredicate(
+ artifact,
+ FindStyle::SelfOrChildren,
+ &ArtifactUtil::isSignificant,
+ nullptr);
}
UnownedStringSlice ArtifactUtil::findPath(IArtifact* artifact)
@@ -122,7 +126,7 @@ UnownedStringSlice ArtifactUtil::findPath(IArtifact* artifact)
{
if (auto pathRep = as<IPathArtifactRepresentation>(rep))
{
- if (pathRep->getPathType() == SLANG_PATH_TYPE_FILE &&
+ if (pathRep->getPathType() == SLANG_PATH_TYPE_FILE &&
(bestRep == nullptr || as<IExtFileArtifactRepresentation>(rep)))
{
bestRep = pathRep;
@@ -130,11 +134,12 @@ UnownedStringSlice ArtifactUtil::findPath(IArtifact* artifact)
}
}
- const UnownedStringSlice name = bestRep ? UnownedStringSlice(bestRep->getPath()) : UnownedStringSlice();
+ const UnownedStringSlice name =
+ bestRep ? UnownedStringSlice(bestRep->getPath()) : UnownedStringSlice();
return name.getLength() ? name : UnownedStringSlice();
}
-/* static */UnownedStringSlice ArtifactUtil::inferExtension(IArtifact* artifact)
+/* static */ UnownedStringSlice ArtifactUtil::inferExtension(IArtifact* artifact)
{
const UnownedStringSlice path = findPath(artifact);
if (path.getLength())
@@ -148,14 +153,17 @@ UnownedStringSlice ArtifactUtil::findPath(IArtifact* artifact)
return UnownedStringSlice();
}
-/* static */UnownedStringSlice ArtifactUtil::findName(IArtifact* artifact)
+/* static */ UnownedStringSlice ArtifactUtil::findName(IArtifact* artifact)
{
const UnownedStringSlice path = findPath(artifact);
const Index pos = Path::findLastSeparatorIndex(path);
return (pos >= 0) ? path.tail(pos + 1) : path;
}
-static SlangResult _calcInferred(IArtifact* artifact, const UnownedStringSlice& basePath, StringBuilder& outPath)
+static SlangResult _calcInferred(
+ IArtifact* artifact,
+ const UnownedStringSlice& basePath,
+ StringBuilder& outPath)
{
auto ext = ArtifactUtil::inferExtension(artifact);
@@ -175,7 +183,10 @@ static SlangResult _calcInferred(IArtifact* artifact, const UnownedStringSlice&
return SLANG_OK;
}
-/* static */SlangResult ArtifactUtil::calcPath(IArtifact* artifact, const UnownedStringSlice& basePath, StringBuilder& outPath)
+/* static */ SlangResult ArtifactUtil::calcPath(
+ IArtifact* artifact,
+ const UnownedStringSlice& basePath,
+ StringBuilder& outPath)
{
if (ArtifactDescUtil::hasDefinedNameForDesc(artifact->getDesc()))
{
@@ -187,7 +198,10 @@ static SlangResult _calcInferred(IArtifact* artifact, const UnownedStringSlice&
}
}
-/* static */SlangResult ArtifactUtil::calcName(IArtifact* artifact, const UnownedStringSlice& baseName, StringBuilder& outName)
+/* static */ SlangResult ArtifactUtil::calcName(
+ IArtifact* artifact,
+ const UnownedStringSlice& baseName,
+ StringBuilder& outName)
{
if (ArtifactDescUtil::hasDefinedNameForDesc(artifact->getDesc()))
{
@@ -223,22 +237,39 @@ static bool _isName(IArtifact* artifact, void* data)
return ::strcmp(name, artifactName) == 0;
}
-/* static */IArtifact* ArtifactUtil::findArtifactByDerivedDesc(IArtifact* artifact, FindStyle findStyle, const ArtifactDesc& desc)
+/* static */ IArtifact* ArtifactUtil::findArtifactByDerivedDesc(
+ IArtifact* artifact,
+ FindStyle findStyle,
+ const ArtifactDesc& desc)
{
- return findArtifactByPredicate(artifact, findStyle, _isByDerivedDesc, &const_cast<ArtifactDesc&>(desc));
+ return findArtifactByPredicate(
+ artifact,
+ findStyle,
+ _isByDerivedDesc,
+ &const_cast<ArtifactDesc&>(desc));
}
-/* static */IArtifact* ArtifactUtil::findArtifactByName(IArtifact* artifact, FindStyle findStyle, const char* name)
+/* static */ IArtifact* ArtifactUtil::findArtifactByName(
+ IArtifact* artifact,
+ FindStyle findStyle,
+ const char* name)
{
return findArtifactByPredicate(artifact, findStyle, _isName, const_cast<char*>(name));
}
-/* static */IArtifact* ArtifactUtil::findArtifactByDesc(IArtifact* artifact, FindStyle findStyle, const ArtifactDesc& desc)
+/* static */ IArtifact* ArtifactUtil::findArtifactByDesc(
+ IArtifact* artifact,
+ FindStyle findStyle,
+ const ArtifactDesc& desc)
{
return findArtifactByPredicate(artifact, findStyle, _isDesc, &const_cast<ArtifactDesc&>(desc));
}
-/* static */IArtifact* ArtifactUtil::findArtifactByPredicate(IArtifact* artifact, FindStyle findStyle, FindFunc func, void* data)
+/* static */ IArtifact* ArtifactUtil::findArtifactByPredicate(
+ IArtifact* artifact,
+ FindStyle findStyle,
+ FindFunc func,
+ void* data)
{
if (_checkSelf(findStyle) && func(artifact, data))
{
@@ -250,7 +281,7 @@ static bool _isName(IArtifact* artifact, void* data)
return nullptr;
}
- // Expand the children so we can search them
+ // Expand the children so we can search them
artifact->expandChildren();
auto children = artifact->getChildren();
@@ -268,38 +299,45 @@ static bool _isName(IArtifact* artifact, void* data)
}
}
- // If it's recursive, we check all the children of children
+ // If it's recursive, we check all the children of children
if (_checkRecursive(findStyle))
{
for (auto child : children)
{
- if (auto found = findArtifactByPredicate(child, FindStyle::ChildrenRecursive, func, data))
+ if (auto found =
+ findArtifactByPredicate(child, FindStyle::ChildrenRecursive, func, data))
{
return found;
}
}
}
-
+
return nullptr;
}
-/* static */void ArtifactUtil::addAssociated(IArtifact* artifact, IArtifactPostEmitMetadata* metadata)
+/* static */ void ArtifactUtil::addAssociated(
+ IArtifact* artifact,
+ IArtifactPostEmitMetadata* metadata)
{
if (metadata)
{
- auto metadataArtifact = ArtifactUtil::createArtifact(ArtifactDesc::make(ArtifactKind::Instance, ArtifactPayload::PostEmitMetadata));
+ auto metadataArtifact = ArtifactUtil::createArtifact(
+ ArtifactDesc::make(ArtifactKind::Instance, ArtifactPayload::PostEmitMetadata));
metadataArtifact->addRepresentation(metadata);
artifact->addAssociated(metadataArtifact);
}
}
-/* static */void ArtifactUtil::addAssociated(IArtifact* artifact, IArtifactDiagnostics* diagnostics)
+/* static */ void ArtifactUtil::addAssociated(
+ IArtifact* artifact,
+ IArtifactDiagnostics* diagnostics)
{
if (diagnostics)
{
- auto diagnosticsArtifact = ArtifactUtil::createArtifact(ArtifactDesc::make(ArtifactKind::Instance, ArtifactPayload::Diagnostics));
+ auto diagnosticsArtifact = ArtifactUtil::createArtifact(
+ ArtifactDesc::make(ArtifactKind::Instance, ArtifactPayload::Diagnostics));
diagnosticsArtifact->addRepresentation(diagnostics);
- artifact->addAssociated(diagnosticsArtifact);
+ artifact->addAssociated(diagnosticsArtifact);
}
}