SymbolReferences.cs 1.0 KB

12345678910111213141516171819202122232425
  1. using Microsoft.CodeAnalysis;
  2. namespace Lua.SourceGenerator;
  3. public sealed class SymbolReferences
  4. {
  5. public static SymbolReferences? Create(Compilation compilation)
  6. {
  7. var luaObjectAttribute = compilation.GetTypeByMetadataName("Lua.LuaObjectAttribute");
  8. if (luaObjectAttribute == null) return null;
  9. return new SymbolReferences
  10. {
  11. LuaObjectAttribute = luaObjectAttribute,
  12. LuaMemberAttribute = compilation.GetTypeByMetadataName("Lua.LuaMemberAttribute")!,
  13. LuaIgnoreMemberAttribute = compilation.GetTypeByMetadataName("Lua.LuaIgnoreMemberAttribute")!,
  14. LuaValue = compilation.GetTypeByMetadataName("Lua.LuaValue")!,
  15. };
  16. }
  17. public INamedTypeSymbol LuaObjectAttribute { get; private set; } = default!;
  18. public INamedTypeSymbol LuaMemberAttribute { get; private set; } = default!;
  19. public INamedTypeSymbol LuaIgnoreMemberAttribute { get; private set; } = default!;
  20. public INamedTypeSymbol LuaValue { get; private set; } = default!;
  21. }