Table of Contents

Class KnownSymbols

Namespace
PolyType.Roslyn
Assembly
PolyType.Roslyn.dll

Provides a caching layer for common known symbols wrapping a Compilation instance.

public class KnownSymbols
Inheritance
KnownSymbols
Inherited Members

Constructors

KnownSymbols(Compilation)

Provides a caching layer for common known symbols wrapping a Compilation instance.

public KnownSymbols(Compilation compilation)

Parameters

compilation Compilation

The compilation from which information is being queried.

Properties

Compilation

The compilation from which information is being queried.

public Compilation Compilation { get; }

Property Value

Compilation

CompilerGeneratedAttribute

The type symbol for CompilerGeneratedAttribute.

public INamedTypeSymbol? CompilerGeneratedAttribute { get; }

Property Value

INamedTypeSymbol

CoreLibAssembly

The assembly symbol for the core library.

public IAssemblySymbol CoreLibAssembly { get; }

Property Value

IAssemblySymbol

DictionaryOfTKeyTValue

The type symbol for Dictionary<TKey, TValue>.

public INamedTypeSymbol? DictionaryOfTKeyTValue { get; }

Property Value

INamedTypeSymbol

ExceptionType

The type symbol for Exception.

public INamedTypeSymbol? ExceptionType { get; }

Property Value

INamedTypeSymbol

FSharpList

The type symbol for the F# list type.

public INamedTypeSymbol? FSharpList { get; }

Property Value

INamedTypeSymbol

FSharpMap

The type symbol for the F# map type.

public INamedTypeSymbol? FSharpMap { get; }

Property Value

INamedTypeSymbol

FlagsAttribute

The type symbol for FlagsAttribute.

public INamedTypeSymbol? FlagsAttribute { get; }

Property Value

INamedTypeSymbol

FrozenDictionary

The type symbol for FrozenDictionary.

public INamedTypeSymbol? FrozenDictionary { get; }

Property Value

INamedTypeSymbol

FrozenSet

The type symbol for FrozenSet.

public INamedTypeSymbol? FrozenSet { get; }

Property Value

INamedTypeSymbol

HashSetOfT

The type symbol for HashSet<T>.

public INamedTypeSymbol? HashSetOfT { get; }

Property Value

INamedTypeSymbol

IAsyncEnumerableOfT

The type symbol for IAsyncEnumerable{T}.

public INamedTypeSymbol? IAsyncEnumerableOfT { get; }

Property Value

INamedTypeSymbol

ICollection

The type symbol for ICollection.

public INamedTypeSymbol? ICollection { get; }

Property Value

INamedTypeSymbol

ICollectionOfT

The type symbol for ICollection<T>.

public INamedTypeSymbol? ICollectionOfT { get; }

Property Value

INamedTypeSymbol

IComparerOfT

The type symbol for IComparer<T>.

public INamedTypeSymbol? IComparerOfT { get; }

Property Value

INamedTypeSymbol

IDictionary

The type symbol for IDictionary.

public INamedTypeSymbol? IDictionary { get; }

Property Value

INamedTypeSymbol

IDictionaryOfTKeyTValue

The type symbol for IDictionary<TKey, TValue>.

public INamedTypeSymbol? IDictionaryOfTKeyTValue { get; }

Property Value

INamedTypeSymbol

IEnumerable

The type symbol for IEnumerable.

public INamedTypeSymbol IEnumerable { get; }

Property Value

INamedTypeSymbol

IEnumerableOfT

The type symbol for IEnumerable<T>.

public INamedTypeSymbol IEnumerableOfT { get; }

Property Value

INamedTypeSymbol

IEqualityComparerOfT

The type symbol for IEqualityComparer<T>.

public INamedTypeSymbol? IEqualityComparerOfT { get; }

Property Value

INamedTypeSymbol

IImmutableDictionary

public INamedTypeSymbol? IImmutableDictionary { get; }

Property Value

INamedTypeSymbol

IImmutableSet

The type symbol for IImmutableSet<T>.

public INamedTypeSymbol? IImmutableSet { get; }

Property Value

INamedTypeSymbol

IImmutableSetOfT

The type symbol for IImmutableSet{T}.

public INamedTypeSymbol? IImmutableSetOfT { get; }

Property Value

INamedTypeSymbol

IList

The type symbol for IList.

public INamedTypeSymbol? IList { get; }

Property Value

INamedTypeSymbol

IReadOnlyDictionaryOfTKeyTValue

The type symbol for IReadOnlyDictionary<TKey, TValue>.

public INamedTypeSymbol? IReadOnlyDictionaryOfTKeyTValue { get; }

Property Value

