diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2019-02-02 11:58:54 -0500 |
|---|---|---|
| committer | Tim Foley <tfoleyNV@users.noreply.github.com> | 2019-02-02 08:58:54 -0800 |
| commit | 3726194fbe3da234eb30b6371e5b4ab1ea388f93 (patch) | |
| tree | 815bb6162f76aeb2bd517126b802cc511cd0322a /source/slang/parameter-binding.cpp | |
| parent | 6f2c03430afdf963eed53c08d0b63342af722868 (diff) | |
Feature/as refactor review (#821)
* Replace dynamicCast with as where does not change behavior (ie not Type derived).
Use free function where scoping is clear.
* Replace uses of dynamicCast with as when there is no difference in behavior.
* Remove the IsXXXX methods from Type.
* Don't have separate smart pointer to store canonicalType on Type.
* Simplify Slang.FilteredMemberRefList.Adjust, such does the cast directly.
* Use free as where appropriate.
* Use free function version of casts where appropriate.
* Fix text in casting.md
* Fix typos in decl-refs.md
* Remove the uses of free function as on RefDecl.
Add 'canAs' to RefDecl as a way to test if a cast is possible.
Moved 'as' into RefDeclBase.
* Use 'is' to test for as cast on smart pointers.
Fix small scope issue.
* * Cache stringType and enumTypeType on the Session
* Make DeclRefType::Create return a RefPtr
* Make casting of result use the *method* .as (cos using free function would mean objects being wrongly destroyed)
* Make results from createInstance ref'd to avoid possible leaks.
* Fix typo in template parameter for is on RefPtr.
Diffstat (limited to 'source/slang/parameter-binding.cpp')
| -rw-r--r-- | source/slang/parameter-binding.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/source/slang/parameter-binding.cpp b/source/slang/parameter-binding.cpp index 904ec3129..e722ccbb9 100644 --- a/source/slang/parameter-binding.cpp +++ b/source/slang/parameter-binding.cpp @@ -785,12 +785,12 @@ static bool validateSpecializationsMatch( for(;;) { // Skip any global generic substitutions. - if(auto leftGlobalGeneric = ll.as<GlobalGenericParamSubstitution>()) + if(auto leftGlobalGeneric = as<GlobalGenericParamSubstitution>(ll)) { ll = leftGlobalGeneric->outer; continue; } - if(auto rightGlobalGeneric = rr.as<GlobalGenericParamSubstitution>()) + if(auto rightGlobalGeneric = as<GlobalGenericParamSubstitution>(rr)) { rr = rightGlobalGeneric->outer; continue; @@ -806,7 +806,7 @@ static bool validateSpecializationsMatch( ll = ll->outer; rr = rr->outer; - if(auto leftGeneric = leftSubst.as<GenericSubstitution>()) + if(auto leftGeneric = as<GenericSubstitution>(leftSubst)) { if(auto rightGeneric = as<GenericSubstitution>(rightSubst)) { @@ -816,9 +816,9 @@ static bool validateSpecializationsMatch( } } } - else if(auto leftThisType = leftSubst.as<ThisTypeSubstitution>()) + else if(auto leftThisType = as<ThisTypeSubstitution>(leftSubst)) { - if(auto rightThisType = rightSubst.as<ThisTypeSubstitution>()) + if(auto rightThisType = as<ThisTypeSubstitution>(rightSubst)) { if(validateThisTypeSubstitutionsMatch(context, leftThisType, rightThisType, stack)) { @@ -2494,7 +2494,7 @@ static void collectEntryPointParameters( // for( auto taggedUnionType : entryPoint->taggedUnionTypes ) { - auto substType = taggedUnionType->Substitute(typeSubst).dynamicCast<Type>(); + auto substType = taggedUnionType->Substitute(typeSubst).as<Type>(); auto typeLayout = CreateTypeLayout(context->layoutContext, substType); entryPointLayout->taggedUnionTypeLayouts.Add(typeLayout); } @@ -2610,7 +2610,7 @@ static void collectEntryPointParameters( auto resultTypeLayout = processEntryPointVaryingParameterDecl( context, entryPointFuncDecl, - resultType->Substitute(typeSubst).dynamicCast<Type>(), + resultType->Substitute(typeSubst).as<Type>(), state, resultLayout); |
