Vixen
02b45cc4
csharp
public sealed class Compilation

A set of syntax trees compiled together, and the entry point to the semantic model. Modelled on Roslyn's CSharpCompilation: it owns the symbol table, hands out a SemanticModel per tree, and aggregates diagnostics from every phase.

No guide page documents this yet — the page shows what the code says about itself.

Fields and properties (7)

  • public string AssemblyName
  • public IReadOnlyList<SyntaxTree> SyntaxTrees
  • public IReadOnlyList<RavenReference> References

    The compiled libraries this compilation binds against, in the order they were supplied.

  • public PermutationValues PermutationValues

    Values supplied for this compilation's [Permutation] keys. Keys with no value here take the initializer in the source.

  • public ComposeBindings ComposeBindings

    Which concrete shader fills each compose slot. A slot with nothing bound is an error, so this is required for any shader that composes.

  • public IReadOnlyCollection<string> UsedPermutationKeys

    The permutation keys this compilation actually consulted, sorted by name.

  • public NamespaceSymbol GlobalNamespace

    Root of the symbol table; every package hangs off it.

Methods (12)

  • public static Compilation Create(string assemblyName, params SyntaxTree[] syntaxTrees)
  • public static Compilation Create(string assemblyName, IEnumerable<SyntaxTree> syntaxTrees)
  • public static Compilation Create(string assemblyName, IEnumerable<RavenReference> references, IEnumerable<SyntaxTree> syntaxTrees)

    Creates a compilation that binds against compiled libraries.

  • public static Compilation Create(string assemblyName, PermutationValues permutationValues, IEnumerable<SyntaxTree> syntaxTrees)

    Creates one variant of a compilation. Each distinct combination of and is a separate compilation, because both change what the code means.

  • public static Compilation Create(string assemblyName, PermutationValues permutationValues, ComposeBindings composeBindings, IEnumerable<SyntaxTree> syntaxTrees)
  • public static Compilation Create(string assemblyName, PermutationValues permutationValues, ComposeBindings composeBindings, IEnumerable<RavenReference> references, IEnumerable<SyntaxTree> syntaxTrees)
  • public SemanticModel GetSemanticModel(SyntaxTree syntaxTree)
  • public IReadOnlyList<NamedTypeSymbol> GetAllTypes()

    Every type declared in the compilation, nested types included.

  • public IReadOnlyList<NamedTypeSymbol> GetReferencedTypes()

    Every type the referenced libraries declare, nested types included.

  • public IReadOnlyList<NamedTypeSymbol> GetDeclaredTypes(SyntaxTree syntaxTree)

    Types declared at the top level of one syntax tree.

  • public IReadOnlyList<MethodSymbol> GetEntryPoints()

    Entry-point methods across every shader in the compilation.

  • public IReadOnlyList<Diagnostic> GetDiagnostics()

    Syntax, declaration and binding diagnostics for the whole compilation, ordered by file and position.

Used by (62, showing 40)

  • RavenKernelsVixen.Vfx.Gpu.Tests
  • ShaderRunVixen.Raven.Gpu.Tests
  • VfxShaderEmitterTestsVixen.Vfx.Tests
  • VfxShaderUniformTestsVixen.Vfx.Tests
  • VfxSortTestsVixen.Vfx.Gpu.Tests
  • AtomicTestsVixen.Raven.Tests
  • BinderVixen.Raven
  • BindingContextVixen.Raven
  • BindingTestsVixen.Raven.Tests
  • BindlessTextureTestsVixen.Raven.Tests
  • CapabilityTestsVixen.Raven.Tests
  • CodeGenTestBaseVixen.Raven.Tests
  • CompileDriverVixen.Raven.Cli
  • CompiledEffectTestsVixen.Raven.Tests
  • CompiledLibraryTestsVixen.Raven.Tests
  • ComposeInterfaceTestsVixen.Raven.Tests
  • ComposeTestsVixen.Raven.Tests
  • ComputeTestsVixen.Raven.Tests
  • DescriptorSetTestsVixen.Raven.Tests
  • DiagnosticFormatterTestsVixen.Raven.Tests
  • GlobalBinderVixen.Raven
  • GoldenGlslTestsVixen.Raven.Tests
  • GoldenIrTestsVixen.Raven.Tests
  • GoldenSpirvTestsVixen.Raven.Tests
  • GroupSharedTestsVixen.Raven.Tests
  • ImportBinderVixen.Raven
  • InOutTestsVixen.Raven.Tests
  • Int64TestsVixen.Raven.Tests
  • LibraryBuilderVixen.Raven
  • LibraryExampleTestsVixen.Raven.Tests
  • LibraryReflectionTestsVixen.Raven.Tests
  • LibraryTreeTestsVixen.Raven.Tests
  • LineBreakTestsVixen.Raven.Tests
  • LowererVixen.Raven
  • LoweringTestBaseVixen.Raven.Tests
  • MaterialRecordTestsVixen.Raven.Tests
  • PermutationTestsVixen.Raven.Tests
  • RavenEffectCompilerVixen.ShaderCompiler
  • ReadmeExampleTestsVixen.Raven.Tests
  • RecoveryTestsVixen.Raven.Tests