INamedTypeSymbol

IReadOnlySetOfT

The type symbol for IReadOnlySet{T}.

public INamedTypeSymbol? IReadOnlySetOfT { get; }

Property Value

INamedTypeSymbol

ISetOfT

The type symbol for ISet<T>.

public INamedTypeSymbol? ISetOfT { get; }

Property Value

INamedTypeSymbol

ImmutableArray

The type symbol for ImmutableArray<T>.

public INamedTypeSymbol? ImmutableArray { get; }

Property Value

INamedTypeSymbol

ImmutableDictionary

The type symbol for ImmutableDictionary<TKey, TValue>.

public INamedTypeSymbol? ImmutableDictionary { get; }

Property Value

INamedTypeSymbol

ImmutableHashSet

The type symbol for ImmutableHashSet<T>.

public INamedTypeSymbol? ImmutableHashSet { get; }

Property Value

INamedTypeSymbol

ImmutableList

The type symbol for ImmutableList<T>.

public INamedTypeSymbol? ImmutableList { get; }

Property Value

INamedTypeSymbol

ImmutableQueue

The type symbol for ImmutableQueue<T>.

public INamedTypeSymbol? ImmutableQueue { get; }

Property Value

INamedTypeSymbol

ImmutableSortedDictionary

public INamedTypeSymbol? ImmutableSortedDictionary { get; }

Property Value

INamedTypeSymbol

ImmutableSortedSet

The type symbol for ImmutableSortedSet<T>.

public INamedTypeSymbol? ImmutableSortedSet { get; }

Property Value

INamedTypeSymbol

ImmutableStack

The type symbol for ImmutableStack<T>.

public INamedTypeSymbol? ImmutableStack { get; }

Property Value

INamedTypeSymbol

KeyValuePairOfKV

The type symbol for KeyValuePair<TKey, TValue>.

public INamedTypeSymbol? KeyValuePairOfKV { get; }

Property Value

INamedTypeSymbol

ListOfT

The type symbol for List<T>.

public INamedTypeSymbol? ListOfT { get; }

Property Value

INamedTypeSymbol

MemberInfoType

The type symbol for MemberInfo.

public INamedTypeSymbol? MemberInfoType { get; }

Property Value

INamedTypeSymbol

MemoryOfT

The type symbol for Memory<T>.

public INamedTypeSymbol? MemoryOfT { get; }

Property Value

INamedTypeSymbol

ReadOnlyMemoryOfT

The type symbol for ReadOnlyMemory<T>.

public INamedTypeSymbol? ReadOnlyMemoryOfT { get; }

Property Value

INamedTypeSymbol

ReadOnlySpanOfT

The type symbol for ReadOnlySpan<T>.

public INamedTypeSymbol? ReadOnlySpanOfT { get; }

Property Value

INamedTypeSymbol

SpanOfT

The type symbol for Span<T>.

public INamedTypeSymbol? SpanOfT { get; }

Property Value

INamedTypeSymbol

SystemValueType

The type symbol for ValueType.

public INamedTypeSymbol SystemValueType { get; }

Property Value

INamedTypeSymbol

TargetFramework

Gets the resolved target framework of the current compilation

public TargetFramework TargetFramework { get; }

Property Value

TargetFramework

TaskType

The type symbol for Task.

public INamedTypeSymbol? TaskType { get; }

Property Value

INamedTypeSymbol

TupleOfKV

The type symbol for Tuple<T1, T2>.

public INamedTypeSymbol? TupleOfKV { get; }

Property Value

INamedTypeSymbol

ValueTaskOfTType

The type symbol for ValueTask<TResult>.

public INamedTypeSymbol? ValueTaskOfTType { get; }

Property Value

INamedTypeSymbol

ValueTaskType

The type symbol for ValueTask.

public INamedTypeSymbol? ValueTaskType { get; }

Property Value

INamedTypeSymbol

Methods

GetOrResolveType(string, ref Option<INamedTypeSymbol?>)

Get or resolve a type by its fully qualified name.

protected INamedTypeSymbol? GetOrResolveType(string fullyQualifiedName, ref KnownSymbols.Option<INamedTypeSymbol?> field)

Parameters

fullyQualifiedName string

The fully qualified name of the type to resolve.

field KnownSymbols.Option<INamedTypeSymbol>

A field in which to cache the result for future use.

Returns

INamedTypeSymbol

The type symbol result or null if not found.

IsSimpleType(ITypeSymbol)

A "simple type" in this context defines a type that is either a primitive, string or represents an irreducible value such as Guid or DateTime.

public bool IsSimpleType(ITypeSymbol type)

Parameters

type ITypeSymbol

Returns

bool