Value is an abstract class that is used to instantiate placeholders
in the generated IR.
Take the following code snippet as an example of the IR:
mapping(T1 => T2) M V m;
In which T1, T2, M and V are all placeholders.
In the solving process, the solver will replace these placeholders
with actual values, which are type, type, storage location and
visibility respectively.
Check if two Values are exactly the same.
Sometimes, two Values are the same but not exactly the same.
For example, StoragePointer and StorageRef are the same
but not exactly the same.
Get the values that are in the same range as the Value.
The value v is in the same range as the Value u if and only if
u is a super-Value of v or u is a sub-Value of v.
Value is an abstract class that is used to instantiate placeholders in the generated IR.
Take the following code snippet as an example of the IR:
In which
T1
,T2
,M
andV
are all placeholders. In the solving process, the solver will replace these placeholders with actual values, which are type, type, storage location and visibility respectively.Param: kind
The kind of the Value.