mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-07-15 09:35:57 +00:00
semantic::Function: Clean up ReferencedXXX() return types
Use a type alias for the most common and lengthy return type. Drop the `const` from the return type - it is (or at least should be) meaningless. Fix `auto& referenced_variables =` local variable declaration in inspector.cc. You cannot take a reference to a non-ref return value of a function. I have no idea why the compiler wasn't erroring about this. Change-Id: Icc0b4a9bf4b4c9d03b44670eda27214ef04ad41c Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/42021 Commit-Queue: Ben Clayton <bclayton@google.com> Reviewed-by: dan sinclair <dsinclair@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
This commit is contained in:
parent
3a9a55eec6
commit
1d5a7eb82f
@ -412,7 +412,7 @@ std::vector<ResourceBinding> Inspector::GetSampledTextureResourceBindingsImpl(
|
||||
|
||||
std::vector<ResourceBinding> result;
|
||||
auto* func_sem = program_->Sem().Get(func);
|
||||
auto& referenced_variables =
|
||||
auto referenced_variables =
|
||||
multisampled_only ? func_sem->ReferencedMultisampledTextureVariables()
|
||||
: func_sem->ReferencedSampledTextureVariables();
|
||||
for (auto& ref : referenced_variables) {
|
||||
|
@ -47,6 +47,9 @@ class Function : public Castable<Function, CallTarget> {
|
||||
ast::GroupDecoration* group = nullptr;
|
||||
};
|
||||
|
||||
/// A vector of [Variable*, BindingInfo] pairs
|
||||
using VariableBindings = std::vector<std::pair<const Variable*, BindingInfo>>;
|
||||
|
||||
/// Constructor
|
||||
/// @param declaration the ast::Function
|
||||
/// @param referenced_module_vars the referenced module variables
|
||||
@ -80,59 +83,52 @@ class Function : public Castable<Function, CallTarget> {
|
||||
}
|
||||
/// Retrieves any referenced location variables
|
||||
/// @returns the <variable, decoration> pair.
|
||||
const std::vector<std::pair<const Variable*, ast::LocationDecoration*>>
|
||||
std::vector<std::pair<const Variable*, ast::LocationDecoration*>>
|
||||
ReferencedLocationVariables() const;
|
||||
|
||||
/// Retrieves any referenced builtin variables
|
||||
/// @returns the <variable, decoration> pair.
|
||||
const std::vector<std::pair<const Variable*, ast::BuiltinDecoration*>>
|
||||
std::vector<std::pair<const Variable*, ast::BuiltinDecoration*>>
|
||||
ReferencedBuiltinVariables() const;
|
||||
|
||||
/// Retrieves any referenced uniform variables. Note, the variables must be
|
||||
/// decorated with both binding and group decorations.
|
||||
/// @returns the referenced uniforms
|
||||
const std::vector<std::pair<const Variable*, BindingInfo>>
|
||||
ReferencedUniformVariables() const;
|
||||
VariableBindings ReferencedUniformVariables() const;
|
||||
|
||||
/// Retrieves any referenced storagebuffer variables. Note, the variables
|
||||
/// must be decorated with both binding and group decorations.
|
||||
/// @returns the referenced storagebuffers
|
||||
const std::vector<std::pair<const Variable*, BindingInfo>>
|
||||
ReferencedStorageBufferVariables() const;
|
||||
VariableBindings ReferencedStorageBufferVariables() const;
|
||||
|
||||
/// Retrieves any referenced regular Sampler variables. Note, the
|
||||
/// variables must be decorated with both binding and group decorations.
|
||||
/// @returns the referenced storagebuffers
|
||||
const std::vector<std::pair<const Variable*, BindingInfo>>
|
||||
ReferencedSamplerVariables() const;
|
||||
VariableBindings ReferencedSamplerVariables() const;
|
||||
|
||||
/// Retrieves any referenced comparison Sampler variables. Note, the
|
||||
/// variables must be decorated with both binding and group decorations.
|
||||
/// @returns the referenced storagebuffers
|
||||
const std::vector<std::pair<const Variable*, BindingInfo>>
|
||||
ReferencedComparisonSamplerVariables() const;
|
||||
VariableBindings ReferencedComparisonSamplerVariables() const;
|
||||
|
||||
/// Retrieves any referenced sampled textures variables. Note, the
|
||||
/// variables must be decorated with both binding and group decorations.
|
||||
/// @returns the referenced sampled textures
|
||||
const std::vector<std::pair<const Variable*, BindingInfo>>
|
||||
ReferencedSampledTextureVariables() const;
|
||||
VariableBindings ReferencedSampledTextureVariables() const;
|
||||
|
||||
/// Retrieves any referenced multisampled textures variables. Note, the
|
||||
/// variables must be decorated with both binding and group decorations.
|
||||
/// @returns the referenced sampled textures
|
||||
const std::vector<std::pair<const Variable*, BindingInfo>>
|
||||
ReferencedMultisampledTextureVariables() const;
|
||||
VariableBindings ReferencedMultisampledTextureVariables() const;
|
||||
|
||||
/// Retrieves any referenced storage texture variables. Note, the variables
|
||||
/// must be decorated with both binding and group decorations.
|
||||
/// @returns the referenced storage textures
|
||||
const std::vector<std::pair<const Variable*, BindingInfo>>
|
||||
ReferencedStorageTextureVariables() const;
|
||||
VariableBindings ReferencedStorageTextureVariables() const;
|
||||
|
||||
/// Retrieves any locally referenced builtin variables
|
||||
/// @returns the <variable, decoration> pairs.
|
||||
const std::vector<std::pair<const Variable*, ast::BuiltinDecoration*>>
|
||||
std::vector<std::pair<const Variable*, ast::BuiltinDecoration*>>
|
||||
LocalReferencedBuiltinVariables() const;
|
||||
|
||||
/// Checks if the given entry point is an ancestor
|
||||
@ -141,10 +137,9 @@ class Function : public Castable<Function, CallTarget> {
|
||||
bool HasAncestorEntryPoint(Symbol sym) const;
|
||||
|
||||
private:
|
||||
const std::vector<std::pair<const Variable*, BindingInfo>>
|
||||
ReferencedSamplerVariablesImpl(type::SamplerKind kind) const;
|
||||
const std::vector<std::pair<const Variable*, BindingInfo>>
|
||||
ReferencedSampledTextureVariablesImpl(bool multisampled) const;
|
||||
VariableBindings ReferencedSamplerVariablesImpl(type::SamplerKind kind) const;
|
||||
VariableBindings ReferencedSampledTextureVariablesImpl(
|
||||
bool multisampled) const;
|
||||
|
||||
ast::Function* const declaration_;
|
||||
std::vector<const Variable*> const referenced_module_vars_;
|
||||
|
@ -57,7 +57,7 @@ Function::Function(ast::Function* declaration,
|
||||
|
||||
Function::~Function() = default;
|
||||
|
||||
const std::vector<std::pair<const Variable*, ast::LocationDecoration*>>
|
||||
std::vector<std::pair<const Variable*, ast::LocationDecoration*>>
|
||||
Function::ReferencedLocationVariables() const {
|
||||
std::vector<std::pair<const Variable*, ast::LocationDecoration*>> ret;
|
||||
|
||||
@ -72,9 +72,8 @@ Function::ReferencedLocationVariables() const {
|
||||
return ret;
|
||||
}
|
||||
|
||||
const std::vector<std::pair<const Variable*, Function::BindingInfo>>
|
||||
Function::ReferencedUniformVariables() const {
|
||||
std::vector<std::pair<const Variable*, Function::BindingInfo>> ret;
|
||||
Function::VariableBindings Function::ReferencedUniformVariables() const {
|
||||
VariableBindings ret;
|
||||
|
||||
for (auto* var : ReferencedModuleVariables()) {
|
||||
if (var->StorageClass() != ast::StorageClass::kUniform) {
|
||||
@ -99,9 +98,8 @@ Function::ReferencedUniformVariables() const {
|
||||
return ret;
|
||||
}
|
||||
|
||||
const std::vector<std::pair<const Variable*, Function::BindingInfo>>
|
||||
Function::ReferencedStorageBufferVariables() const {
|
||||
std::vector<std::pair<const Variable*, Function::BindingInfo>> ret;
|
||||
Function::VariableBindings Function::ReferencedStorageBufferVariables() const {
|
||||
VariableBindings ret;
|
||||
|
||||
for (auto* var : ReferencedModuleVariables()) {
|
||||
if (var->StorageClass() != ast::StorageClass::kStorage) {
|
||||
@ -126,7 +124,7 @@ Function::ReferencedStorageBufferVariables() const {
|
||||
return ret;
|
||||
}
|
||||
|
||||
const std::vector<std::pair<const Variable*, ast::BuiltinDecoration*>>
|
||||
std::vector<std::pair<const Variable*, ast::BuiltinDecoration*>>
|
||||
Function::ReferencedBuiltinVariables() const {
|
||||
std::vector<std::pair<const Variable*, ast::BuiltinDecoration*>> ret;
|
||||
|
||||
@ -141,29 +139,26 @@ Function::ReferencedBuiltinVariables() const {
|
||||
return ret;
|
||||
}
|
||||
|
||||
const std::vector<std::pair<const Variable*, Function::BindingInfo>>
|
||||
Function::ReferencedSamplerVariables() const {
|
||||
Function::VariableBindings Function::ReferencedSamplerVariables() const {
|
||||
return ReferencedSamplerVariablesImpl(type::SamplerKind::kSampler);
|
||||
}
|
||||
|
||||
const std::vector<std::pair<const Variable*, Function::BindingInfo>>
|
||||
Function::ReferencedComparisonSamplerVariables() const {
|
||||
Function::VariableBindings Function::ReferencedComparisonSamplerVariables()
|
||||
const {
|
||||
return ReferencedSamplerVariablesImpl(type::SamplerKind::kComparisonSampler);
|
||||
}
|
||||
|
||||
const std::vector<std::pair<const Variable*, Function::BindingInfo>>
|
||||
Function::ReferencedSampledTextureVariables() const {
|
||||
Function::VariableBindings Function::ReferencedSampledTextureVariables() const {
|
||||
return ReferencedSampledTextureVariablesImpl(false);
|
||||
}
|
||||
|
||||
const std::vector<std::pair<const Variable*, Function::BindingInfo>>
|
||||
Function::ReferencedMultisampledTextureVariables() const {
|
||||
Function::VariableBindings Function::ReferencedMultisampledTextureVariables()
|
||||
const {
|
||||
return ReferencedSampledTextureVariablesImpl(true);
|
||||
}
|
||||
|
||||
const std::vector<std::pair<const Variable*, Function::BindingInfo>>
|
||||
Function::ReferencedStorageTextureVariables() const {
|
||||
std::vector<std::pair<const Variable*, Function::BindingInfo>> ret;
|
||||
Function::VariableBindings Function::ReferencedStorageTextureVariables() const {
|
||||
VariableBindings ret;
|
||||
|
||||
for (auto* var : ReferencedModuleVariables()) {
|
||||
auto* unwrapped_type = var->Declaration()->type()->UnwrapIfNeeded();
|
||||
@ -190,7 +185,7 @@ Function::ReferencedStorageTextureVariables() const {
|
||||
return ret;
|
||||
}
|
||||
|
||||
const std::vector<std::pair<const Variable*, ast::BuiltinDecoration*>>
|
||||
std::vector<std::pair<const Variable*, ast::BuiltinDecoration*>>
|
||||
Function::LocalReferencedBuiltinVariables() const {
|
||||
std::vector<std::pair<const Variable*, ast::BuiltinDecoration*>> ret;
|
||||
|
||||
@ -214,9 +209,9 @@ bool Function::HasAncestorEntryPoint(Symbol symbol) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
const std::vector<std::pair<const Variable*, Function::BindingInfo>>
|
||||
Function::ReferencedSamplerVariablesImpl(type::SamplerKind kind) const {
|
||||
std::vector<std::pair<const Variable*, Function::BindingInfo>> ret;
|
||||
Function::VariableBindings Function::ReferencedSamplerVariablesImpl(
|
||||
type::SamplerKind kind) const {
|
||||
VariableBindings ret;
|
||||
|
||||
for (auto* var : ReferencedModuleVariables()) {
|
||||
auto* unwrapped_type = var->Declaration()->type()->UnwrapIfNeeded();
|
||||
@ -244,9 +239,9 @@ Function::ReferencedSamplerVariablesImpl(type::SamplerKind kind) const {
|
||||
return ret;
|
||||
}
|
||||
|
||||
const std::vector<std::pair<const Variable*, Function::BindingInfo>>
|
||||
Function::ReferencedSampledTextureVariablesImpl(bool multisampled) const {
|
||||
std::vector<std::pair<const Variable*, Function::BindingInfo>> ret;
|
||||
Function::VariableBindings Function::ReferencedSampledTextureVariablesImpl(
|
||||
bool multisampled) const {
|
||||
VariableBindings ret;
|
||||
|
||||
for (auto* var : ReferencedModuleVariables()) {
|
||||
auto* unwrapped_type = var->Declaration()->type()->UnwrapIfNeeded();
|
||||
|
Loading…
x
Reference in New Issue
Block a user