Vixen
02b45cc4
csharp
public abstract class TypeSymbol

Base of everything usable as a type. Type identity is structural: two int[] symbols built independently compare equal, so the binder can construct types on demand without interning them.

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

Fields and properties (9)

  • public abstract TypeKind TypeKind
  • public virtual SpecialType SpecialType

    The intrinsic type this is, or None.

  • public virtual ResourceKind ResourceKind

    How a shader field of this type binds on the GPU, or None when it is not a resource at all.

  • public virtual bool IsWritableResource

    Whether a shader may store into a binding of this type. False for everything the host uploads — a uniform, a sampled texture, a read-only buffer.

  • public bool IsErrorType

    True when this type stands in for a type that failed to resolve.

  • public bool IsVoid
  • public bool IsNumericLike

    Scalar, vector or matrix — the types arithmetic operators accept.

  • public virtual NamedTypeSymbol? BaseType

    The type this one derives from, or null.

  • public virtual IReadOnlyList<NamedTypeSymbol> Interfaces

    Protocols this type conforms to.

Methods (4)

  • public virtual IReadOnlyList<Symbol> GetMembers()
  • public virtual IReadOnlyList<Symbol> GetMembers(string name)
  • public IEnumerable<TypeSymbol> TypeAndBases()

    This type plus its base types and protocols, nearest first. Member lookup walks this sequence and stops at the first type that has a match.

  • public bool IsSubtypeOf(TypeSymbol other)

    True when is this type or one of its bases/protocols.

Used by (87, showing 40)

  • ArrayTypeSymbolVixen.Raven
  • BinaryOperatorSignatureVixen.Raven
  • BinderVixen.Raven
  • BindingContextVixen.Raven
  • BoundArrayAccessExpressionVixen.Raven
  • BoundAssignmentExpressionVixen.Raven
  • BoundBaseExpressionVixen.Raven
  • BoundBinaryExpressionVixen.Raven
  • BoundBodyVixen.Raven
  • BoundCollectionExpressionVixen.Raven
  • BoundConditionalExpressionVixen.Raven
  • BoundConversionExpressionVixen.Raven
  • BoundErrorExpressionVixen.Raven
  • BoundExpressionVixen.Raven
  • BoundFieldExpressionVixen.Raven
  • BoundInvocationExpressionVixen.Raven
  • BoundLiteralExpressionVixen.Raven
  • BoundLocalExpressionVixen.Raven
  • BoundMethodGroupExpressionVixen.Raven
  • BoundNamespaceExpressionVixen.Raven
  • BoundObjectCreationExpressionVixen.Raven
  • BoundParameterExpressionVixen.Raven
  • BoundPropertyExpressionVixen.Raven
  • BoundRangeExpressionVixen.Raven
  • BoundSelfExpressionVixen.Raven
  • BoundTupleExpressionVixen.Raven
  • BoundTypeExpressionVixen.Raven
  • BoundUnaryExpressionVixen.Raven
  • BufferTypeSymbolVixen.Raven
  • BuilderVixen.Raven
  • CompilationVixen.Raven
  • CompiledLibraryTestsVixen.Raven.Tests
  • ComposeTestsVixen.Raven.Tests
  • ConstantEvaluatorVixen.Raven
  • ConstraintResolutionVixen.Raven
  • ConstructedNamedTypeSymbolVixen.Raven
  • ConversionsVixen.Raven
  • FieldSymbolVixen.Raven
  • FlowAnalysisVixen.Raven
  • ImportBinderVixen.Raven