diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2020-11-05 13:43:00 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-05 13:43:00 -0500 |
| commit | c985f5f2f95dc95998fdfb8400baa0a04760ada2 (patch) | |
| tree | f79ba0576dd4f85c284f3c300a42d79964413796 /source/slang/slang-syntax.cpp | |
| parent | 8d4c0ea875b186648ff75b4f04891ba8f1286aac (diff) | |
Standard library save/loadable (#1592)
* #include an absolute path didn't work - because paths were taken to always be relative.
* Fix handling of access modifiers inside type definition.
* Fix access problem for AST node.
Make dumping produce a single function with switch, to potentially make available without Dump specific access.
* WIP on serialization design doc.
* Remove project references to previously generated files.
* More docs on serialization design.
* Improve serialization documentation.
Remove unused function from IRSerialReader.
* Small fixes around naming. Remove long comment from slang-serialize.h - as covered in serialization.md
* Remove long comment in slang-serialize.h as covered in serialization.md
* More information about doing replacements on read for AST and problems surrounding.
* Typo fix.
* Spelling fixes.
* Value serialize.
* Value types with inheritence.
* Use value reflection serial conversion for more AST types
* Use automatic serialization on more of AST.
* Get the types via decltype, simplifies what the extractor has to do.
* Update the serialization.md for the value serialization.
* Small doc improvements.
* Update project.
* Remove ImportExternalDecl type
Added addImportSymbol and ImportSymbol type
Fixed bug in container which meant it wouldn't read back AST module
* Because of change of how imports and handled, store objects as SerialPointers.
* First pass symbol lookup from mangled names.
* Cache current module looked up from mangled name.
* Fix SourceLoc bug.
Improve comments.
* Added diagnostic on mangled symbol not being found
* Fix typo.
* WIP serializing stdlib.
* WIP serializing stdlib in.
* Fix problem serializing arrays that hold data that is already serialized.
* Remove clash of names in MagicTypeModifier.
* Make conversion from char to String explicit.
Fix reference count issue with SerialReader.
* Add code to save/load stdlib.
* Use return code to avoid warning - SerialContainerUtil::write(module, options, &stream))
* Make all String numeric ctors explicit.
Added isChar to UnownedStringSlice.
Added operator== for UnownedStringSlice to String to avoid need to convert to String and allocate.
* Add error check to readAllText.
* tabs -> spaces on String.h
* tab -> spaces String.cpp
* Remove msg for StringBuilder, just build inplace for exceptions.
* Check SerialClasses - for name clashes.
Renamed Modifier::name as Modifier::keywordName
* Handling of extensions when deserializing AST - updating the moduleDecl->mapTypeToCandidateExtensions
Co-authored-by: Tim Foley <tim.foley.is@gmail.com>
Diffstat (limited to 'source/slang/slang-syntax.cpp')
| -rw-r--r-- | source/slang/slang-syntax.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/source/slang/slang-syntax.cpp b/source/slang/slang-syntax.cpp index ea17ad1d1..82e94fb6a 100644 --- a/source/slang/slang-syntax.cpp +++ b/source/slang/slang-syntax.cpp @@ -453,14 +453,14 @@ Index getFilterCountImpl(const ReflectClassInfo& clsInfo, MemberFilterStyle filt } } - if (magicMod->name == "SamplerState") + if (magicMod->magicName == "SamplerState") { auto type = astBuilder->create<SamplerStateType>(); type->declRef = declRef; type->flavor = SamplerStateFlavor(magicMod->tag); return type; } - else if (magicMod->name == "Vector") + else if (magicMod->magicName == "Vector") { SLANG_ASSERT(subst && subst->args.getCount() == 2); auto vecType = astBuilder->create<VectorExpressionType>(); @@ -469,14 +469,14 @@ Index getFilterCountImpl(const ReflectClassInfo& clsInfo, MemberFilterStyle filt vecType->elementCount = ExtractGenericArgInteger(subst->args[1]); return vecType; } - else if (magicMod->name == "Matrix") + else if (magicMod->magicName == "Matrix") { SLANG_ASSERT(subst && subst->args.getCount() == 3); auto matType = astBuilder->create<MatrixExpressionType>(); matType->declRef = declRef; return matType; } - else if (magicMod->name == "Texture") + else if (magicMod->magicName == "Texture") { SLANG_ASSERT(subst && subst->args.getCount() >= 1); auto textureType = astBuilder->create<TextureType>( @@ -485,7 +485,7 @@ Index getFilterCountImpl(const ReflectClassInfo& clsInfo, MemberFilterStyle filt textureType->declRef = declRef; return textureType; } - else if (magicMod->name == "TextureSampler") + else if (magicMod->magicName == "TextureSampler") { SLANG_ASSERT(subst && subst->args.getCount() >= 1); auto textureType = astBuilder->create<TextureSamplerType>( @@ -494,7 +494,7 @@ Index getFilterCountImpl(const ReflectClassInfo& clsInfo, MemberFilterStyle filt textureType->declRef = declRef; return textureType; } - else if (magicMod->name == "GLSLImageType") + else if (magicMod->magicName == "GLSLImageType") { SLANG_ASSERT(subst && subst->args.getCount() >= 1); auto textureType = astBuilder->create<GLSLImageType>( @@ -503,7 +503,7 @@ Index getFilterCountImpl(const ReflectClassInfo& clsInfo, MemberFilterStyle filt textureType->declRef = declRef; return textureType; } - else if (magicMod->name == "FeedbackType") + else if (magicMod->magicName == "FeedbackType") { SLANG_ASSERT(subst == nullptr); auto type = astBuilder->create<FeedbackType>(); @@ -517,7 +517,7 @@ Index getFilterCountImpl(const ReflectClassInfo& clsInfo, MemberFilterStyle filt // of this ridiculously slow `if` cascade. #define CASE(n,T) \ - else if(magicMod->name == #n) { \ + else if(magicMod->magicName == #n) { \ auto type = astBuilder->create<T>(); \ type->declRef = declRef; \ return type; \ @@ -529,7 +529,7 @@ Index getFilterCountImpl(const ReflectClassInfo& clsInfo, MemberFilterStyle filt #undef CASE #define CASE(n,T) \ - else if(magicMod->name == #n) { \ + else if(magicMod->magicName == #n) { \ SLANG_ASSERT(subst && subst->args.getCount() == 1); \ auto type = astBuilder->create<T>(); \ type->elementType = ExtractGenericArgType(subst->args[0]); \ @@ -558,7 +558,7 @@ Index getFilterCountImpl(const ReflectClassInfo& clsInfo, MemberFilterStyle filt // "magic" builtin types which have no generic parameters #define CASE(n,T) \ - else if(magicMod->name == #n) { \ + else if(magicMod->magicName == #n) { \ auto type = astBuilder->create<T>(); \ type->declRef = declRef; \ return type; \ @@ -575,7 +575,7 @@ Index getFilterCountImpl(const ReflectClassInfo& clsInfo, MemberFilterStyle filt else { - auto classInfo = astBuilder->findSyntaxClass(magicMod->name.getUnownedSlice()); + auto classInfo = astBuilder->findSyntaxClass(magicMod->magicName.getUnownedSlice()); if (!classInfo.classInfo) { SLANG_UNEXPECTED("unhandled type"); |
