Table of Contents

Class StaticEnvironment

Namespace
RDCore.SDK.Semantics.Static.Abstract
Assembly
RDCore.SDK.dll

What the environment the code is compiled for decides about its static semantics, which no module and no scope says: how wide a pointer is.

public sealed record StaticEnvironment : IEquatable<StaticEnvironment>
Inheritance
StaticEnvironment
Implements
Inherited Members

Remarks

The declarations of a module are resolved with it already - a variable declared As LongPtr has the LongPtr of its environment - so a rule only needs it for a value whose type is the environment's own: the address an AddressOf expression gives (MS-VBAL §5.6.16.8).

Constructors

StaticEnvironment(bool)

What the environment the code is compiled for decides about its static semantics, which no module and no scope says: how wide a pointer is.

public StaticEnvironment(bool Is64Bit)

Parameters

Is64Bit bool

Whether the environment is a 64-bit one, whose LongPtr is a LongLong (MS-VBAL §2.2); otherwise it is a Long.

Remarks

The declarations of a module are resolved with it already - a variable declared As LongPtr has the LongPtr of its environment - so a rule only needs it for a value whose type is the environment's own: the address an AddressOf expression gives (MS-VBAL §5.6.16.8).

Properties

Is64Bit

Whether the environment is a 64-bit one, whose LongPtr is a LongLong (MS-VBAL §2.2); otherwise it is a Long.

public bool Is64Bit { get; init; }

Property Value

bool

Libraries

The descriptions of the libraries the environment has, whether the project references them or not, or null when it has none to say.

public ILibrarySource? Libraries { get; init; }

Property Value

ILibrarySource

Remarks

What a library the project does not reference declares is never a name the code can use: it is what the facts for tooling say of an object created by name (ObjectCreationFact), and nothing else.

PointerType

The LongPtr of the environment: the declared type of a pointer, or of a handle.

public VBType PointerType { get; }

Property Value

VBType