├── .devcontainer └── devcontainer.json ├── .github ├── dependabot.yml └── workflows │ ├── mdbook.yml │ └── rust.yml ├── .gitignore ├── .vscode └── settings.json ├── Cargo.lock ├── Cargo.toml ├── FRICTION.md ├── LICENSE ├── README.md ├── TODO.md ├── book ├── .gitignore ├── book.toml └── src │ ├── SUMMARY.md │ ├── atomicity.md │ ├── classes.md │ ├── intro.md │ ├── notes.md │ ├── opsem.md │ ├── perms.md │ ├── subtypes.md │ ├── tenets.md │ ├── type_checking.md │ ├── types.md │ └── value_types.md └── src ├── dada.runtimeconfig.json ├── grammar.rs ├── grammar ├── cast_impls.rs ├── method_impls.rs ├── named_ty_impls.rs ├── perm_impls.rs ├── test_parse.rs └── ty_impls.rs ├── lib.rs ├── main.rs ├── type_system.rs └── type_system ├── accesses.rs ├── blocks.rs ├── classes.rs ├── env.rs ├── expressions.rs ├── in_flight.rs ├── liveness.rs ├── local_liens.rs ├── methods.rs ├── perm_matcher.rs ├── places.rs ├── predicates.rs ├── quantifiers.rs ├── redperms.rs ├── redperms └── cast_impls.rs ├── statements.rs ├── subtypes.rs ├── tests.rs ├── tests ├── assignment.rs ├── cancellation.rs ├── class_defn_wf.rs ├── class_defn_wf │ └── our_vs_share.rs ├── fn_calls.rs ├── guard_classes.rs ├── guard_classes │ └── lock_guard.rs ├── move_check.rs ├── move_tracking.rs ├── new_with_self_references.rs ├── our_classes_permissions.rs ├── our_classes_subtyping.rs ├── permission_check.rs ├── permission_check │ └── borrowck_loan_kills.rs ├── subpermission.rs ├── subtyping.rs ├── subtyping │ ├── liskov.rs │ └── liskov │ │ ├── cancellation.rs │ │ ├── compatible_layout.rs │ │ └── subpermission.rs ├── type_check.rs └── variance_subtyping.rs └── types.rs /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/.devcontainer/devcontainer.json -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/mdbook.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/.github/workflows/mdbook.yml -------------------------------------------------------------------------------- /.github/workflows/rust.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/.github/workflows/rust.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.dll 2 | *~ 3 | compiled 4 | x.txt 5 | 6 | # Added by cargo 7 | 8 | /target 9 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.formatOnSave": true 3 | } -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/Cargo.toml -------------------------------------------------------------------------------- /FRICTION.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/FRICTION.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/README.md -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/TODO.md -------------------------------------------------------------------------------- /book/.gitignore: -------------------------------------------------------------------------------- 1 | book 2 | -------------------------------------------------------------------------------- /book/book.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/book/book.toml -------------------------------------------------------------------------------- /book/src/SUMMARY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/book/src/SUMMARY.md -------------------------------------------------------------------------------- /book/src/atomicity.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/book/src/atomicity.md -------------------------------------------------------------------------------- /book/src/classes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/book/src/classes.md -------------------------------------------------------------------------------- /book/src/intro.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/book/src/intro.md -------------------------------------------------------------------------------- /book/src/notes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/book/src/notes.md -------------------------------------------------------------------------------- /book/src/opsem.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/book/src/opsem.md -------------------------------------------------------------------------------- /book/src/perms.md: -------------------------------------------------------------------------------- 1 | # Permissions 2 | -------------------------------------------------------------------------------- /book/src/subtypes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/book/src/subtypes.md -------------------------------------------------------------------------------- /book/src/tenets.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/book/src/tenets.md -------------------------------------------------------------------------------- /book/src/type_checking.md: -------------------------------------------------------------------------------- 1 | # Types checking 2 | -------------------------------------------------------------------------------- /book/src/types.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/book/src/types.md -------------------------------------------------------------------------------- /book/src/value_types.md: -------------------------------------------------------------------------------- 1 | # Structs and enums 2 | -------------------------------------------------------------------------------- /src/dada.runtimeconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/dada.runtimeconfig.json -------------------------------------------------------------------------------- /src/grammar.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/grammar.rs -------------------------------------------------------------------------------- /src/grammar/cast_impls.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/grammar/cast_impls.rs -------------------------------------------------------------------------------- /src/grammar/method_impls.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/grammar/method_impls.rs -------------------------------------------------------------------------------- /src/grammar/named_ty_impls.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/grammar/named_ty_impls.rs -------------------------------------------------------------------------------- /src/grammar/perm_impls.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/grammar/perm_impls.rs -------------------------------------------------------------------------------- /src/grammar/test_parse.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/grammar/test_parse.rs -------------------------------------------------------------------------------- /src/grammar/ty_impls.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/grammar/ty_impls.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/main.rs -------------------------------------------------------------------------------- /src/type_system.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system.rs -------------------------------------------------------------------------------- /src/type_system/accesses.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/accesses.rs -------------------------------------------------------------------------------- /src/type_system/blocks.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/blocks.rs -------------------------------------------------------------------------------- /src/type_system/classes.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/classes.rs -------------------------------------------------------------------------------- /src/type_system/env.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/env.rs -------------------------------------------------------------------------------- /src/type_system/expressions.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/expressions.rs -------------------------------------------------------------------------------- /src/type_system/in_flight.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/in_flight.rs -------------------------------------------------------------------------------- /src/type_system/liveness.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/liveness.rs -------------------------------------------------------------------------------- /src/type_system/local_liens.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/local_liens.rs -------------------------------------------------------------------------------- /src/type_system/methods.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/methods.rs -------------------------------------------------------------------------------- /src/type_system/perm_matcher.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/perm_matcher.rs -------------------------------------------------------------------------------- /src/type_system/places.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/places.rs -------------------------------------------------------------------------------- /src/type_system/predicates.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/predicates.rs -------------------------------------------------------------------------------- /src/type_system/quantifiers.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/quantifiers.rs -------------------------------------------------------------------------------- /src/type_system/redperms.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/redperms.rs -------------------------------------------------------------------------------- /src/type_system/redperms/cast_impls.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/redperms/cast_impls.rs -------------------------------------------------------------------------------- /src/type_system/statements.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/statements.rs -------------------------------------------------------------------------------- /src/type_system/subtypes.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/subtypes.rs -------------------------------------------------------------------------------- /src/type_system/tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests.rs -------------------------------------------------------------------------------- /src/type_system/tests/assignment.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/assignment.rs -------------------------------------------------------------------------------- /src/type_system/tests/cancellation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/cancellation.rs -------------------------------------------------------------------------------- /src/type_system/tests/class_defn_wf.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/class_defn_wf.rs -------------------------------------------------------------------------------- /src/type_system/tests/class_defn_wf/our_vs_share.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/class_defn_wf/our_vs_share.rs -------------------------------------------------------------------------------- /src/type_system/tests/fn_calls.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/fn_calls.rs -------------------------------------------------------------------------------- /src/type_system/tests/guard_classes.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/guard_classes.rs -------------------------------------------------------------------------------- /src/type_system/tests/guard_classes/lock_guard.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/guard_classes/lock_guard.rs -------------------------------------------------------------------------------- /src/type_system/tests/move_check.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/move_check.rs -------------------------------------------------------------------------------- /src/type_system/tests/move_tracking.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/move_tracking.rs -------------------------------------------------------------------------------- /src/type_system/tests/new_with_self_references.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/new_with_self_references.rs -------------------------------------------------------------------------------- /src/type_system/tests/our_classes_permissions.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/our_classes_permissions.rs -------------------------------------------------------------------------------- /src/type_system/tests/our_classes_subtyping.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/our_classes_subtyping.rs -------------------------------------------------------------------------------- /src/type_system/tests/permission_check.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/permission_check.rs -------------------------------------------------------------------------------- /src/type_system/tests/permission_check/borrowck_loan_kills.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/permission_check/borrowck_loan_kills.rs -------------------------------------------------------------------------------- /src/type_system/tests/subpermission.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/subpermission.rs -------------------------------------------------------------------------------- /src/type_system/tests/subtyping.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/subtyping.rs -------------------------------------------------------------------------------- /src/type_system/tests/subtyping/liskov.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/subtyping/liskov.rs -------------------------------------------------------------------------------- /src/type_system/tests/subtyping/liskov/cancellation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/subtyping/liskov/cancellation.rs -------------------------------------------------------------------------------- /src/type_system/tests/subtyping/liskov/compatible_layout.rs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/type_system/tests/subtyping/liskov/subpermission.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/subtyping/liskov/subpermission.rs -------------------------------------------------------------------------------- /src/type_system/tests/type_check.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/type_check.rs -------------------------------------------------------------------------------- /src/type_system/tests/variance_subtyping.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/tests/variance_subtyping.rs -------------------------------------------------------------------------------- /src/type_system/types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dada-lang/dada-model/HEAD/src/type_system/types.rs --------------------------------------------------------------------------------