Tracking: Permission Management System (Fold/Unfold)
This issue tracks the implementation of the permission management strategy as defined in the folding-unfolding.md design document. The core goal is to integrate Uniqueness Analysis results into the translation process to automate predicate folding and unfolding.
Phase 1: Data Extraction & Association
Phase 2: Core Infrastructure Updates
Phase 3: Translation & Logic Implementation
Currently not Supported:
- member functions. It is yet unclear how to handle the uniqueness type of the receiver.
- fold/unfold of fields that were inherited.
Tracking: Permission Management System (Fold/Unfold)
This issue tracks the implementation of the permission management strategy as defined in the folding-unfolding.md design document. The core goal is to integrate Uniqueness Analysis results into the translation process to automate predicate folding and unfolding.
Phase 1: Data Extraction & Association
registerForVerificationwithinProgramConverter.CFGNodesto build a mapping fromFirElementto its correspondingCFGNodes.Phase 2: Core Infrastructure Updates
MethodConverter:firToNodesmap andflowFactswithinMethodConverterto make them accessible during theFirElement->ExpEmbeddingtranslation.Phase 3: Translation & Logic Implementation
StmtConversionVisitor:ExpEmbeddingswhere applicable.PermissionManagementobject/service.ExpEmbedding.ExpEmbeddings to insert folds and unfolds of unique predicates where necessary.DeclareAssignFieldModificationMethodCallReturn. Partially Implemented - missing support from uniqueness checker.IfWhileElvismissing support from uniqueness checker.FieldAccessembedding to handle the decision logic for unfolding shared predicates.Currently not Supported: