@@ -74,19 +74,21 @@ object Objects:
74
74
* ve ::= ObjectRef(class)
75
75
* | OfClass(class, vs[outer], ctor, args, env)
76
76
* | OfArray(object[owner], regions)
77
- * | Fun(..., env)
78
- * | Cold // abstract values in domain
77
+ * | Fun(..., env) // value elements that can be contained in ValueSet
79
78
* vs ::= ValueSet(ve) // set of abstract values
80
79
* Bottom ::= ValueSet(Empty)
80
+ * val ::= ve | Cold | vs // all possible abstract values in domain
81
+ * Ref ::= ObjectRef | OfClass // values that represents a reference
82
+ * ThisValue ::= Ref | Cold // possible values for 'this'
81
83
*
82
- * refMap = ( ObjectRef | OfClass ) -> ( valsMap, varsMap, outersMap ) // refMap stores field informations of an object or instance
83
- * valsMap = valsym -> vs // maps immutable fields to their values
84
+ * refMap = Ref -> ( valsMap, varsMap, outersMap ) // refMap stores field informations of an object or instance
85
+ * valsMap = valsym -> val // maps immutable fields to their values
84
86
* varsMap = valsym -> addr // each mutable field has an abstract address
85
- * outersMap = class -> ObjectRef | OfClass | Bottom // maps outer objects to their values
87
+ * outersMap = class -> val // maps outer objects to their values
86
88
*
87
89
* arrayMap = OfArray -> addr // an array has one address that stores the join value of every element
88
90
*
89
- * heap = addr -> vs // heap is mutable
91
+ * heap = addr -> val // heap is mutable
90
92
*
91
93
* env = (valsMap, Option[env]) // stores local variables in the residing method, and possibly outer environments
92
94
*
0 commit comments