Skip to content

Commit

Permalink
Merge branch 'master' into release-4.8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
ssomayyajula authored Sep 3, 2024
2 parents d1c76d0 + 299e2c8 commit 93d2972
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 0 deletions.
6 changes: 6 additions & 0 deletions Source/DafnyCore/Backends/Dafny/DafnyCodeGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2961,6 +2961,12 @@ protected override void EmitSingleValueGenerator(Expression e, bool inLetExprBod
AddUnsupportedFeature(e.Tok, Feature.ExactBoundedPool);
}

protected override void OrganizeModules(Program program, out List<ModuleDefinition> modules) {
modules = program.CompileModules.ToList();
modules.Sort((a, b) =>
String.Compare(a.FullDafnyName, b.FullDafnyName, StringComparison.Ordinal));
}

protected override void EmitHaltRecoveryStmt(Statement body, string haltMessageVarName, Statement recoveryBody, ConcreteSyntaxTree wr) {
TrStmt(body, wr);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// NONUNIFORM: Test of the Rust compiler to ensure it emits modules in a deterministic order.
// RUN: %baredafny translate rs "%s" > "%t"
// RUN: %OutputCheck --file-to-check "%S/moduleordering-rust/src/moduleordering.rs" "%s"
// CHECK-L: pub mod A {
// CHECK-L: pub mod B {
// CHECK-L: pub mod C {
// CHECK-L: pub mod D {
// CHECK-L: pub mod E {
// CHECK-L: pub mod F {
// CHECK-L: pub mod G {
// CHECK-L: pub mod H {

module B { const X := "B" }
module D { import B const X := B.X }
module C { import A const X := A.X }
module E { import C const X := C.X }
module A { import G const X := G.X }
module G { const X := "G" }
module F { const X := "F" }
module H { const X := "H" }

0 comments on commit 93d2972

Please sign in to comment.