Class StaticEnvironment
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
Is64BitboolWhether the environment is a 64-bit one, whose
LongPtris aLongLong(MS-VBAL §2.2); otherwise it is aLong.
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
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
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; }