diff --git a/.gitignore b/.gitignore index 328b0d09c4..874631d595 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,9 @@ docs/dev/*.fix docs/dev/*.feat docs/dev/*.break +Source/IntegrationTests/TestFiles/LitTests/LitTest/server/*.bvd +/Source/IntegrationTests/TestFiles/LitTests/LitTest/separate-verification/Inputs/wrappers3.doo +/Source/IntegrationTests/TestFiles/LitTests/LitTest/comp/replaceables/complex/Build1 +/Source/IntegrationTests/TestFiles/LitTests/LitTest/separate-verification/assumptions-lib +/Source/IntegrationTests/TestFiles/LitTests/LitTest/cli/log.smt2 +/Source/IntegrationTests/TestFiles/LitTests/LitTest/git-issues/model diff --git a/Source/DafnyCore/AST/Expressions/Comprehensions/ComprehensionExpr.cs b/Source/DafnyCore/AST/Expressions/Comprehensions/ComprehensionExpr.cs index cbca3fded0..ca69537a87 100644 --- a/Source/DafnyCore/AST/Expressions/Comprehensions/ComprehensionExpr.cs +++ b/Source/DafnyCore/AST/Expressions/Comprehensions/ComprehensionExpr.cs @@ -105,12 +105,13 @@ static Expression ChooseBestIntegerBound([CanBeNull] Expression a, [CanBeNull] E return a ?? b; } - if (Expression.IsIntLiteral(Expression.StripParensAndCasts(a), out var aa) && - Expression.IsIntLiteral(Expression.StripParensAndCasts(b), out var bb)) { + if (Expression.IsIntLiteral(a, out var aa) && Expression.IsIntLiteral(b, out var bb)) { var x = pickMax ? BigInteger.Max(aa, bb) : BigInteger.Min(aa, bb); return new LiteralExpr(a.tok, x) { Type = a.Type }; } - return a; // we don't know how to determine which of "a" or "b" is better, so we'll just return "a" + // we don't know how to determine which of "a" or "b" is better, so we'll just return "a" + // (better would be to return an expression that computes to the minimum of "a" and "b") + return a; } public static List MissingBounds(List vars, List bounds, PoolVirtues requiredVirtues = PoolVirtues.None) where VT : IVariable { @@ -265,9 +266,9 @@ public override PoolVirtues Virtues { var v = PoolVirtues.IndependentOfAlloc | PoolVirtues.IndependentOfAlloc_or_ExplicitAlloc; if (IsFiniteCollection) { v |= PoolVirtues.Finite; - if (CollectionElementType.IsTestableToBe(BoundVariableType)) { - v |= PoolVirtues.Enumerable; - } + } + if (CollectionElementType.IsTestableToBe(BoundVariableType)) { + v |= PoolVirtues.Enumerable; } return v; } diff --git a/Source/DafnyCore/AST/Expressions/Conditional/NestedMatchStmt.cs b/Source/DafnyCore/AST/Expressions/Conditional/NestedMatchStmt.cs index 9afe86731c..5c365b7699 100644 --- a/Source/DafnyCore/AST/Expressions/Conditional/NestedMatchStmt.cs +++ b/Source/DafnyCore/AST/Expressions/Conditional/NestedMatchStmt.cs @@ -20,7 +20,7 @@ private void InitializeAttributes() { foreach (var c in this.Cases) { if (!Attributes.Contains(c.Attributes, "split")) { List args = new List(); - args.Add(new LiteralExpr(c.Tok, splitMatch)); + args.Add(Expression.CreateBoolLiteral(c.Tok, splitMatch)); Attributes attrs = new Attributes("split", args, c.Attributes); c.Attributes = attrs; } diff --git a/Source/DafnyCore/AST/Expressions/Expression.cs b/Source/DafnyCore/AST/Expressions/Expression.cs index d9c70f011b..eed3f2de0a 100644 --- a/Source/DafnyCore/AST/Expressions/Expression.cs +++ b/Source/DafnyCore/AST/Expressions/Expression.cs @@ -418,8 +418,9 @@ public static Expression CreateNatLiteral(IToken tok, int n, Type ty) { /// public static LiteralExpr CreateBoolLiteral(IToken tok, bool b) { Contract.Requires(tok != null); - var lit = new LiteralExpr(tok, b); - lit.Type = Type.Bool; // resolve here + var lit = new LiteralExpr(tok, b) { + Type = Type.Bool + }; return lit; } @@ -429,8 +430,9 @@ public static LiteralExpr CreateBoolLiteral(IToken tok, bool b) { public static LiteralExpr CreateStringLiteral(IToken tok, string s) { Contract.Requires(tok != null); Contract.Requires(s != null); - var lit = new StringLiteralExpr(tok, s, true); - lit.Type = new SeqType(new CharType()); // resolve here + var lit = new StringLiteralExpr(tok, s, true) { + Type = new SeqType(new CharType()) + }; return lit; } @@ -440,8 +442,7 @@ public static LiteralExpr CreateStringLiteral(IToken tok, string s) { /// public static Expression StripParens(Expression expr) { while (true) { - var e = expr as ParensExpression; - if (e == null) { + if (expr is not ParensExpression e) { return expr; } expr = e.E; @@ -493,11 +494,11 @@ public static bool IsBoolLiteral(Expression expr, out bool value) { /// public static bool IsIntLiteral(Expression expr, out BigInteger value) { Contract.Requires(expr != null); - var e = StripParens(expr) as LiteralExpr; - if (e != null && e.Value is int x) { + var e = StripParensAndCasts(expr) as LiteralExpr; + if (e is { Value: int x }) { value = new BigInteger(x); return true; - } else if (e != null && e.Value is BigInteger xx) { + } else if (e is { Value: BigInteger xx }) { value = xx; return true; } else { diff --git a/Source/DafnyCore/AST/Expressions/Operators/BinaryExpr.cs b/Source/DafnyCore/AST/Expressions/Operators/BinaryExpr.cs index 5eec0fe5ed..b81c90e484 100644 --- a/Source/DafnyCore/AST/Expressions/Operators/BinaryExpr.cs +++ b/Source/DafnyCore/AST/Expressions/Operators/BinaryExpr.cs @@ -51,8 +51,8 @@ public enum ResolvedOpcode { Le, Ge, Gt, - Add, - Sub, + Add, // also used for char + Sub, // also used for char Mul, Div, Mod, diff --git a/Source/DafnyCore/AST/Expressions/StmtExpr.cs b/Source/DafnyCore/AST/Expressions/StmtExpr.cs index 0d34e99a99..56e133ec78 100644 --- a/Source/DafnyCore/AST/Expressions/StmtExpr.cs +++ b/Source/DafnyCore/AST/Expressions/StmtExpr.cs @@ -62,9 +62,9 @@ public Expression GetSConclusion() { var s = (CalcStmt)S; return s.Result; } else if (S is RevealStmt) { - return new LiteralExpr(tok, true); // one could use the definition axiom or the referenced labeled assertions, but "true" is conservative and much simpler :) + return CreateBoolLiteral(tok, true); // one could use the definition axiom or the referenced labeled assertions, but "true" is conservative and much simpler :) } else if (S is UpdateStmt) { - return new LiteralExpr(tok, true); // one could use the postcondition of the method, suitably instantiated, but "true" is conservative and much simpler :) + return CreateBoolLiteral(tok, true); // one could use the postcondition of the method, suitably instantiated, but "true" is conservative and much simpler :) } else { Contract.Assert(false); throw new cce.UnreachableException(); // unexpected statement } diff --git a/Source/DafnyCore/AST/Members/Function.cs b/Source/DafnyCore/AST/Members/Function.cs index b60826f086..51009797e9 100644 --- a/Source/DafnyCore/AST/Members/Function.cs +++ b/Source/DafnyCore/AST/Members/Function.cs @@ -536,8 +536,7 @@ public void AutoRevealDependencies(AutoRevealFunctionDependencies Rewriter, Dafn } if (autoRevealDepth > 0) { - Expression reqExpr = new LiteralExpr(Tok, true); - reqExpr.Type = Type.Bool; + Expression reqExpr = Expression.CreateBoolLiteral(Tok, true); var bodyExpr = Body; diff --git a/Source/DafnyCore/AST/Members/Method.cs b/Source/DafnyCore/AST/Members/Method.cs index c35679b5b9..5499fb6bad 100644 --- a/Source/DafnyCore/AST/Members/Method.cs +++ b/Source/DafnyCore/AST/Members/Method.cs @@ -450,9 +450,7 @@ public void AutoRevealDependencies(AutoRevealFunctionDependencies Rewriter, Dafn } if (autoRevealDepth > 0) { - Expression reqExpr = new LiteralExpr(Tok, true) { - Type = Type.Bool - }; + Expression reqExpr = Expression.CreateBoolLiteral(Tok, true); foreach (var revealStmt in addedReveals) { if (revealStmt.Depth <= autoRevealDepth) { diff --git a/Source/DafnyCore/AST/Substituter.cs b/Source/DafnyCore/AST/Substituter.cs index fef9f9c990..37cb215461 100644 --- a/Source/DafnyCore/AST/Substituter.cs +++ b/Source/DafnyCore/AST/Substituter.cs @@ -519,7 +519,9 @@ public ComprehensionExpr.BoundedPool SubstituteBoundedPool(ComprehensionExpr.Bou return bound; // nothing to substitute } else if (bound is ComprehensionExpr.IntBoundedPool) { var b = (ComprehensionExpr.IntBoundedPool)bound; - return new ComprehensionExpr.IntBoundedPool(b.LowerBound == null ? null : Substitute(b.LowerBound), b.UpperBound == null ? null : Substitute(b.UpperBound)); + return new ComprehensionExpr.IntBoundedPool( + b.LowerBound == null ? null : Substitute(b.LowerBound), + b.UpperBound == null ? null : Substitute(b.UpperBound)); } else if (bound is ComprehensionExpr.SetBoundedPool) { var b = (ComprehensionExpr.SetBoundedPool)bound; return new ComprehensionExpr.SetBoundedPool(Substitute(b.Set), b.BoundVariableType, b.CollectionElementType, b.IsFiniteCollection); diff --git a/Source/DafnyCore/AST/TypeDeclarations/NewtypeDecl.cs b/Source/DafnyCore/AST/TypeDeclarations/NewtypeDecl.cs index 8ff7a2f43d..65aef5f334 100644 --- a/Source/DafnyCore/AST/TypeDeclarations/NewtypeDecl.cs +++ b/Source/DafnyCore/AST/TypeDeclarations/NewtypeDecl.cs @@ -33,8 +33,7 @@ public NewtypeDecl(RangeToken rangeToken, Name name, ModuleDefinition module, Ty this.NewSelfSynonym(); } public NewtypeDecl(RangeToken rangeToken, Name name, ModuleDefinition module, BoundVar bv, Expression constraint, - SubsetTypeDecl.WKind witnessKind, Expression witness, List parentTraits, List members, Attributes attributes, bool isRefining) - : base(rangeToken, name, module, new List(), members, attributes, isRefining, parentTraits) { + SubsetTypeDecl.WKind witnessKind, Expression witness, List parentTraits, List members, Attributes attributes, bool isRefining) : base(rangeToken, name, module, new List(), members, attributes, isRefining, parentTraits) { Contract.Requires(rangeToken != null); Contract.Requires(name != null); Contract.Requires(module != null); @@ -49,8 +48,7 @@ public NewtypeDecl(RangeToken rangeToken, Name name, ModuleDefinition module, Bo this.NewSelfSynonym(); } - /// - /// Return .BaseType instantiated with "typeArgs", but only look at the part of .BaseType that is in scope. + /// /// Return .BaseType instantiated with "typeArgs", but only look at the part of .BaseType that is in scope. /// public Type RhsWithArgument(List typeArgs) { Contract.Requires(typeArgs != null); diff --git a/Source/DafnyCore/AST/TypeDeclarations/SubsetTypeDecl.cs b/Source/DafnyCore/AST/TypeDeclarations/SubsetTypeDecl.cs index 3cf59abd0e..f848b3e8e2 100644 --- a/Source/DafnyCore/AST/TypeDeclarations/SubsetTypeDecl.cs +++ b/Source/DafnyCore/AST/TypeDeclarations/SubsetTypeDecl.cs @@ -12,7 +12,6 @@ public class SubsetTypeDecl : TypeSynonymDecl, RedirectingTypeDecl, ICanAutoReve public enum WKind { CompiledZero, Compiled, Ghost, OptOut, Special } public readonly WKind WitnessKind; public Expression/*?*/ Witness; // non-null iff WitnessKind is Compiled or Ghost - [FilledInDuringResolution] public bool CheckedIfConstraintIsCompilable = false; // Set to true lazily by the Resolver when the Resolver fills in "ConstraintIsCompilable". [FilledInDuringResolution] bool RedirectingTypeDecl.ConstraintIsCompilable { get; set; } diff --git a/Source/DafnyCore/AST/TypeDeclarations/TypeSynonymDeclBase.cs b/Source/DafnyCore/AST/TypeDeclarations/TypeSynonymDeclBase.cs index 8812ba3ea5..4bb05afb28 100644 --- a/Source/DafnyCore/AST/TypeDeclarations/TypeSynonymDeclBase.cs +++ b/Source/DafnyCore/AST/TypeDeclarations/TypeSynonymDeclBase.cs @@ -67,7 +67,7 @@ public Type RhsWithArgumentIgnoringScope(List typeArgs) { Expression RedirectingTypeDecl.Constraint { get { return null; } } bool RedirectingTypeDecl.ConstraintIsCompilable { - get => false; + get => throw new NotSupportedException(); set => throw new NotSupportedException(); } diff --git a/Source/DafnyCore/AST/Types/Types.cs b/Source/DafnyCore/AST/Types/Types.cs index 15b4568572..d9ce7cd4b5 100644 --- a/Source/DafnyCore/AST/Types/Types.cs +++ b/Source/DafnyCore/AST/Types/Types.cs @@ -94,8 +94,7 @@ public string TypeArgsToString(DafnyOptions options, ModuleDefinition/*?*/ conte public void AddFreeTypeParameters(ISet tps) { Contract.Requires(tps != null); var ty = this.NormalizeExpandKeepConstraints(); - var tp = ty.AsTypeParameter; - if (tp != null) { + if (ty.AsTypeParameter is { } tp) { tps.Add(tp); } foreach (var ta in ty.TypeArgs) { @@ -186,9 +185,7 @@ public Type NormalizeExpand(ExpandMode expandMode = ExpandMode.ExpandSynonymsAnd Type type = this; while (true) { - - var pt = type as TypeProxy; - if (pt != null && pt.T != null) { + if (type is TypeProxy { T: not null } pt) { type = pt.T; continue; } @@ -579,15 +576,13 @@ public UserDefinedType AsNonNullRefType { get { var t = this; while (true) { - var udt = t.NormalizeExpandKeepConstraints() as UserDefinedType; - if (udt == null) { + if (t.NormalizeExpandKeepConstraints() is not UserDefinedType udt) { return null; } if (udt.ResolvedClass is NonNullTypeDecl) { return udt; } - var sst = udt.ResolvedClass as SubsetTypeDecl; - if (sst != null) { + if (udt.ResolvedClass is SubsetTypeDecl sst) { t = sst.RhsWithArgument(udt.TypeArgs); // continue the search up the chain of subset types } else { return null; diff --git a/Source/DafnyCore/CompileNestedMatch/MatchFlattener.cs b/Source/DafnyCore/CompileNestedMatch/MatchFlattener.cs index 0d90dc899a..78dfecb9e2 100644 --- a/Source/DafnyCore/CompileNestedMatch/MatchFlattener.cs +++ b/Source/DafnyCore/CompileNestedMatch/MatchFlattener.cs @@ -396,8 +396,7 @@ private CaseBody CompileHeadsContainingConstructor(MatchCompilationState mti, Ma } var args = new List(); - var literalExpr = new LiteralExpr(mti.Tok, false); - literalExpr.Type = Type.Bool; + var literalExpr = Expression.CreateBoolLiteral(mti.Tok, false); args.Add(literalExpr); c.Attributes = new Attributes("split", args, c.Attributes); } diff --git a/Source/DafnyCore/Compilers/CSharp/Compiler-Csharp.cs b/Source/DafnyCore/Compilers/CSharp/Compiler-Csharp.cs index f5c283f664..c9e8707556 100644 --- a/Source/DafnyCore/Compilers/CSharp/Compiler-Csharp.cs +++ b/Source/DafnyCore/Compilers/CSharp/Compiler-Csharp.cs @@ -2205,8 +2205,8 @@ protected override void EmitLiteralExpr(ConcreteSyntaxTree wr, LiteralExpr e) { } } else if (e is StringLiteralExpr str) { wr.Format($"{DafnySeqClass}<{CharTypeName}>.{CharMethodQualifier}FromString({StringLiteral(str)})"); - } else if (AsNativeType(e.Type) != null) { - GetNativeInfo(AsNativeType(e.Type).Sel, out var nativeName, out var literalSuffix, out var needsCastAfterArithmetic); + } else if (AsNativeType(e.Type) is { } nativeType) { + GetNativeInfo(nativeType.Sel, out var nativeName, out var literalSuffix, out var needsCastAfterArithmetic); if (needsCastAfterArithmetic) { wr = wr.Write($"({nativeName})").ForkInParens(); } @@ -2290,11 +2290,11 @@ protected override ConcreteSyntaxTree EmitBitvectorTruncation(BitvectorType bvTy protected override void EmitRotate(Expression e0, Expression e1, bool isRotateLeft, ConcreteSyntaxTree wr, bool inLetExprBody, ConcreteSyntaxTree wStmts, FCE_Arg_Translator tr) { - string nativeName = null, literalSuffix = null; + string nativeName = null; bool needsCast = false; var nativeType = AsNativeType(e0.Type); if (nativeType != null) { - GetNativeInfo(nativeType.Sel, out nativeName, out literalSuffix, out needsCast); + GetNativeInfo(nativeType.Sel, out nativeName, out _, out needsCast); } // ( e0 op1 e1) | (e0 op2 (width - e1)) @@ -2308,7 +2308,7 @@ protected override void EmitRotate(Expression e0, Expression e1, bool isRotateLe EmitShift(e0, e1, isRotateLeft ? ">>" : "<<", !isRotateLeft, nativeType, false, wr.ForkInParens(), inLetExprBody, wStmts, tr); } - void EmitShift(Expression e0, Expression e1, string op, bool truncate, NativeType nativeType /*?*/, bool firstOp, + private void EmitShift(Expression e0, Expression e1, string op, bool truncate, [CanBeNull] NativeType nativeType, bool firstOp, ConcreteSyntaxTree wr, bool inLetExprBody, ConcreteSyntaxTree wStmts, FCE_Arg_Translator tr) { var bv = e0.Type.AsBitVectorType; if (truncate) { diff --git a/Source/DafnyCore/Compilers/Dafny/Compiler-dafny.cs b/Source/DafnyCore/Compilers/Dafny/Compiler-dafny.cs index 2e5c9d4422..2210596c47 100644 --- a/Source/DafnyCore/Compilers/Dafny/Compiler-dafny.cs +++ b/Source/DafnyCore/Compilers/Dafny/Compiler-dafny.cs @@ -1885,7 +1885,6 @@ protected override void EmitDestructor(Action source, Formal } } - protected override bool TargetLambdasRestrictedToExpressions => true; protected override ConcreteSyntaxTree CreateLambda(List inTypes, IToken tok, List inNames, Type resultType, ConcreteSyntaxTree wr, ConcreteSyntaxTree wStmts, bool untyped = false) { if (wr is BuilderSyntaxTree builder) { diff --git a/Source/DafnyCore/Compilers/Java/Compiler-java.cs b/Source/DafnyCore/Compilers/Java/Compiler-java.cs index bde66965e1..02b1bc29a4 100644 --- a/Source/DafnyCore/Compilers/Java/Compiler-java.cs +++ b/Source/DafnyCore/Compilers/Java/Compiler-java.cs @@ -1133,8 +1133,8 @@ protected override void EmitLiteralExpr(ConcreteSyntaxTree wr, LiteralExpr e) { wr.Write(UnicodeCharEnabled ? $"{DafnySeqClass}.asUnicodeString(" : $"{DafnySeqClass}.asString("); TrStringLiteral(str, wr); wr.Write(")"); - } else if (AsNativeType(e.Type) is NativeType nt) { - EmitNativeIntegerLiteral((BigInteger)e.Value, nt, wr); + } else if (AsNativeType(e.Type) is { } nativeType) { + EmitNativeIntegerLiteral((BigInteger)e.Value, nativeType, wr); } else if (e.Value is BigInteger i) { if (i.IsZero) { wr.Write("java.math.BigInteger.ZERO"); @@ -1742,11 +1742,11 @@ protected override void EmitIndexCollectionUpdate(Expression source, Expression protected override void EmitRotate(Expression e0, Expression e1, bool isRotateLeft, ConcreteSyntaxTree wr, bool inLetExprBody, ConcreteSyntaxTree wStmts, FCE_Arg_Translator tr) { - string nativeName = null, literalSuffix = null; + string nativeName = null; bool needsCast = false; var nativeType = AsNativeType(e0.Type); if (nativeType != null) { - GetNativeInfo(nativeType.Sel, out nativeName, out literalSuffix, out needsCast); + GetNativeInfo(nativeType.Sel, out nativeName, out _, out needsCast); } var leftShift = nativeType == null ? ".shiftLeft" : "<<"; var rightShift = nativeType == null ? ".shiftRight" : ">>>"; @@ -1770,7 +1770,7 @@ protected override void EmitRotate(Expression e0, Expression e1, bool isRotateLe } } - void EmitShift(Expression e0, Expression e1, string op, bool truncate, NativeType nativeType /*?*/, bool firstOp, + private void EmitShift(Expression e0, Expression e1, string op, bool truncate, [CanBeNull] NativeType nativeType, bool firstOp, ConcreteSyntaxTree wr, bool inLetExprBody, ConcreteSyntaxTree wStmts, FCE_Arg_Translator tr) { var bv = e0.Type.AsBitVectorType; if (truncate) { diff --git a/Source/DafnyCore/Compilers/Python/Compiler-python.cs b/Source/DafnyCore/Compilers/Python/Compiler-python.cs index f65db3d367..7242a45651 100644 --- a/Source/DafnyCore/Compilers/Python/Compiler-python.cs +++ b/Source/DafnyCore/Compilers/Python/Compiler-python.cs @@ -147,7 +147,7 @@ protected override IClassWriter CreateClass(string moduleName, string name, bool : ""; var methodWriter = wr.NewBlockPy(header: $"class {IdProtect(name)}{baseClasses}:"); - var relevantTypeParameters = typeParameters.Where(NeedsTypeDescriptor); + var relevantTypeParameters = typeParameters.Where(NeedsTypeDescriptor).ToList(); var args = relevantTypeParameters.Comma(tp => tp.GetCompileName(Options)); if (!string.IsNullOrEmpty(args)) { args = $", {args}"; } var isNewtypeWithTraits = cls is NewtypeDecl { ParentTraits: { Count: > 0 } }; @@ -1404,7 +1404,6 @@ protected override void EmitDestructor(Action source, Formal } } - protected override bool TargetLambdasRestrictedToExpressions => true; protected override ConcreteSyntaxTree CreateLambda(List inTypes, IToken tok, List inNames, Type resultType, ConcreteSyntaxTree wr, ConcreteSyntaxTree wStmts, bool untyped = false) { var functionName = ProtectedFreshId("_lambda"); diff --git a/Source/DafnyCore/Compilers/Rust/Dafny-compiler-rust.dfy b/Source/DafnyCore/Compilers/Rust/Dafny-compiler-rust.dfy index d59bf378c2..6ca8988f80 100644 --- a/Source/DafnyCore/Compilers/Rust/Dafny-compiler-rust.dfy +++ b/Source/DafnyCore/Compilers/Rust/Dafny-compiler-rust.dfy @@ -444,17 +444,16 @@ module {:extern "DCOMP"} DCOMP { static method GenType(c: Type, inBinding: bool, inFn: bool) returns (s: string) { match c { - case Path(p, args, resolved) => { + case Path(p, args, resolved) => s := GenPath(p); var typeArgs := GenTypeArgs(args, inBinding, inFn); s := s + typeArgs; match resolved { - case Datatype(_) => { + case Datatype(_) => s := "::std::rc::Rc<" + s + ">"; - } - case Trait(_) => { + case Trait(_) => if p == [Ident.Ident("_System"), Ident.Ident("object")] { s := "::std::rc::Rc"; } else { @@ -465,56 +464,50 @@ module {:extern "DCOMP"} DCOMP { s := "impl " + s + ""; } } - } - case Primitive => {} + case Primitive => } - } - case Nullable(inner) => { + + case Nullable(inner) => var innerStr := GenType(inner, inBinding, inFn); s := "::std::option::Option<" + innerStr + ">"; - } - case Tuple(types) => { + + case Tuple(types) => s := "("; - var i := 0; - while i < |types| { + for i := 0 to |types| { if i > 0 { s := s + " "; } var generated := GenType(types[i], inBinding, inFn); s := s + generated + ","; - i := i + 1; } - s := s + ")"; - } - case Array(element, dims) => { + + case Array(element, dims) => var elemStr := GenType(element, inBinding, inFn); s := elemStr; - var i := 0; - while i < dims { + for i := 0 to dims { s := "::std::rc::Rc<::std::cell::RefCell<::std::vec::Vec<" + s + ">>>"; - i := i + 1; } - } - case Seq(element) => { + + case Seq(element) => var elemStr := GenType(element, inBinding, inFn); s := "::std::vec::Vec<" + elemStr + ">"; - } - case Set(element) => { + + case Set(element) => var elemStr := GenType(element, inBinding, inFn); s := "::std::collections::HashSet<" + elemStr + ">"; - } - case Multiset(element) => { + + case Multiset(element) => var elemStr := GenType(element, inBinding, inFn); s := "::std::collections::HashMap<" + elemStr + ", u64>"; - } - case Map(key, value) => { + + case Map(key, value) => var keyStr := GenType(key, inBinding, inFn); var valueStr := GenType(value, inBinding, inFn); s := "::std::collections::HashMap<" + keyStr + ", " + valueStr + ">"; - } - case Arrow(args, result) => { + + case Arrow(args, result) => // we cannot use impl until Rc impls Fn // if inFn || inBinding { s := "::dafny_runtime::FunctionWrapper<::std::rc::Rc 0 { s := s + ", "; } var generated := GenType(args[i], inBinding, true); s := s + "&" + generated; - i := i + 1; } var resultType := GenType(result, inBinding, inFn || inBinding); // if inFn || inBinding { s := s + ") -> " + resultType + " + 'static>>"; - // } else { - // s := s + ") -> " + resultType + " + Clone + 'static>"; - // } - } + // } else { + // s := s + ") -> " + resultType + " + Clone + 'static>"; + // } + case TypeArg(Ident(name)) => s := escapeIdent(name); - case Primitive(p) => { + case Primitive(p) => match p { case Int => s := "::dafny_runtime::BigInt"; case Real => s := "::dafny_runtime::BigRational"; @@ -550,7 +541,7 @@ module {:extern "DCOMP"} DCOMP { case Bool => s := "bool"; case Char => s := "char"; } - } + case Passthrough(v) => s := v; } } diff --git a/Source/DafnyCore/Compilers/SinglePassCompiler.cs b/Source/DafnyCore/Compilers/SinglePassCompiler.cs index 82673af45f..d35b7cc782 100644 --- a/Source/DafnyCore/Compilers/SinglePassCompiler.cs +++ b/Source/DafnyCore/Compilers/SinglePassCompiler.cs @@ -1242,7 +1242,6 @@ protected virtual void EmitConstructorCheck(string source, DatatypeCtor ctor, Co /// Furthermore, EmitDestructor also needs to work for anonymous destructors. /// protected abstract void EmitDestructor(Action source, Formal dtor, int formalNonGhostIndex, DatatypeCtor ctor, List typeArgs, Type bvType, ConcreteSyntaxTree wr); - protected virtual bool TargetLambdasRestrictedToExpressions => false; protected abstract ConcreteSyntaxTree CreateLambda(List inTypes, IToken tok, List inNames, Type resultType, ConcreteSyntaxTree wr, ConcreteSyntaxTree wStmts, bool untyped = false); @@ -3364,7 +3363,7 @@ protected void TrStmt(Statement stmt, ConcreteSyntaxTree wr, ConcreteSyntaxTree // let's compile the "else" branch, since that involves no work // (still, let's leave a marker in the source code to indicate that this is what we did) Coverage.UnusedInstrumentationPoint(s.Thn.Tok, "then branch"); - var notFalse = (UnaryOpExpr)Expression.CreateNot(s.Thn.Tok, new LiteralExpr(s.Thn.Tok, false)); + var notFalse = (UnaryOpExpr)Expression.CreateNot(s.Thn.Tok, Expression.CreateBoolLiteral(s.Thn.Tok, false)); var thenWriter = EmitIf(out guardWriter, false, wr); EmitUnaryExpr(ResolvedUnaryOp.BoolNot, notFalse.E, false, guardWriter, wStmts); Coverage.Instrument(s.Tok, "implicit else branch", wr); @@ -3374,9 +3373,7 @@ protected void TrStmt(Statement stmt, ConcreteSyntaxTree wr, ConcreteSyntaxTree } else { // let's compile the "then" branch wr = EmitIf(out guardWriter, false, wr); - EmitExpr(new LiteralExpr(null, true) { - Type = Type.Bool - }, false, guardWriter, wStmts); + EmitExpr(Expression.CreateBoolLiteral(s.Thn.tok, true), false, guardWriter, wStmts); Coverage.Instrument(s.Thn.Tok, "then branch", wr); TrStmtList(s.Thn.Body, wr); Coverage.UnusedInstrumentationPoint(s.Els.Tok, "else branch"); @@ -3439,9 +3436,7 @@ protected void TrStmt(Statement stmt, ConcreteSyntaxTree wr, ConcreteSyntaxTree // emit a loop structure. The structure "while (false) { }" comes to mind, but that results in // an "unreachable code" error from Java, so we instead use "while (true) { break; }". var wBody = CreateWhileLoop(out var guardWriter, wr); - EmitExpr(new LiteralExpr(null, true) { - Type = Type.Bool - }, false, guardWriter, wStmts); + EmitExpr(Expression.CreateBoolLiteral(s.Body.tok, true), false, guardWriter, wStmts); EmitBreak(null, wBody); Coverage.UnusedInstrumentationPoint(s.Body.Tok, "while body"); } else { @@ -3455,9 +3450,7 @@ protected void TrStmt(Statement stmt, ConcreteSyntaxTree wr, ConcreteSyntaxTree } if (loopStmt.Alternatives.Count != 0) { var w = CreateWhileLoop(out var whileGuardWriter, wr); - EmitExpr(new LiteralExpr(null, true) { - Type = Type.Bool - }, false, whileGuardWriter, wStmts); + EmitExpr(Expression.CreateBoolLiteral(loopStmt.tok, true), false, whileGuardWriter, wStmts); w = EmitContinueLabel(loopStmt.Labels, w); foreach (var alternative in loopStmt.Alternatives) { var thn = EmitIf(out var guardWriter, true, w); @@ -5122,8 +5115,7 @@ protected virtual void EmitIdentifier(string ident, ConcreteSyntaxTree wr) { public virtual ConcreteSyntaxTree Expr(Expression expr, bool inLetExprBody, ConcreteSyntaxTree wStmts) { var result = new ConcreteSyntaxTree(); - var wr = result; - EmitExpr(expr, inLetExprBody, wr, wStmts); + EmitExpr(expr, inLetExprBody, result, wStmts); return result; } diff --git a/Source/DafnyCore/DafnyGeneratedFromDafny.sh b/Source/DafnyCore/DafnyGeneratedFromDafny.sh index 752739c1d2..9f21333445 100755 --- a/Source/DafnyCore/DafnyGeneratedFromDafny.sh +++ b/Source/DafnyCore/DafnyGeneratedFromDafny.sh @@ -2,7 +2,7 @@ # Until we get proper dependency to previous Dafny, you have to generate the file GeneratedFromDafny.cs # To remove this manual build process, when it will be appropriate: # 1. Delete the file GeneratedFromDafny.cs -# 2. Add a dependcy to +# 2. Add a dependency to # # That's it! The same file will now be automatically generated as obj/Debug/net6.0/GeneratedFromDafny.cs # 3. Remove the following dependencies that are being taken care by dafny-msbuild @@ -28,4 +28,4 @@ with open ('$output.cs', 'r' ) as f: with open('$output.cs', 'w') as w: w.write(content_new) " -dotnet format whitespace --include $output.cs \ No newline at end of file +dotnet format whitespace --include $output.cs diff --git a/Source/DafnyCore/GeneratedFromDafny.cs b/Source/DafnyCore/GeneratedFromDafny.cs index fe4515300e..85757f0ff4 100644 --- a/Source/DafnyCore/GeneratedFromDafny.cs +++ b/Source/DafnyCore/GeneratedFromDafny.cs @@ -6148,186 +6148,155 @@ public static void GenTypeParameters(Dafny.ISequence @params, out D DAST._IResolvedType _146_resolved = _145___mcc_h2; Dafny.ISequence _147_args = _144___mcc_h1; Dafny.ISequence> _148_p = _143___mcc_h0; - { - Dafny.ISequence _out55; - _out55 = DCOMP.COMP.GenPath(_148_p); - s = _out55; - Dafny.ISequence _149_typeArgs; - Dafny.ISequence _out56; - _out56 = DCOMP.COMP.GenTypeArgs(_147_args, inBinding, inFn); - _149_typeArgs = _out56; - s = Dafny.Sequence.Concat(s, _149_typeArgs); - DAST._IResolvedType _source6 = _146_resolved; - if (_source6.is_Datatype) { - Dafny.ISequence> _150___mcc_h18 = _source6.dtor_path; - { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc<"), s), Dafny.Sequence.UnicodeFromString(">")); - } - } else if (_source6.is_Trait) { - Dafny.ISequence> _151___mcc_h20 = _source6.dtor_path; - { - if ((_148_p).Equals(Dafny.Sequence>.FromElements(Dafny.Sequence.UnicodeFromString("_System"), Dafny.Sequence.UnicodeFromString("object")))) { - s = Dafny.Sequence.UnicodeFromString("::std::rc::Rc"); - } else { - if (inBinding) { - s = Dafny.Sequence.UnicodeFromString("_"); - } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("impl "), s), Dafny.Sequence.UnicodeFromString("")); - } - } - } + Dafny.ISequence _out55; + _out55 = DCOMP.COMP.GenPath(_148_p); + s = _out55; + Dafny.ISequence _149_typeArgs; + Dafny.ISequence _out56; + _out56 = DCOMP.COMP.GenTypeArgs(_147_args, inBinding, inFn); + _149_typeArgs = _out56; + s = Dafny.Sequence.Concat(s, _149_typeArgs); + DAST._IResolvedType _source6 = _146_resolved; + if (_source6.is_Datatype) { + Dafny.ISequence> _150___mcc_h18 = _source6.dtor_path; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc<"), s), Dafny.Sequence.UnicodeFromString(">")); + } else if (_source6.is_Trait) { + Dafny.ISequence> _151___mcc_h20 = _source6.dtor_path; + if ((_148_p).Equals(Dafny.Sequence>.FromElements(Dafny.Sequence.UnicodeFromString("_System"), Dafny.Sequence.UnicodeFromString("object")))) { + s = Dafny.Sequence.UnicodeFromString("::std::rc::Rc"); } else { - DAST._IType _152___mcc_h22 = _source6.dtor_Newtype_a0; - DAST._IResolvedType _153_Primitive = _146_resolved; + if (inBinding) { + s = Dafny.Sequence.UnicodeFromString("_"); + } else { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("impl "), s), Dafny.Sequence.UnicodeFromString("")); + } } + } else { + DAST._IType _152___mcc_h22 = _source6.dtor_Newtype_a0; } } else if (_source5.is_Nullable) { - DAST._IType _154___mcc_h3 = _source5.dtor_Nullable_a0; - DAST._IType _155_inner = _154___mcc_h3; - { - Dafny.ISequence _156_innerStr; - Dafny.ISequence _out57; - _out57 = DCOMP.COMP.GenType(_155_inner, inBinding, inFn); - _156_innerStr = _out57; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::option::Option<"), _156_innerStr), Dafny.Sequence.UnicodeFromString(">")); - } + DAST._IType _153___mcc_h3 = _source5.dtor_Nullable_a0; + DAST._IType _154_inner = _153___mcc_h3; + Dafny.ISequence _155_innerStr; + Dafny.ISequence _out57; + _out57 = DCOMP.COMP.GenType(_154_inner, inBinding, inFn); + _155_innerStr = _out57; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::option::Option<"), _155_innerStr), Dafny.Sequence.UnicodeFromString(">")); } else if (_source5.is_Tuple) { - Dafny.ISequence _157___mcc_h4 = _source5.dtor_Tuple_a0; - Dafny.ISequence _158_types = _157___mcc_h4; - { - s = Dafny.Sequence.UnicodeFromString("("); - BigInteger _159_i; - _159_i = BigInteger.Zero; - while ((_159_i) < (new BigInteger((_158_types).Count))) { - if ((_159_i).Sign == 1) { - s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(" ")); - } - Dafny.ISequence _160_generated; - Dafny.ISequence _out58; - _out58 = DCOMP.COMP.GenType((_158_types).Select(_159_i), inBinding, inFn); - _160_generated = _out58; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, _160_generated), Dafny.Sequence.UnicodeFromString(",")); - _159_i = (_159_i) + (BigInteger.One); + Dafny.ISequence _156___mcc_h4 = _source5.dtor_Tuple_a0; + Dafny.ISequence _157_types = _156___mcc_h4; + s = Dafny.Sequence.UnicodeFromString("("); + BigInteger _hi0 = new BigInteger((_157_types).Count); + for (BigInteger _158_i = BigInteger.Zero; _158_i < _hi0; _158_i++) { + if ((_158_i).Sign == 1) { + s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(" ")); } - s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(")")); + Dafny.ISequence _159_generated; + Dafny.ISequence _out58; + _out58 = DCOMP.COMP.GenType((_157_types).Select(_158_i), inBinding, inFn); + _159_generated = _out58; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, _159_generated), Dafny.Sequence.UnicodeFromString(",")); } + s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(")")); } else if (_source5.is_Array) { - DAST._IType _161___mcc_h5 = _source5.dtor_element; - BigInteger _162___mcc_h6 = _source5.dtor_dims; - BigInteger _163_dims = _162___mcc_h6; - DAST._IType _164_element = _161___mcc_h5; - { - Dafny.ISequence _165_elemStr; - Dafny.ISequence _out59; - _out59 = DCOMP.COMP.GenType(_164_element, inBinding, inFn); - _165_elemStr = _out59; - s = _165_elemStr; - BigInteger _166_i; - _166_i = BigInteger.Zero; - while ((_166_i) < (_163_dims)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc<::std::cell::RefCell<::std::vec::Vec<"), s), Dafny.Sequence.UnicodeFromString(">>>")); - _166_i = (_166_i) + (BigInteger.One); - } + DAST._IType _160___mcc_h5 = _source5.dtor_element; + BigInteger _161___mcc_h6 = _source5.dtor_dims; + BigInteger _162_dims = _161___mcc_h6; + DAST._IType _163_element = _160___mcc_h5; + Dafny.ISequence _164_elemStr; + Dafny.ISequence _out59; + _out59 = DCOMP.COMP.GenType(_163_element, inBinding, inFn); + _164_elemStr = _out59; + s = _164_elemStr; + BigInteger _hi1 = _162_dims; + for (BigInteger _165_i = BigInteger.Zero; _165_i < _hi1; _165_i++) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc<::std::cell::RefCell<::std::vec::Vec<"), s), Dafny.Sequence.UnicodeFromString(">>>")); } } else if (_source5.is_Seq) { - DAST._IType _167___mcc_h7 = _source5.dtor_element; - DAST._IType _168_element = _167___mcc_h7; - { - Dafny.ISequence _169_elemStr; - Dafny.ISequence _out60; - _out60 = DCOMP.COMP.GenType(_168_element, inBinding, inFn); - _169_elemStr = _out60; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::vec::Vec<"), _169_elemStr), Dafny.Sequence.UnicodeFromString(">")); - } + DAST._IType _166___mcc_h7 = _source5.dtor_element; + DAST._IType _167_element = _166___mcc_h7; + Dafny.ISequence _168_elemStr; + Dafny.ISequence _out60; + _out60 = DCOMP.COMP.GenType(_167_element, inBinding, inFn); + _168_elemStr = _out60; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::vec::Vec<"), _168_elemStr), Dafny.Sequence.UnicodeFromString(">")); } else if (_source5.is_Set) { - DAST._IType _170___mcc_h8 = _source5.dtor_element; - DAST._IType _171_element = _170___mcc_h8; - { - Dafny.ISequence _172_elemStr; - Dafny.ISequence _out61; - _out61 = DCOMP.COMP.GenType(_171_element, inBinding, inFn); - _172_elemStr = _out61; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::collections::HashSet<"), _172_elemStr), Dafny.Sequence.UnicodeFromString(">")); - } + DAST._IType _169___mcc_h8 = _source5.dtor_element; + DAST._IType _170_element = _169___mcc_h8; + Dafny.ISequence _171_elemStr; + Dafny.ISequence _out61; + _out61 = DCOMP.COMP.GenType(_170_element, inBinding, inFn); + _171_elemStr = _out61; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::collections::HashSet<"), _171_elemStr), Dafny.Sequence.UnicodeFromString(">")); } else if (_source5.is_Multiset) { - DAST._IType _173___mcc_h9 = _source5.dtor_element; - DAST._IType _174_element = _173___mcc_h9; - { - Dafny.ISequence _175_elemStr; - Dafny.ISequence _out62; - _out62 = DCOMP.COMP.GenType(_174_element, inBinding, inFn); - _175_elemStr = _out62; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::collections::HashMap<"), _175_elemStr), Dafny.Sequence.UnicodeFromString(", u64>")); - } + DAST._IType _172___mcc_h9 = _source5.dtor_element; + DAST._IType _173_element = _172___mcc_h9; + Dafny.ISequence _174_elemStr; + Dafny.ISequence _out62; + _out62 = DCOMP.COMP.GenType(_173_element, inBinding, inFn); + _174_elemStr = _out62; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::collections::HashMap<"), _174_elemStr), Dafny.Sequence.UnicodeFromString(", u64>")); } else if (_source5.is_Map) { - DAST._IType _176___mcc_h10 = _source5.dtor_key; - DAST._IType _177___mcc_h11 = _source5.dtor_value; - DAST._IType _178_value = _177___mcc_h11; - DAST._IType _179_key = _176___mcc_h10; - { - Dafny.ISequence _180_keyStr; - Dafny.ISequence _out63; - _out63 = DCOMP.COMP.GenType(_179_key, inBinding, inFn); - _180_keyStr = _out63; - Dafny.ISequence _181_valueStr; - Dafny.ISequence _out64; - _out64 = DCOMP.COMP.GenType(_178_value, inBinding, inFn); - _181_valueStr = _out64; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::collections::HashMap<"), _180_keyStr), Dafny.Sequence.UnicodeFromString(", ")), _181_valueStr), Dafny.Sequence.UnicodeFromString(">")); - } + DAST._IType _175___mcc_h10 = _source5.dtor_key; + DAST._IType _176___mcc_h11 = _source5.dtor_value; + DAST._IType _177_value = _176___mcc_h11; + DAST._IType _178_key = _175___mcc_h10; + Dafny.ISequence _179_keyStr; + Dafny.ISequence _out63; + _out63 = DCOMP.COMP.GenType(_178_key, inBinding, inFn); + _179_keyStr = _out63; + Dafny.ISequence _180_valueStr; + Dafny.ISequence _out64; + _out64 = DCOMP.COMP.GenType(_177_value, inBinding, inFn); + _180_valueStr = _out64; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::collections::HashMap<"), _179_keyStr), Dafny.Sequence.UnicodeFromString(", ")), _180_valueStr), Dafny.Sequence.UnicodeFromString(">")); } else if (_source5.is_Arrow) { - Dafny.ISequence _182___mcc_h12 = _source5.dtor_args; - DAST._IType _183___mcc_h13 = _source5.dtor_result; - DAST._IType _184_result = _183___mcc_h13; - Dafny.ISequence _185_args = _182___mcc_h12; - { - s = Dafny.Sequence.UnicodeFromString("::dafny_runtime::FunctionWrapper<::std::rc::Rc.Concat(s, Dafny.Sequence.UnicodeFromString(", ")); - } - Dafny.ISequence _187_generated; - Dafny.ISequence _out65; - _out65 = DCOMP.COMP.GenType((_185_args).Select(_186_i), inBinding, true); - _187_generated = _out65; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("&")), _187_generated); - _186_i = (_186_i) + (BigInteger.One); + Dafny.ISequence _181___mcc_h12 = _source5.dtor_args; + DAST._IType _182___mcc_h13 = _source5.dtor_result; + DAST._IType _183_result = _182___mcc_h13; + Dafny.ISequence _184_args = _181___mcc_h12; + s = Dafny.Sequence.UnicodeFromString("::dafny_runtime::FunctionWrapper<::std::rc::Rc.Concat(s, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _188_resultType; - Dafny.ISequence _out66; - _out66 = DCOMP.COMP.GenType(_184_result, inBinding, (inFn) || (inBinding)); - _188_resultType = _out66; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(") -> ")), _188_resultType), Dafny.Sequence.UnicodeFromString(" + 'static>>")); + Dafny.ISequence _186_generated; + Dafny.ISequence _out65; + _out65 = DCOMP.COMP.GenType((_184_args).Select(_185_i), inBinding, true); + _186_generated = _out65; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("&")), _186_generated); } + Dafny.ISequence _187_resultType; + Dafny.ISequence _out66; + _out66 = DCOMP.COMP.GenType(_183_result, inBinding, (inFn) || (inBinding)); + _187_resultType = _out66; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(") -> ")), _187_resultType), Dafny.Sequence.UnicodeFromString(" + 'static>>")); } else if (_source5.is_Primitive) { - DAST._IPrimitive _189___mcc_h14 = _source5.dtor_Primitive_a0; - DAST._IPrimitive _190_p = _189___mcc_h14; - { - DAST._IPrimitive _source7 = _190_p; - if (_source7.is_Int) { - s = Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigInt"); - } else if (_source7.is_Real) { - s = Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigRational"); - } else if (_source7.is_String) { - s = Dafny.Sequence.UnicodeFromString("Vec"); - } else if (_source7.is_Bool) { - s = Dafny.Sequence.UnicodeFromString("bool"); - } else { - s = Dafny.Sequence.UnicodeFromString("char"); - } + DAST._IPrimitive _188___mcc_h14 = _source5.dtor_Primitive_a0; + DAST._IPrimitive _189_p = _188___mcc_h14; + DAST._IPrimitive _source7 = _189_p; + if (_source7.is_Int) { + s = Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigInt"); + } else if (_source7.is_Real) { + s = Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigRational"); + } else if (_source7.is_String) { + s = Dafny.Sequence.UnicodeFromString("Vec"); + } else if (_source7.is_Bool) { + s = Dafny.Sequence.UnicodeFromString("bool"); + } else { + s = Dafny.Sequence.UnicodeFromString("char"); } } else if (_source5.is_Passthrough) { - Dafny.ISequence _191___mcc_h15 = _source5.dtor_Passthrough_a0; - Dafny.ISequence _192_v = _191___mcc_h15; - s = _192_v; + Dafny.ISequence _190___mcc_h15 = _source5.dtor_Passthrough_a0; + Dafny.ISequence _191_v = _190___mcc_h15; + s = _191_v; } else { - Dafny.ISequence _193___mcc_h16 = _source5.dtor_TypeArg_a0; - Dafny.ISequence _source8 = _193___mcc_h16; - Dafny.ISequence _194___mcc_h17 = _source8; - Dafny.ISequence _195_name = _194___mcc_h17; - s = DCOMP.__default.escapeIdent(_195_name); + Dafny.ISequence _192___mcc_h16 = _source5.dtor_TypeArg_a0; + Dafny.ISequence _source8 = _192___mcc_h16; + Dafny.ISequence _193___mcc_h17 = _source8; + Dafny.ISequence _194_name = _193___mcc_h17; + s = DCOMP.__default.escapeIdent(_194_name); } return s; } @@ -6336,184 +6305,184 @@ public static void GenClassImplBody(Dafny.ISequence body, bool fo traitBodies = Dafny.Map>, Dafny.ISequence>.Empty; s = Dafny.Sequence.UnicodeFromString(""); traitBodies = Dafny.Map>, Dafny.ISequence>.FromElements(); - BigInteger _196_i; - _196_i = BigInteger.Zero; - while ((_196_i) < (new BigInteger((body).Count))) { - DAST._IMethod _source9 = (body).Select(_196_i); - DAST._IMethod _197___mcc_h0 = _source9; - DAST._IMethod _198_m = _197___mcc_h0; + BigInteger _195_i; + _195_i = BigInteger.Zero; + while ((_195_i) < (new BigInteger((body).Count))) { + DAST._IMethod _source9 = (body).Select(_195_i); + DAST._IMethod _196___mcc_h0 = _source9; + DAST._IMethod _197_m = _196___mcc_h0; { - DAST._IOptional>> _source10 = (_198_m).dtor_overridingPath; + DAST._IOptional>> _source10 = (_197_m).dtor_overridingPath; if (_source10.is_Some) { - Dafny.ISequence> _199___mcc_h1 = _source10.dtor_Some_a0; - Dafny.ISequence> _200_p = _199___mcc_h1; + Dafny.ISequence> _198___mcc_h1 = _source10.dtor_Some_a0; + Dafny.ISequence> _199_p = _198___mcc_h1; { - Dafny.ISequence _201_existing; - _201_existing = Dafny.Sequence.UnicodeFromString(""); - if ((traitBodies).Contains(_200_p)) { - _201_existing = Dafny.Map>, Dafny.ISequence>.Select(traitBodies, _200_p); + Dafny.ISequence _200_existing; + _200_existing = Dafny.Sequence.UnicodeFromString(""); + if ((traitBodies).Contains(_199_p)) { + _200_existing = Dafny.Map>, Dafny.ISequence>.Select(traitBodies, _199_p); } - if ((new BigInteger((_201_existing).Count)).Sign == 1) { - _201_existing = Dafny.Sequence.Concat(_201_existing, Dafny.Sequence.UnicodeFromString("\n")); + if ((new BigInteger((_200_existing).Count)).Sign == 1) { + _200_existing = Dafny.Sequence.Concat(_200_existing, Dafny.Sequence.UnicodeFromString("\n")); } - Dafny.ISequence _202_genMethod; + Dafny.ISequence _201_genMethod; Dafny.ISequence _out67; - _out67 = DCOMP.COMP.GenMethod(_198_m, true, enclosingType, enclosingTypeParams); - _202_genMethod = _out67; - _201_existing = Dafny.Sequence.Concat(_201_existing, _202_genMethod); - traitBodies = Dafny.Map>, Dafny.ISequence>.Merge(traitBodies, Dafny.Map>, Dafny.ISequence>.FromElements(new Dafny.Pair>, Dafny.ISequence>(_200_p, _201_existing))); + _out67 = DCOMP.COMP.GenMethod(_197_m, true, enclosingType, enclosingTypeParams); + _201_genMethod = _out67; + _200_existing = Dafny.Sequence.Concat(_200_existing, _201_genMethod); + traitBodies = Dafny.Map>, Dafny.ISequence>.Merge(traitBodies, Dafny.Map>, Dafny.ISequence>.FromElements(new Dafny.Pair>, Dafny.ISequence>(_199_p, _200_existing))); } } else { { - Dafny.ISequence _203_generated; + Dafny.ISequence _202_generated; Dafny.ISequence _out68; - _out68 = DCOMP.COMP.GenMethod(_198_m, forTrait, enclosingType, enclosingTypeParams); - _203_generated = _out68; - s = Dafny.Sequence.Concat(s, _203_generated); + _out68 = DCOMP.COMP.GenMethod(_197_m, forTrait, enclosingType, enclosingTypeParams); + _202_generated = _out68; + s = Dafny.Sequence.Concat(s, _202_generated); } } } if ((new BigInteger((s).Count)).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("\n")); } - _196_i = (_196_i) + (BigInteger.One); + _195_i = (_195_i) + (BigInteger.One); } } public static Dafny.ISequence GenParams(Dafny.ISequence @params) { Dafny.ISequence s = Dafny.Sequence.Empty; s = Dafny.Sequence.UnicodeFromString(""); - BigInteger _204_i; - _204_i = BigInteger.Zero; - while ((_204_i) < (new BigInteger((@params).Count))) { - DAST._IFormal _205_param; - _205_param = (@params).Select(_204_i); - Dafny.ISequence _206_paramType; + BigInteger _203_i; + _203_i = BigInteger.Zero; + while ((_203_i) < (new BigInteger((@params).Count))) { + DAST._IFormal _204_param; + _204_param = (@params).Select(_203_i); + Dafny.ISequence _205_paramType; Dafny.ISequence _out69; - _out69 = DCOMP.COMP.GenType((_205_param).dtor_typ, false, false); - _206_paramType = _out69; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, DCOMP.__default.escapeIdent((_205_param).dtor_name)), Dafny.Sequence.UnicodeFromString(": &")), _206_paramType); - if ((_204_i) < ((new BigInteger((@params).Count)) - (BigInteger.One))) { + _out69 = DCOMP.COMP.GenType((_204_param).dtor_typ, false, false); + _205_paramType = _out69; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, DCOMP.__default.escapeIdent((_204_param).dtor_name)), Dafny.Sequence.UnicodeFromString(": &")), _205_paramType); + if ((_203_i) < ((new BigInteger((@params).Count)) - (BigInteger.One))) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(", ")); } - _204_i = (_204_i) + (BigInteger.One); + _203_i = (_203_i) + (BigInteger.One); } return s; } public static Dafny.ISequence GenMethod(DAST._IMethod m, bool forTrait, DAST._IType enclosingType, Dafny.ISet enclosingTypeParams) { Dafny.ISequence s = Dafny.Sequence.Empty; - Dafny.ISequence _207_params; + Dafny.ISequence _206_params; Dafny.ISequence _out70; _out70 = DCOMP.COMP.GenParams((m).dtor_params); - _207_params = _out70; - Dafny.ISequence> _208_paramNames; - _208_paramNames = Dafny.Sequence>.FromElements(); - BigInteger _209_paramI; - _209_paramI = BigInteger.Zero; - while ((_209_paramI) < (new BigInteger(((m).dtor_params).Count))) { - _208_paramNames = Dafny.Sequence>.Concat(_208_paramNames, Dafny.Sequence>.FromElements((((m).dtor_params).Select(_209_paramI)).dtor_name)); - _209_paramI = (_209_paramI) + (BigInteger.One); + _206_params = _out70; + Dafny.ISequence> _207_paramNames; + _207_paramNames = Dafny.Sequence>.FromElements(); + BigInteger _208_paramI; + _208_paramI = BigInteger.Zero; + while ((_208_paramI) < (new BigInteger(((m).dtor_params).Count))) { + _207_paramNames = Dafny.Sequence>.Concat(_207_paramNames, Dafny.Sequence>.FromElements((((m).dtor_params).Select(_208_paramI)).dtor_name)); + _208_paramI = (_208_paramI) + (BigInteger.One); } if (!((m).dtor_isStatic)) { if (forTrait) { - _207_params = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&self"), Dafny.Sequence.UnicodeFromString(", ")), _207_params); + _206_params = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&self"), Dafny.Sequence.UnicodeFromString(", ")), _206_params); } else { - Dafny.ISequence _210_enclosingTypeString; + Dafny.ISequence _209_enclosingTypeString; Dafny.ISequence _out71; _out71 = DCOMP.COMP.GenType(enclosingType, false, false); - _210_enclosingTypeString = _out71; - _207_params = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("self: &"), _210_enclosingTypeString), Dafny.Sequence.UnicodeFromString(", ")), _207_params); + _209_enclosingTypeString = _out71; + _206_params = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("self: &"), _209_enclosingTypeString), Dafny.Sequence.UnicodeFromString(", ")), _206_params); } } - Dafny.ISequence _211_retType; - _211_retType = (((new BigInteger(((m).dtor_outTypes).Count)) != (BigInteger.One)) ? (Dafny.Sequence.UnicodeFromString("(")) : (Dafny.Sequence.UnicodeFromString(""))); - BigInteger _212_typeI; - _212_typeI = BigInteger.Zero; - while ((_212_typeI) < (new BigInteger(((m).dtor_outTypes).Count))) { - if ((_212_typeI).Sign == 1) { - _211_retType = Dafny.Sequence.Concat(_211_retType, Dafny.Sequence.UnicodeFromString(", ")); + Dafny.ISequence _210_retType; + _210_retType = (((new BigInteger(((m).dtor_outTypes).Count)) != (BigInteger.One)) ? (Dafny.Sequence.UnicodeFromString("(")) : (Dafny.Sequence.UnicodeFromString(""))); + BigInteger _211_typeI; + _211_typeI = BigInteger.Zero; + while ((_211_typeI) < (new BigInteger(((m).dtor_outTypes).Count))) { + if ((_211_typeI).Sign == 1) { + _210_retType = Dafny.Sequence.Concat(_210_retType, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _213_typeString; + Dafny.ISequence _212_typeString; Dafny.ISequence _out72; - _out72 = DCOMP.COMP.GenType(((m).dtor_outTypes).Select(_212_typeI), false, false); - _213_typeString = _out72; - _211_retType = Dafny.Sequence.Concat(_211_retType, _213_typeString); - _212_typeI = (_212_typeI) + (BigInteger.One); + _out72 = DCOMP.COMP.GenType(((m).dtor_outTypes).Select(_211_typeI), false, false); + _212_typeString = _out72; + _210_retType = Dafny.Sequence.Concat(_210_retType, _212_typeString); + _211_typeI = (_211_typeI) + (BigInteger.One); } if ((new BigInteger(((m).dtor_outTypes).Count)) != (BigInteger.One)) { - _211_retType = Dafny.Sequence.Concat(_211_retType, Dafny.Sequence.UnicodeFromString(")")); + _210_retType = Dafny.Sequence.Concat(_210_retType, Dafny.Sequence.UnicodeFromString(")")); } if (forTrait) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("fn "), DCOMP.__default.escapeIdent((m).dtor_name)); } else { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("pub fn "), DCOMP.__default.escapeIdent((m).dtor_name)); } - Dafny.ISequence _214_typeParamsFiltered; - _214_typeParamsFiltered = Dafny.Sequence.FromElements(); - BigInteger _215_typeParamI; - _215_typeParamI = BigInteger.Zero; - while ((_215_typeParamI) < (new BigInteger(((m).dtor_typeParams).Count))) { - DAST._IType _216_typeParam; - _216_typeParam = ((m).dtor_typeParams).Select(_215_typeParamI); - if (!((enclosingTypeParams).Contains(_216_typeParam))) { - _214_typeParamsFiltered = Dafny.Sequence.Concat(_214_typeParamsFiltered, Dafny.Sequence.FromElements(_216_typeParam)); + Dafny.ISequence _213_typeParamsFiltered; + _213_typeParamsFiltered = Dafny.Sequence.FromElements(); + BigInteger _214_typeParamI; + _214_typeParamI = BigInteger.Zero; + while ((_214_typeParamI) < (new BigInteger(((m).dtor_typeParams).Count))) { + DAST._IType _215_typeParam; + _215_typeParam = ((m).dtor_typeParams).Select(_214_typeParamI); + if (!((enclosingTypeParams).Contains(_215_typeParam))) { + _213_typeParamsFiltered = Dafny.Sequence.Concat(_213_typeParamsFiltered, Dafny.Sequence.FromElements(_215_typeParam)); } - _215_typeParamI = (_215_typeParamI) + (BigInteger.One); + _214_typeParamI = (_214_typeParamI) + (BigInteger.One); } - Dafny.ISequence _217_whereClauses; - _217_whereClauses = Dafny.Sequence.UnicodeFromString(""); - if ((new BigInteger((_214_typeParamsFiltered).Count)).Sign == 1) { + Dafny.ISequence _216_whereClauses; + _216_whereClauses = Dafny.Sequence.UnicodeFromString(""); + if ((new BigInteger((_213_typeParamsFiltered).Count)).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("<")); - _217_whereClauses = Dafny.Sequence.Concat(_217_whereClauses, Dafny.Sequence.UnicodeFromString(" where ")); - BigInteger _218_i; - _218_i = BigInteger.Zero; - while ((_218_i) < (new BigInteger((_214_typeParamsFiltered).Count))) { - if ((_218_i).Sign == 1) { + _216_whereClauses = Dafny.Sequence.Concat(_216_whereClauses, Dafny.Sequence.UnicodeFromString(" where ")); + BigInteger _217_i; + _217_i = BigInteger.Zero; + while ((_217_i) < (new BigInteger((_213_typeParamsFiltered).Count))) { + if ((_217_i).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(", ")); - _217_whereClauses = Dafny.Sequence.Concat(_217_whereClauses, Dafny.Sequence.UnicodeFromString(", ")); + _216_whereClauses = Dafny.Sequence.Concat(_216_whereClauses, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _219_typeString; + Dafny.ISequence _218_typeString; Dafny.ISequence _out73; - _out73 = DCOMP.COMP.GenType((_214_typeParamsFiltered).Select(_218_i), false, false); - _219_typeString = _out73; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, _219_typeString), Dafny.Sequence.UnicodeFromString(": ::dafny_runtime::DafnyErasable + ::dafny_runtime::DafnyUnerasable<")), _219_typeString), Dafny.Sequence.UnicodeFromString("> + Clone + ::dafny_runtime::DafnyPrint + ::std::default::Default + 'static")); - _217_whereClauses = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_217_whereClauses, Dafny.Sequence.UnicodeFromString("<")), _219_typeString), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyErasable>::Erased: ::std::cmp::PartialEq")); - _218_i = (_218_i) + (BigInteger.One); + _out73 = DCOMP.COMP.GenType((_213_typeParamsFiltered).Select(_217_i), false, false); + _218_typeString = _out73; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, _218_typeString), Dafny.Sequence.UnicodeFromString(": ::dafny_runtime::DafnyErasable + ::dafny_runtime::DafnyUnerasable<")), _218_typeString), Dafny.Sequence.UnicodeFromString("> + Clone + ::dafny_runtime::DafnyPrint + ::std::default::Default + 'static")); + _216_whereClauses = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_216_whereClauses, Dafny.Sequence.UnicodeFromString("<")), _218_typeString), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyErasable>::Erased: ::std::cmp::PartialEq")); + _217_i = (_217_i) + (BigInteger.One); } s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(">")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("(")), _207_params), Dafny.Sequence.UnicodeFromString(") -> ")), _211_retType), _217_whereClauses); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("(")), _206_params), Dafny.Sequence.UnicodeFromString(") -> ")), _210_retType), _216_whereClauses); if ((m).dtor_hasBody) { - Dafny.ISequence _220_earlyReturn; - _220_earlyReturn = Dafny.Sequence.UnicodeFromString("return;"); + Dafny.ISequence _219_earlyReturn; + _219_earlyReturn = Dafny.Sequence.UnicodeFromString("return;"); DAST._IOptional>> _source11 = (m).dtor_outVars; if (_source11.is_Some) { - Dafny.ISequence> _221___mcc_h0 = _source11.dtor_Some_a0; - Dafny.ISequence> _222_outVars = _221___mcc_h0; + Dafny.ISequence> _220___mcc_h0 = _source11.dtor_Some_a0; + Dafny.ISequence> _221_outVars = _220___mcc_h0; { - _220_earlyReturn = Dafny.Sequence.UnicodeFromString("return ("); - BigInteger _223_outI; - _223_outI = BigInteger.Zero; - while ((_223_outI) < (new BigInteger((_222_outVars).Count))) { - if ((_223_outI).Sign == 1) { - _220_earlyReturn = Dafny.Sequence.Concat(_220_earlyReturn, Dafny.Sequence.UnicodeFromString(", ")); + _219_earlyReturn = Dafny.Sequence.UnicodeFromString("return ("); + BigInteger _222_outI; + _222_outI = BigInteger.Zero; + while ((_222_outI) < (new BigInteger((_221_outVars).Count))) { + if ((_222_outI).Sign == 1) { + _219_earlyReturn = Dafny.Sequence.Concat(_219_earlyReturn, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _224_outVar; - _224_outVar = (_222_outVars).Select(_223_outI); - _220_earlyReturn = Dafny.Sequence.Concat(_220_earlyReturn, DCOMP.__default.escapeIdent((_224_outVar))); - _223_outI = (_223_outI) + (BigInteger.One); + Dafny.ISequence _223_outVar; + _223_outVar = (_221_outVars).Select(_222_outI); + _219_earlyReturn = Dafny.Sequence.Concat(_219_earlyReturn, DCOMP.__default.escapeIdent((_223_outVar))); + _222_outI = (_222_outI) + (BigInteger.One); } - _220_earlyReturn = Dafny.Sequence.Concat(_220_earlyReturn, Dafny.Sequence.UnicodeFromString(");")); + _219_earlyReturn = Dafny.Sequence.Concat(_219_earlyReturn, Dafny.Sequence.UnicodeFromString(");")); } } else { } - Dafny.ISequence _225_body; - Dafny.ISet> _226___v15; + Dafny.ISequence _224_body; + Dafny.ISet> _225___v15; Dafny.ISequence _out74; Dafny.ISet> _out75; - DCOMP.COMP.GenStmts((m).dtor_body, (((m).dtor_isStatic) ? (DAST.Optional>.create_None()) : (DAST.Optional>.create_Some(Dafny.Sequence.UnicodeFromString("self")))), _208_paramNames, true, _220_earlyReturn, out _out74, out _out75); - _225_body = _out74; - _226___v15 = _out75; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(" {\n")), _225_body), Dafny.Sequence.UnicodeFromString("\n}\n")); + DCOMP.COMP.GenStmts((m).dtor_body, (((m).dtor_isStatic) ? (DAST.Optional>.create_None()) : (DAST.Optional>.create_Some(Dafny.Sequence.UnicodeFromString("self")))), _207_paramNames, true, _219_earlyReturn, out _out74, out _out75); + _224_body = _out74; + _225___v15 = _out75; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(" {\n")), _224_body), Dafny.Sequence.UnicodeFromString("\n}\n")); } else { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(";\n")); } @@ -6523,72 +6492,72 @@ public static void GenStmts(Dafny.ISequence stmts, DAST._IOpti generated = Dafny.Sequence.Empty; readIdents = Dafny.Set>.Empty; generated = Dafny.Sequence.UnicodeFromString(""); - Dafny.ISet> _227_declarations; - _227_declarations = Dafny.Set>.FromElements(); + Dafny.ISet> _226_declarations; + _226_declarations = Dafny.Set>.FromElements(); readIdents = Dafny.Set>.FromElements(); - BigInteger _228_i; - _228_i = BigInteger.Zero; - while ((_228_i) < (new BigInteger((stmts).Count))) { - DAST._IStatement _229_stmt; - _229_stmt = (stmts).Select(_228_i); - Dafny.ISequence _230_stmtString; - Dafny.ISet> _231_recIdents; + BigInteger _227_i; + _227_i = BigInteger.Zero; + while ((_227_i) < (new BigInteger((stmts).Count))) { + DAST._IStatement _228_stmt; + _228_stmt = (stmts).Select(_227_i); + Dafny.ISequence _229_stmtString; + Dafny.ISet> _230_recIdents; Dafny.ISequence _out76; Dafny.ISet> _out77; - DCOMP.COMP.GenStmt(_229_stmt, selfIdent, @params, (isLast) && ((_228_i) == ((new BigInteger((stmts).Count)) - (BigInteger.One))), earlyReturn, out _out76, out _out77); - _230_stmtString = _out76; - _231_recIdents = _out77; - readIdents = Dafny.Set>.Union(readIdents, Dafny.Set>.Difference(_231_recIdents, _227_declarations)); - DAST._IStatement _source12 = _229_stmt; + DCOMP.COMP.GenStmt(_228_stmt, selfIdent, @params, (isLast) && ((_227_i) == ((new BigInteger((stmts).Count)) - (BigInteger.One))), earlyReturn, out _out76, out _out77); + _229_stmtString = _out76; + _230_recIdents = _out77; + readIdents = Dafny.Set>.Union(readIdents, Dafny.Set>.Difference(_230_recIdents, _226_declarations)); + DAST._IStatement _source12 = _228_stmt; if (_source12.is_DeclareVar) { - Dafny.ISequence _232___mcc_h0 = _source12.dtor_name; - DAST._IType _233___mcc_h1 = _source12.dtor_typ; - DAST._IOptional _234___mcc_h2 = _source12.dtor_maybeValue; - Dafny.ISequence _235_name = _232___mcc_h0; + Dafny.ISequence _231___mcc_h0 = _source12.dtor_name; + DAST._IType _232___mcc_h1 = _source12.dtor_typ; + DAST._IOptional _233___mcc_h2 = _source12.dtor_maybeValue; + Dafny.ISequence _234_name = _231___mcc_h0; { - _227_declarations = Dafny.Set>.Union(_227_declarations, Dafny.Set>.FromElements(_235_name)); + _226_declarations = Dafny.Set>.Union(_226_declarations, Dafny.Set>.FromElements(_234_name)); } } else if (_source12.is_Assign) { - DAST._IAssignLhs _236___mcc_h6 = _source12.dtor_lhs; - DAST._IExpression _237___mcc_h7 = _source12.dtor_value; + DAST._IAssignLhs _235___mcc_h6 = _source12.dtor_lhs; + DAST._IExpression _236___mcc_h7 = _source12.dtor_value; } else if (_source12.is_If) { - DAST._IExpression _238___mcc_h10 = _source12.dtor_cond; - Dafny.ISequence _239___mcc_h11 = _source12.dtor_thn; - Dafny.ISequence _240___mcc_h12 = _source12.dtor_els; + DAST._IExpression _237___mcc_h10 = _source12.dtor_cond; + Dafny.ISequence _238___mcc_h11 = _source12.dtor_thn; + Dafny.ISequence _239___mcc_h12 = _source12.dtor_els; } else if (_source12.is_Labeled) { - Dafny.ISequence _241___mcc_h16 = _source12.dtor_lbl; - Dafny.ISequence _242___mcc_h17 = _source12.dtor_body; + Dafny.ISequence _240___mcc_h16 = _source12.dtor_lbl; + Dafny.ISequence _241___mcc_h17 = _source12.dtor_body; } else if (_source12.is_While) { - DAST._IExpression _243___mcc_h20 = _source12.dtor_cond; - Dafny.ISequence _244___mcc_h21 = _source12.dtor_body; + DAST._IExpression _242___mcc_h20 = _source12.dtor_cond; + Dafny.ISequence _243___mcc_h21 = _source12.dtor_body; } else if (_source12.is_Foreach) { - Dafny.ISequence _245___mcc_h24 = _source12.dtor_boundName; - DAST._IType _246___mcc_h25 = _source12.dtor_boundType; - DAST._IExpression _247___mcc_h26 = _source12.dtor_over; - Dafny.ISequence _248___mcc_h27 = _source12.dtor_body; + Dafny.ISequence _244___mcc_h24 = _source12.dtor_boundName; + DAST._IType _245___mcc_h25 = _source12.dtor_boundType; + DAST._IExpression _246___mcc_h26 = _source12.dtor_over; + Dafny.ISequence _247___mcc_h27 = _source12.dtor_body; } else if (_source12.is_Call) { - DAST._IExpression _249___mcc_h32 = _source12.dtor_on; - Dafny.ISequence _250___mcc_h33 = _source12.dtor_name; - Dafny.ISequence _251___mcc_h34 = _source12.dtor_typeArgs; - Dafny.ISequence _252___mcc_h35 = _source12.dtor_args; - DAST._IOptional>> _253___mcc_h36 = _source12.dtor_outs; + DAST._IExpression _248___mcc_h32 = _source12.dtor_on; + Dafny.ISequence _249___mcc_h33 = _source12.dtor_name; + Dafny.ISequence _250___mcc_h34 = _source12.dtor_typeArgs; + Dafny.ISequence _251___mcc_h35 = _source12.dtor_args; + DAST._IOptional>> _252___mcc_h36 = _source12.dtor_outs; } else if (_source12.is_Return) { - DAST._IExpression _254___mcc_h42 = _source12.dtor_expr; + DAST._IExpression _253___mcc_h42 = _source12.dtor_expr; } else if (_source12.is_EarlyReturn) { } else if (_source12.is_Break) { - DAST._IOptional> _255___mcc_h44 = _source12.dtor_toLabel; + DAST._IOptional> _254___mcc_h44 = _source12.dtor_toLabel; } else if (_source12.is_TailRecursive) { - Dafny.ISequence _256___mcc_h46 = _source12.dtor_body; + Dafny.ISequence _255___mcc_h46 = _source12.dtor_body; } else if (_source12.is_JumpTailCallStart) { } else if (_source12.is_Halt) { } else { - DAST._IExpression _257___mcc_h48 = _source12.dtor_Print_a0; + DAST._IExpression _256___mcc_h48 = _source12.dtor_Print_a0; } - if ((_228_i).Sign == 1) { + if ((_227_i).Sign == 1) { generated = Dafny.Sequence.Concat(generated, Dafny.Sequence.UnicodeFromString("\n")); } - generated = Dafny.Sequence.Concat(generated, _230_stmtString); - _228_i = (_228_i) + (BigInteger.One); + generated = Dafny.Sequence.Concat(generated, _229_stmtString); + _227_i = (_227_i) + (BigInteger.One); } } public static void GenAssignLhs(DAST._IAssignLhs lhs, Dafny.ISequence rhs, DAST._IOptional> selfIdent, Dafny.ISequence> @params, out Dafny.ISequence generated, out bool needsIIFE, out Dafny.ISet> readIdents) { @@ -6597,91 +6566,91 @@ public static void GenAssignLhs(DAST._IAssignLhs lhs, Dafny.ISequence>.Empty; DAST._IAssignLhs _source13 = lhs; if (_source13.is_Ident) { - Dafny.ISequence _258___mcc_h0 = _source13.dtor_Ident_a0; - Dafny.ISequence _source14 = _258___mcc_h0; - Dafny.ISequence _259___mcc_h1 = _source14; - Dafny.ISequence _260_id = _259___mcc_h1; + Dafny.ISequence _257___mcc_h0 = _source13.dtor_Ident_a0; + Dafny.ISequence _source14 = _257___mcc_h0; + Dafny.ISequence _258___mcc_h1 = _source14; + Dafny.ISequence _259_id = _258___mcc_h1; { - if ((@params).Contains(_260_id)) { - generated = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("*"), DCOMP.__default.escapeIdent(_260_id)); + if ((@params).Contains(_259_id)) { + generated = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("*"), DCOMP.__default.escapeIdent(_259_id)); } else { - generated = DCOMP.__default.escapeIdent(_260_id); + generated = DCOMP.__default.escapeIdent(_259_id); } - readIdents = Dafny.Set>.FromElements(_260_id); + readIdents = Dafny.Set>.FromElements(_259_id); needsIIFE = false; } } else if (_source13.is_Select) { - DAST._IExpression _261___mcc_h2 = _source13.dtor_expr; - Dafny.ISequence _262___mcc_h3 = _source13.dtor_field; - Dafny.ISequence _263_field = _262___mcc_h3; - DAST._IExpression _264_on = _261___mcc_h2; + DAST._IExpression _260___mcc_h2 = _source13.dtor_expr; + Dafny.ISequence _261___mcc_h3 = _source13.dtor_field; + Dafny.ISequence _262_field = _261___mcc_h3; + DAST._IExpression _263_on = _260___mcc_h2; { - Dafny.ISequence _265_onExpr; - bool _266_onOwned; - bool _267_onErased; - Dafny.ISet> _268_recIdents; + Dafny.ISequence _264_onExpr; + bool _265_onOwned; + bool _266_onErased; + Dafny.ISet> _267_recIdents; Dafny.ISequence _out78; bool _out79; bool _out80; Dafny.ISet> _out81; - DCOMP.COMP.GenExpr(_264_on, selfIdent, @params, false, out _out78, out _out79, out _out80, out _out81); - _265_onExpr = _out78; - _266_onOwned = _out79; - _267_onErased = _out80; - _268_recIdents = _out81; - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("*("), _265_onExpr), Dafny.Sequence.UnicodeFromString(".")), _263_field), Dafny.Sequence.UnicodeFromString(".borrow_mut()) = ")), rhs), Dafny.Sequence.UnicodeFromString(";")); - readIdents = _268_recIdents; + DCOMP.COMP.GenExpr(_263_on, selfIdent, @params, false, out _out78, out _out79, out _out80, out _out81); + _264_onExpr = _out78; + _265_onOwned = _out79; + _266_onErased = _out80; + _267_recIdents = _out81; + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("*("), _264_onExpr), Dafny.Sequence.UnicodeFromString(".")), _262_field), Dafny.Sequence.UnicodeFromString(".borrow_mut()) = ")), rhs), Dafny.Sequence.UnicodeFromString(";")); + readIdents = _267_recIdents; needsIIFE = true; } } else { - DAST._IExpression _269___mcc_h4 = _source13.dtor_expr; - Dafny.ISequence _270___mcc_h5 = _source13.dtor_indices; - Dafny.ISequence _271_indices = _270___mcc_h5; - DAST._IExpression _272_on = _269___mcc_h4; + DAST._IExpression _268___mcc_h4 = _source13.dtor_expr; + Dafny.ISequence _269___mcc_h5 = _source13.dtor_indices; + Dafny.ISequence _270_indices = _269___mcc_h5; + DAST._IExpression _271_on = _268___mcc_h4; { - Dafny.ISequence _273_onExpr; - bool _274_onOwned; - bool _275_onErased; - Dafny.ISet> _276_recIdents; + Dafny.ISequence _272_onExpr; + bool _273_onOwned; + bool _274_onErased; + Dafny.ISet> _275_recIdents; Dafny.ISequence _out82; bool _out83; bool _out84; Dafny.ISet> _out85; - DCOMP.COMP.GenExpr(_272_on, selfIdent, @params, false, out _out82, out _out83, out _out84, out _out85); - _273_onExpr = _out82; - _274_onOwned = _out83; - _275_onErased = _out84; - _276_recIdents = _out85; - readIdents = _276_recIdents; + DCOMP.COMP.GenExpr(_271_on, selfIdent, @params, false, out _out82, out _out83, out _out84, out _out85); + _272_onExpr = _out82; + _273_onOwned = _out83; + _274_onErased = _out84; + _275_recIdents = _out85; + readIdents = _275_recIdents; generated = Dafny.Sequence.UnicodeFromString("{\n"); - BigInteger _277_i; - _277_i = BigInteger.Zero; - while ((_277_i) < (new BigInteger((_271_indices).Count))) { - Dafny.ISequence _278_idx; - bool _279___v19; - bool _280_idxErased; - Dafny.ISet> _281_recIdentsIdx; + BigInteger _276_i; + _276_i = BigInteger.Zero; + while ((_276_i) < (new BigInteger((_270_indices).Count))) { + Dafny.ISequence _277_idx; + bool _278___v19; + bool _279_idxErased; + Dafny.ISet> _280_recIdentsIdx; Dafny.ISequence _out86; bool _out87; bool _out88; Dafny.ISet> _out89; - DCOMP.COMP.GenExpr((_271_indices).Select(_277_i), selfIdent, @params, true, out _out86, out _out87, out _out88, out _out89); - _278_idx = _out86; - _279___v19 = _out87; - _280_idxErased = _out88; - _281_recIdentsIdx = _out89; - if (!(_280_idxErased)) { - _278_idx = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _278_idx), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr((_270_indices).Select(_276_i), selfIdent, @params, true, out _out86, out _out87, out _out88, out _out89); + _277_idx = _out86; + _278___v19 = _out87; + _279_idxErased = _out88; + _280_recIdentsIdx = _out89; + if (!(_279_idxErased)) { + _277_idx = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _277_idx), Dafny.Sequence.UnicodeFromString(")")); } - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(generated, Dafny.Sequence.UnicodeFromString("let __idx")), DCOMP.__default.natToString(_277_i)), Dafny.Sequence.UnicodeFromString(" = ::from(")), _278_idx), Dafny.Sequence.UnicodeFromString(").unwrap();\n")); - readIdents = Dafny.Set>.Union(readIdents, _281_recIdentsIdx); - _277_i = (_277_i) + (BigInteger.One); + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(generated, Dafny.Sequence.UnicodeFromString("let __idx")), DCOMP.__default.natToString(_276_i)), Dafny.Sequence.UnicodeFromString(" = ::from(")), _277_idx), Dafny.Sequence.UnicodeFromString(").unwrap();\n")); + readIdents = Dafny.Set>.Union(readIdents, _280_recIdentsIdx); + _276_i = (_276_i) + (BigInteger.One); } - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(generated, _273_onExpr), Dafny.Sequence.UnicodeFromString(".borrow_mut()")); - _277_i = BigInteger.Zero; - while ((_277_i) < (new BigInteger((_271_indices).Count))) { - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(generated, Dafny.Sequence.UnicodeFromString("[__idx")), DCOMP.__default.natToString(_277_i)), Dafny.Sequence.UnicodeFromString("]")); - _277_i = (_277_i) + (BigInteger.One); + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(generated, _272_onExpr), Dafny.Sequence.UnicodeFromString(".borrow_mut()")); + _276_i = BigInteger.Zero; + while ((_276_i) < (new BigInteger((_270_indices).Count))) { + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(generated, Dafny.Sequence.UnicodeFromString("[__idx")), DCOMP.__default.natToString(_276_i)), Dafny.Sequence.UnicodeFromString("]")); + _276_i = (_276_i) + (BigInteger.One); } generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(generated, Dafny.Sequence.UnicodeFromString(" = ")), rhs), Dafny.Sequence.UnicodeFromString(";\n}")); needsIIFE = true; @@ -6693,564 +6662,564 @@ public static void GenStmt(DAST._IStatement stmt, DAST._IOptional>.Empty; DAST._IStatement _source15 = stmt; if (_source15.is_DeclareVar) { - Dafny.ISequence _282___mcc_h0 = _source15.dtor_name; - DAST._IType _283___mcc_h1 = _source15.dtor_typ; - DAST._IOptional _284___mcc_h2 = _source15.dtor_maybeValue; - DAST._IOptional _source16 = _284___mcc_h2; + Dafny.ISequence _281___mcc_h0 = _source15.dtor_name; + DAST._IType _282___mcc_h1 = _source15.dtor_typ; + DAST._IOptional _283___mcc_h2 = _source15.dtor_maybeValue; + DAST._IOptional _source16 = _283___mcc_h2; if (_source16.is_Some) { - DAST._IExpression _285___mcc_h3 = _source16.dtor_Some_a0; - DAST._IExpression _286_expression = _285___mcc_h3; - DAST._IType _287_typ = _283___mcc_h1; - Dafny.ISequence _288_name = _282___mcc_h0; + DAST._IExpression _284___mcc_h3 = _source16.dtor_Some_a0; + DAST._IExpression _285_expression = _284___mcc_h3; + DAST._IType _286_typ = _282___mcc_h1; + Dafny.ISequence _287_name = _281___mcc_h0; { - Dafny.ISequence _289_typeString; + Dafny.ISequence _288_typeString; Dafny.ISequence _out90; - _out90 = DCOMP.COMP.GenType(_287_typ, true, false); - _289_typeString = _out90; - Dafny.ISequence _290_expr; - bool _291___v20; - bool _292_recErased; - Dafny.ISet> _293_recIdents; + _out90 = DCOMP.COMP.GenType(_286_typ, true, false); + _288_typeString = _out90; + Dafny.ISequence _289_expr; + bool _290___v20; + bool _291_recErased; + Dafny.ISet> _292_recIdents; Dafny.ISequence _out91; bool _out92; bool _out93; Dafny.ISet> _out94; - DCOMP.COMP.GenExpr(_286_expression, selfIdent, @params, true, out _out91, out _out92, out _out93, out _out94); - _290_expr = _out91; - _291___v20 = _out92; - _292_recErased = _out93; - _293_recIdents = _out94; - if (!(_292_recErased)) { - _290_expr = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _290_expr), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_285_expression, selfIdent, @params, true, out _out91, out _out92, out _out93, out _out94); + _289_expr = _out91; + _290___v20 = _out92; + _291_recErased = _out93; + _292_recIdents = _out94; + if (!(_291_recErased)) { + _289_expr = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _289_expr), Dafny.Sequence.UnicodeFromString(")")); } - _290_expr = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _289_typeString), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::unerase_owned(")), _290_expr), Dafny.Sequence.UnicodeFromString(")")); - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("let mut "), DCOMP.__default.escapeIdent(_288_name)), Dafny.Sequence.UnicodeFromString(": ")), _289_typeString), Dafny.Sequence.UnicodeFromString(" = ")), _290_expr), Dafny.Sequence.UnicodeFromString(";")); - readIdents = _293_recIdents; + _289_expr = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _288_typeString), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::unerase_owned(")), _289_expr), Dafny.Sequence.UnicodeFromString(")")); + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("let mut "), DCOMP.__default.escapeIdent(_287_name)), Dafny.Sequence.UnicodeFromString(": ")), _288_typeString), Dafny.Sequence.UnicodeFromString(" = ")), _289_expr), Dafny.Sequence.UnicodeFromString(";")); + readIdents = _292_recIdents; } } else { - DAST._IType _294_typ = _283___mcc_h1; - Dafny.ISequence _295_name = _282___mcc_h0; + DAST._IType _293_typ = _282___mcc_h1; + Dafny.ISequence _294_name = _281___mcc_h0; { - Dafny.ISequence _296_typeString; + Dafny.ISequence _295_typeString; Dafny.ISequence _out95; - _out95 = DCOMP.COMP.GenType(_294_typ, true, false); - _296_typeString = _out95; - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("let mut "), DCOMP.__default.escapeIdent(_295_name)), Dafny.Sequence.UnicodeFromString(": ")), _296_typeString), Dafny.Sequence.UnicodeFromString(";")); + _out95 = DCOMP.COMP.GenType(_293_typ, true, false); + _295_typeString = _out95; + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("let mut "), DCOMP.__default.escapeIdent(_294_name)), Dafny.Sequence.UnicodeFromString(": ")), _295_typeString), Dafny.Sequence.UnicodeFromString(";")); readIdents = Dafny.Set>.FromElements(); } } } else if (_source15.is_Assign) { - DAST._IAssignLhs _297___mcc_h4 = _source15.dtor_lhs; - DAST._IExpression _298___mcc_h5 = _source15.dtor_value; - DAST._IExpression _299_expression = _298___mcc_h5; - DAST._IAssignLhs _300_lhs = _297___mcc_h4; + DAST._IAssignLhs _296___mcc_h4 = _source15.dtor_lhs; + DAST._IExpression _297___mcc_h5 = _source15.dtor_value; + DAST._IExpression _298_expression = _297___mcc_h5; + DAST._IAssignLhs _299_lhs = _296___mcc_h4; { - Dafny.ISequence _301_lhsGen; - bool _302_needsIIFE; - Dafny.ISet> _303_recIdents; + Dafny.ISequence _300_lhsGen; + bool _301_needsIIFE; + Dafny.ISet> _302_recIdents; Dafny.ISequence _out96; bool _out97; Dafny.ISet> _out98; - DCOMP.COMP.GenAssignLhs(_300_lhs, Dafny.Sequence.UnicodeFromString("__rhs"), selfIdent, @params, out _out96, out _out97, out _out98); - _301_lhsGen = _out96; - _302_needsIIFE = _out97; - _303_recIdents = _out98; - Dafny.ISequence _304_exprGen; - bool _305___v21; - bool _306_exprErased; - Dafny.ISet> _307_exprIdents; + DCOMP.COMP.GenAssignLhs(_299_lhs, Dafny.Sequence.UnicodeFromString("__rhs"), selfIdent, @params, out _out96, out _out97, out _out98); + _300_lhsGen = _out96; + _301_needsIIFE = _out97; + _302_recIdents = _out98; + Dafny.ISequence _303_exprGen; + bool _304___v21; + bool _305_exprErased; + Dafny.ISet> _306_exprIdents; Dafny.ISequence _out99; bool _out100; bool _out101; Dafny.ISet> _out102; - DCOMP.COMP.GenExpr(_299_expression, selfIdent, @params, true, out _out99, out _out100, out _out101, out _out102); - _304_exprGen = _out99; - _305___v21 = _out100; - _306_exprErased = _out101; - _307_exprIdents = _out102; - if (!(_306_exprErased)) { - _304_exprGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _304_exprGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_298_expression, selfIdent, @params, true, out _out99, out _out100, out _out101, out _out102); + _303_exprGen = _out99; + _304___v21 = _out100; + _305_exprErased = _out101; + _306_exprIdents = _out102; + if (!(_305_exprErased)) { + _303_exprGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _303_exprGen), Dafny.Sequence.UnicodeFromString(")")); } - _304_exprGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _304_exprGen), Dafny.Sequence.UnicodeFromString(")")); - if (_302_needsIIFE) { - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("{\nlet __rhs = "), _304_exprGen), Dafny.Sequence.UnicodeFromString(";\n")), _301_lhsGen), Dafny.Sequence.UnicodeFromString("\n}")); + _303_exprGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _303_exprGen), Dafny.Sequence.UnicodeFromString(")")); + if (_301_needsIIFE) { + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("{\nlet __rhs = "), _303_exprGen), Dafny.Sequence.UnicodeFromString(";\n")), _300_lhsGen), Dafny.Sequence.UnicodeFromString("\n}")); } else { - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_301_lhsGen, Dafny.Sequence.UnicodeFromString(" = ")), _304_exprGen), Dafny.Sequence.UnicodeFromString(";")); + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_300_lhsGen, Dafny.Sequence.UnicodeFromString(" = ")), _303_exprGen), Dafny.Sequence.UnicodeFromString(";")); } - readIdents = Dafny.Set>.Union(_303_recIdents, _307_exprIdents); + readIdents = Dafny.Set>.Union(_302_recIdents, _306_exprIdents); } } else if (_source15.is_If) { - DAST._IExpression _308___mcc_h6 = _source15.dtor_cond; - Dafny.ISequence _309___mcc_h7 = _source15.dtor_thn; - Dafny.ISequence _310___mcc_h8 = _source15.dtor_els; - Dafny.ISequence _311_els = _310___mcc_h8; - Dafny.ISequence _312_thn = _309___mcc_h7; - DAST._IExpression _313_cond = _308___mcc_h6; + DAST._IExpression _307___mcc_h6 = _source15.dtor_cond; + Dafny.ISequence _308___mcc_h7 = _source15.dtor_thn; + Dafny.ISequence _309___mcc_h8 = _source15.dtor_els; + Dafny.ISequence _310_els = _309___mcc_h8; + Dafny.ISequence _311_thn = _308___mcc_h7; + DAST._IExpression _312_cond = _307___mcc_h6; { - Dafny.ISequence _314_condString; - bool _315___v22; - bool _316_condErased; - Dafny.ISet> _317_recIdents; + Dafny.ISequence _313_condString; + bool _314___v22; + bool _315_condErased; + Dafny.ISet> _316_recIdents; Dafny.ISequence _out103; bool _out104; bool _out105; Dafny.ISet> _out106; - DCOMP.COMP.GenExpr(_313_cond, selfIdent, @params, true, out _out103, out _out104, out _out105, out _out106); - _314_condString = _out103; - _315___v22 = _out104; - _316_condErased = _out105; - _317_recIdents = _out106; - if (!(_316_condErased)) { - _314_condString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _314_condString), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_312_cond, selfIdent, @params, true, out _out103, out _out104, out _out105, out _out106); + _313_condString = _out103; + _314___v22 = _out104; + _315_condErased = _out105; + _316_recIdents = _out106; + if (!(_315_condErased)) { + _313_condString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _313_condString), Dafny.Sequence.UnicodeFromString(")")); } - readIdents = _317_recIdents; - Dafny.ISequence _318_thnString; - Dafny.ISet> _319_thnIdents; + readIdents = _316_recIdents; + Dafny.ISequence _317_thnString; + Dafny.ISet> _318_thnIdents; Dafny.ISequence _out107; Dafny.ISet> _out108; - DCOMP.COMP.GenStmts(_312_thn, selfIdent, @params, isLast, earlyReturn, out _out107, out _out108); - _318_thnString = _out107; - _319_thnIdents = _out108; - readIdents = Dafny.Set>.Union(readIdents, _319_thnIdents); - Dafny.ISequence _320_elsString; - Dafny.ISet> _321_elsIdents; + DCOMP.COMP.GenStmts(_311_thn, selfIdent, @params, isLast, earlyReturn, out _out107, out _out108); + _317_thnString = _out107; + _318_thnIdents = _out108; + readIdents = Dafny.Set>.Union(readIdents, _318_thnIdents); + Dafny.ISequence _319_elsString; + Dafny.ISet> _320_elsIdents; Dafny.ISequence _out109; Dafny.ISet> _out110; - DCOMP.COMP.GenStmts(_311_els, selfIdent, @params, isLast, earlyReturn, out _out109, out _out110); - _320_elsString = _out109; - _321_elsIdents = _out110; - readIdents = Dafny.Set>.Union(readIdents, _321_elsIdents); - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("if "), _314_condString), Dafny.Sequence.UnicodeFromString(" {\n")), _318_thnString), Dafny.Sequence.UnicodeFromString("\n} else {\n")), _320_elsString), Dafny.Sequence.UnicodeFromString("\n}")); + DCOMP.COMP.GenStmts(_310_els, selfIdent, @params, isLast, earlyReturn, out _out109, out _out110); + _319_elsString = _out109; + _320_elsIdents = _out110; + readIdents = Dafny.Set>.Union(readIdents, _320_elsIdents); + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("if "), _313_condString), Dafny.Sequence.UnicodeFromString(" {\n")), _317_thnString), Dafny.Sequence.UnicodeFromString("\n} else {\n")), _319_elsString), Dafny.Sequence.UnicodeFromString("\n}")); } } else if (_source15.is_Labeled) { - Dafny.ISequence _322___mcc_h9 = _source15.dtor_lbl; - Dafny.ISequence _323___mcc_h10 = _source15.dtor_body; - Dafny.ISequence _324_body = _323___mcc_h10; - Dafny.ISequence _325_lbl = _322___mcc_h9; + Dafny.ISequence _321___mcc_h9 = _source15.dtor_lbl; + Dafny.ISequence _322___mcc_h10 = _source15.dtor_body; + Dafny.ISequence _323_body = _322___mcc_h10; + Dafny.ISequence _324_lbl = _321___mcc_h9; { - Dafny.ISequence _326_bodyString; - Dafny.ISet> _327_bodyIdents; + Dafny.ISequence _325_bodyString; + Dafny.ISet> _326_bodyIdents; Dafny.ISequence _out111; Dafny.ISet> _out112; - DCOMP.COMP.GenStmts(_324_body, selfIdent, @params, isLast, earlyReturn, out _out111, out _out112); - _326_bodyString = _out111; - _327_bodyIdents = _out112; - readIdents = _327_bodyIdents; - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("'label_"), _325_lbl), Dafny.Sequence.UnicodeFromString(": loop {\n")), _326_bodyString), Dafny.Sequence.UnicodeFromString("\n")), Dafny.Sequence.UnicodeFromString("break;")), Dafny.Sequence.UnicodeFromString("\n}")); + DCOMP.COMP.GenStmts(_323_body, selfIdent, @params, isLast, earlyReturn, out _out111, out _out112); + _325_bodyString = _out111; + _326_bodyIdents = _out112; + readIdents = _326_bodyIdents; + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("'label_"), _324_lbl), Dafny.Sequence.UnicodeFromString(": loop {\n")), _325_bodyString), Dafny.Sequence.UnicodeFromString("\n")), Dafny.Sequence.UnicodeFromString("break;")), Dafny.Sequence.UnicodeFromString("\n}")); } } else if (_source15.is_While) { - DAST._IExpression _328___mcc_h11 = _source15.dtor_cond; - Dafny.ISequence _329___mcc_h12 = _source15.dtor_body; - Dafny.ISequence _330_body = _329___mcc_h12; - DAST._IExpression _331_cond = _328___mcc_h11; + DAST._IExpression _327___mcc_h11 = _source15.dtor_cond; + Dafny.ISequence _328___mcc_h12 = _source15.dtor_body; + Dafny.ISequence _329_body = _328___mcc_h12; + DAST._IExpression _330_cond = _327___mcc_h11; { - Dafny.ISequence _332_condString; - bool _333___v23; - bool _334_condErased; - Dafny.ISet> _335_recIdents; + Dafny.ISequence _331_condString; + bool _332___v23; + bool _333_condErased; + Dafny.ISet> _334_recIdents; Dafny.ISequence _out113; bool _out114; bool _out115; Dafny.ISet> _out116; - DCOMP.COMP.GenExpr(_331_cond, selfIdent, @params, true, out _out113, out _out114, out _out115, out _out116); - _332_condString = _out113; - _333___v23 = _out114; - _334_condErased = _out115; - _335_recIdents = _out116; - if (!(_334_condErased)) { - _332_condString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _332_condString), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_330_cond, selfIdent, @params, true, out _out113, out _out114, out _out115, out _out116); + _331_condString = _out113; + _332___v23 = _out114; + _333_condErased = _out115; + _334_recIdents = _out116; + if (!(_333_condErased)) { + _331_condString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _331_condString), Dafny.Sequence.UnicodeFromString(")")); } - readIdents = _335_recIdents; - Dafny.ISequence _336_bodyString; - Dafny.ISet> _337_bodyIdents; + readIdents = _334_recIdents; + Dafny.ISequence _335_bodyString; + Dafny.ISet> _336_bodyIdents; Dafny.ISequence _out117; Dafny.ISet> _out118; - DCOMP.COMP.GenStmts(_330_body, selfIdent, @params, false, earlyReturn, out _out117, out _out118); - _336_bodyString = _out117; - _337_bodyIdents = _out118; - readIdents = Dafny.Set>.Union(readIdents, _337_bodyIdents); - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("while "), _332_condString), Dafny.Sequence.UnicodeFromString(" {\n")), _336_bodyString), Dafny.Sequence.UnicodeFromString("\n}")); + DCOMP.COMP.GenStmts(_329_body, selfIdent, @params, false, earlyReturn, out _out117, out _out118); + _335_bodyString = _out117; + _336_bodyIdents = _out118; + readIdents = Dafny.Set>.Union(readIdents, _336_bodyIdents); + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("while "), _331_condString), Dafny.Sequence.UnicodeFromString(" {\n")), _335_bodyString), Dafny.Sequence.UnicodeFromString("\n}")); } } else if (_source15.is_Foreach) { - Dafny.ISequence _338___mcc_h13 = _source15.dtor_boundName; - DAST._IType _339___mcc_h14 = _source15.dtor_boundType; - DAST._IExpression _340___mcc_h15 = _source15.dtor_over; - Dafny.ISequence _341___mcc_h16 = _source15.dtor_body; - Dafny.ISequence _342_body = _341___mcc_h16; - DAST._IExpression _343_over = _340___mcc_h15; - DAST._IType _344_boundType = _339___mcc_h14; - Dafny.ISequence _345_boundName = _338___mcc_h13; + Dafny.ISequence _337___mcc_h13 = _source15.dtor_boundName; + DAST._IType _338___mcc_h14 = _source15.dtor_boundType; + DAST._IExpression _339___mcc_h15 = _source15.dtor_over; + Dafny.ISequence _340___mcc_h16 = _source15.dtor_body; + Dafny.ISequence _341_body = _340___mcc_h16; + DAST._IExpression _342_over = _339___mcc_h15; + DAST._IType _343_boundType = _338___mcc_h14; + Dafny.ISequence _344_boundName = _337___mcc_h13; { - Dafny.ISequence _346_overString; - bool _347___v24; - bool _348_overErased; - Dafny.ISet> _349_recIdents; + Dafny.ISequence _345_overString; + bool _346___v24; + bool _347_overErased; + Dafny.ISet> _348_recIdents; Dafny.ISequence _out119; bool _out120; bool _out121; Dafny.ISet> _out122; - DCOMP.COMP.GenExpr(_343_over, selfIdent, @params, true, out _out119, out _out120, out _out121, out _out122); - _346_overString = _out119; - _347___v24 = _out120; - _348_overErased = _out121; - _349_recIdents = _out122; - Dafny.ISequence _350_boundTypeStr; + DCOMP.COMP.GenExpr(_342_over, selfIdent, @params, true, out _out119, out _out120, out _out121, out _out122); + _345_overString = _out119; + _346___v24 = _out120; + _347_overErased = _out121; + _348_recIdents = _out122; + Dafny.ISequence _349_boundTypeStr; Dafny.ISequence _out123; - _out123 = DCOMP.COMP.GenType(_344_boundType, false, false); - _350_boundTypeStr = _out123; - readIdents = _349_recIdents; - Dafny.ISequence _351_bodyString; - Dafny.ISet> _352_bodyIdents; + _out123 = DCOMP.COMP.GenType(_343_boundType, false, false); + _349_boundTypeStr = _out123; + readIdents = _348_recIdents; + Dafny.ISequence _350_bodyString; + Dafny.ISet> _351_bodyIdents; Dafny.ISequence _out124; Dafny.ISet> _out125; - DCOMP.COMP.GenStmts(_342_body, selfIdent, Dafny.Sequence>.Concat(@params, Dafny.Sequence>.FromElements(_345_boundName)), false, earlyReturn, out _out124, out _out125); - _351_bodyString = _out124; - _352_bodyIdents = _out125; - readIdents = Dafny.Set>.Difference(Dafny.Set>.Union(readIdents, _352_bodyIdents), Dafny.Set>.FromElements(_345_boundName)); - Dafny.ISequence _353_unerasedIter; - _353_unerasedIter = Dafny.Sequence.UnicodeFromString("_iter_erased"); - if (_348_overErased) { - _353_unerasedIter = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _350_boundTypeStr), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::unerase_owned(")), _353_unerasedIter), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenStmts(_341_body, selfIdent, Dafny.Sequence>.Concat(@params, Dafny.Sequence>.FromElements(_344_boundName)), false, earlyReturn, out _out124, out _out125); + _350_bodyString = _out124; + _351_bodyIdents = _out125; + readIdents = Dafny.Set>.Difference(Dafny.Set>.Union(readIdents, _351_bodyIdents), Dafny.Set>.FromElements(_344_boundName)); + Dafny.ISequence _352_unerasedIter; + _352_unerasedIter = Dafny.Sequence.UnicodeFromString("_iter_erased"); + if (_347_overErased) { + _352_unerasedIter = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _349_boundTypeStr), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::unerase_owned(")), _352_unerasedIter), Dafny.Sequence.UnicodeFromString(")")); } - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("for _iter_erased in "), _346_overString), Dafny.Sequence.UnicodeFromString(" {\n")); - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(generated, Dafny.Sequence.UnicodeFromString("let ")), DCOMP.__default.escapeIdent(_345_boundName)), Dafny.Sequence.UnicodeFromString(" = ")), _353_unerasedIter), Dafny.Sequence.UnicodeFromString(";\n")), _351_bodyString), Dafny.Sequence.UnicodeFromString("\n}")); + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("for _iter_erased in "), _345_overString), Dafny.Sequence.UnicodeFromString(" {\n")); + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(generated, Dafny.Sequence.UnicodeFromString("let ")), DCOMP.__default.escapeIdent(_344_boundName)), Dafny.Sequence.UnicodeFromString(" = ")), _352_unerasedIter), Dafny.Sequence.UnicodeFromString(";\n")), _350_bodyString), Dafny.Sequence.UnicodeFromString("\n}")); } } else if (_source15.is_Call) { - DAST._IExpression _354___mcc_h17 = _source15.dtor_on; - Dafny.ISequence _355___mcc_h18 = _source15.dtor_name; - Dafny.ISequence _356___mcc_h19 = _source15.dtor_typeArgs; - Dafny.ISequence _357___mcc_h20 = _source15.dtor_args; - DAST._IOptional>> _358___mcc_h21 = _source15.dtor_outs; - DAST._IOptional>> _359_maybeOutVars = _358___mcc_h21; - Dafny.ISequence _360_args = _357___mcc_h20; - Dafny.ISequence _361_typeArgs = _356___mcc_h19; - Dafny.ISequence _362_name = _355___mcc_h18; - DAST._IExpression _363_on = _354___mcc_h17; + DAST._IExpression _353___mcc_h17 = _source15.dtor_on; + Dafny.ISequence _354___mcc_h18 = _source15.dtor_name; + Dafny.ISequence _355___mcc_h19 = _source15.dtor_typeArgs; + Dafny.ISequence _356___mcc_h20 = _source15.dtor_args; + DAST._IOptional>> _357___mcc_h21 = _source15.dtor_outs; + DAST._IOptional>> _358_maybeOutVars = _357___mcc_h21; + Dafny.ISequence _359_args = _356___mcc_h20; + Dafny.ISequence _360_typeArgs = _355___mcc_h19; + Dafny.ISequence _361_name = _354___mcc_h18; + DAST._IExpression _362_on = _353___mcc_h17; { readIdents = Dafny.Set>.FromElements(); - Dafny.ISequence _364_typeArgString; - _364_typeArgString = Dafny.Sequence.UnicodeFromString(""); - if ((new BigInteger((_361_typeArgs).Count)) >= (BigInteger.One)) { - BigInteger _365_typeI; - _365_typeI = BigInteger.Zero; - _364_typeArgString = Dafny.Sequence.UnicodeFromString("::<"); - while ((_365_typeI) < (new BigInteger((_361_typeArgs).Count))) { - if ((_365_typeI).Sign == 1) { - _364_typeArgString = Dafny.Sequence.Concat(_364_typeArgString, Dafny.Sequence.UnicodeFromString(", ")); + Dafny.ISequence _363_typeArgString; + _363_typeArgString = Dafny.Sequence.UnicodeFromString(""); + if ((new BigInteger((_360_typeArgs).Count)) >= (BigInteger.One)) { + BigInteger _364_typeI; + _364_typeI = BigInteger.Zero; + _363_typeArgString = Dafny.Sequence.UnicodeFromString("::<"); + while ((_364_typeI) < (new BigInteger((_360_typeArgs).Count))) { + if ((_364_typeI).Sign == 1) { + _363_typeArgString = Dafny.Sequence.Concat(_363_typeArgString, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _366_typeString; + Dafny.ISequence _365_typeString; Dafny.ISequence _out126; - _out126 = DCOMP.COMP.GenType((_361_typeArgs).Select(_365_typeI), false, false); - _366_typeString = _out126; - _364_typeArgString = Dafny.Sequence.Concat(_364_typeArgString, _366_typeString); - _365_typeI = (_365_typeI) + (BigInteger.One); + _out126 = DCOMP.COMP.GenType((_360_typeArgs).Select(_364_typeI), false, false); + _365_typeString = _out126; + _363_typeArgString = Dafny.Sequence.Concat(_363_typeArgString, _365_typeString); + _364_typeI = (_364_typeI) + (BigInteger.One); } - _364_typeArgString = Dafny.Sequence.Concat(_364_typeArgString, Dafny.Sequence.UnicodeFromString(">")); + _363_typeArgString = Dafny.Sequence.Concat(_363_typeArgString, Dafny.Sequence.UnicodeFromString(">")); } - Dafny.ISequence _367_argString; - _367_argString = Dafny.Sequence.UnicodeFromString(""); - BigInteger _368_i; - _368_i = BigInteger.Zero; - while ((_368_i) < (new BigInteger((_360_args).Count))) { - if ((_368_i).Sign == 1) { - _367_argString = Dafny.Sequence.Concat(_367_argString, Dafny.Sequence.UnicodeFromString(", ")); + Dafny.ISequence _366_argString; + _366_argString = Dafny.Sequence.UnicodeFromString(""); + BigInteger _367_i; + _367_i = BigInteger.Zero; + while ((_367_i) < (new BigInteger((_359_args).Count))) { + if ((_367_i).Sign == 1) { + _366_argString = Dafny.Sequence.Concat(_366_argString, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _369_argExpr; - bool _370_isOwned; - bool _371_argErased; - Dafny.ISet> _372_argIdents; + Dafny.ISequence _368_argExpr; + bool _369_isOwned; + bool _370_argErased; + Dafny.ISet> _371_argIdents; Dafny.ISequence _out127; bool _out128; bool _out129; Dafny.ISet> _out130; - DCOMP.COMP.GenExpr((_360_args).Select(_368_i), selfIdent, @params, false, out _out127, out _out128, out _out129, out _out130); - _369_argExpr = _out127; - _370_isOwned = _out128; - _371_argErased = _out129; - _372_argIdents = _out130; - if (_370_isOwned) { - _369_argExpr = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), _369_argExpr); + DCOMP.COMP.GenExpr((_359_args).Select(_367_i), selfIdent, @params, false, out _out127, out _out128, out _out129, out _out130); + _368_argExpr = _out127; + _369_isOwned = _out128; + _370_argErased = _out129; + _371_argIdents = _out130; + if (_369_isOwned) { + _368_argExpr = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), _368_argExpr); } - _367_argString = Dafny.Sequence.Concat(_367_argString, _369_argExpr); - readIdents = Dafny.Set>.Union(readIdents, _372_argIdents); - _368_i = (_368_i) + (BigInteger.One); + _366_argString = Dafny.Sequence.Concat(_366_argString, _368_argExpr); + readIdents = Dafny.Set>.Union(readIdents, _371_argIdents); + _367_i = (_367_i) + (BigInteger.One); } - Dafny.ISequence _373_enclosingString; - bool _374___v25; - bool _375___v26; - Dafny.ISet> _376_enclosingIdents; + Dafny.ISequence _372_enclosingString; + bool _373___v25; + bool _374___v26; + Dafny.ISet> _375_enclosingIdents; Dafny.ISequence _out131; bool _out132; bool _out133; Dafny.ISet> _out134; - DCOMP.COMP.GenExpr(_363_on, selfIdent, @params, false, out _out131, out _out132, out _out133, out _out134); - _373_enclosingString = _out131; - _374___v25 = _out132; - _375___v26 = _out133; - _376_enclosingIdents = _out134; - readIdents = Dafny.Set>.Union(readIdents, _376_enclosingIdents); - DAST._IExpression _source17 = _363_on; + DCOMP.COMP.GenExpr(_362_on, selfIdent, @params, false, out _out131, out _out132, out _out133, out _out134); + _372_enclosingString = _out131; + _373___v25 = _out132; + _374___v26 = _out133; + _375_enclosingIdents = _out134; + readIdents = Dafny.Set>.Union(readIdents, _375_enclosingIdents); + DAST._IExpression _source17 = _362_on; if (_source17.is_Literal) { - DAST._ILiteral _377___mcc_h26 = _source17.dtor_Literal_a0; + DAST._ILiteral _376___mcc_h26 = _source17.dtor_Literal_a0; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_Ident) { - Dafny.ISequence _378___mcc_h28 = _source17.dtor_Ident_a0; + Dafny.ISequence _377___mcc_h28 = _source17.dtor_Ident_a0; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_Companion) { - Dafny.ISequence> _379___mcc_h30 = _source17.dtor_Companion_a0; + Dafny.ISequence> _378___mcc_h30 = _source17.dtor_Companion_a0; { - _373_enclosingString = Dafny.Sequence.Concat(_373_enclosingString, Dafny.Sequence.UnicodeFromString("::")); + _372_enclosingString = Dafny.Sequence.Concat(_372_enclosingString, Dafny.Sequence.UnicodeFromString("::")); } } else if (_source17.is_Tuple) { - Dafny.ISequence _380___mcc_h32 = _source17.dtor_Tuple_a0; + Dafny.ISequence _379___mcc_h32 = _source17.dtor_Tuple_a0; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_New) { - Dafny.ISequence> _381___mcc_h34 = _source17.dtor_path; - Dafny.ISequence _382___mcc_h35 = _source17.dtor_typeArgs; - Dafny.ISequence _383___mcc_h36 = _source17.dtor_args; + Dafny.ISequence> _380___mcc_h34 = _source17.dtor_path; + Dafny.ISequence _381___mcc_h35 = _source17.dtor_typeArgs; + Dafny.ISequence _382___mcc_h36 = _source17.dtor_args; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_NewArray) { - Dafny.ISequence _384___mcc_h40 = _source17.dtor_dims; - DAST._IType _385___mcc_h41 = _source17.dtor_typ; + Dafny.ISequence _383___mcc_h40 = _source17.dtor_dims; + DAST._IType _384___mcc_h41 = _source17.dtor_typ; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_DatatypeValue) { - Dafny.ISequence> _386___mcc_h44 = _source17.dtor_path; - Dafny.ISequence _387___mcc_h45 = _source17.dtor_typeArgs; - Dafny.ISequence _388___mcc_h46 = _source17.dtor_variant; - bool _389___mcc_h47 = _source17.dtor_isCo; - Dafny.ISequence<_System._ITuple2, DAST._IExpression>> _390___mcc_h48 = _source17.dtor_contents; + Dafny.ISequence> _385___mcc_h44 = _source17.dtor_path; + Dafny.ISequence _386___mcc_h45 = _source17.dtor_typeArgs; + Dafny.ISequence _387___mcc_h46 = _source17.dtor_variant; + bool _388___mcc_h47 = _source17.dtor_isCo; + Dafny.ISequence<_System._ITuple2, DAST._IExpression>> _389___mcc_h48 = _source17.dtor_contents; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_Convert) { - DAST._IExpression _391___mcc_h54 = _source17.dtor_value; - DAST._IType _392___mcc_h55 = _source17.dtor_from; - DAST._IType _393___mcc_h56 = _source17.dtor_typ; + DAST._IExpression _390___mcc_h54 = _source17.dtor_value; + DAST._IType _391___mcc_h55 = _source17.dtor_from; + DAST._IType _392___mcc_h56 = _source17.dtor_typ; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_SeqConstruct) { - DAST._IExpression _394___mcc_h60 = _source17.dtor_length; - DAST._IExpression _395___mcc_h61 = _source17.dtor_elem; + DAST._IExpression _393___mcc_h60 = _source17.dtor_length; + DAST._IExpression _394___mcc_h61 = _source17.dtor_elem; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_SeqValue) { - Dafny.ISequence _396___mcc_h64 = _source17.dtor_elements; - DAST._IType _397___mcc_h65 = _source17.dtor_typ; + Dafny.ISequence _395___mcc_h64 = _source17.dtor_elements; + DAST._IType _396___mcc_h65 = _source17.dtor_typ; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_SetValue) { - Dafny.ISequence _398___mcc_h68 = _source17.dtor_elements; + Dafny.ISequence _397___mcc_h68 = _source17.dtor_elements; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_MapValue) { - Dafny.ISequence<_System._ITuple2> _399___mcc_h70 = _source17.dtor_mapElems; + Dafny.ISequence<_System._ITuple2> _398___mcc_h70 = _source17.dtor_mapElems; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_This) { { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_Ite) { - DAST._IExpression _400___mcc_h72 = _source17.dtor_cond; - DAST._IExpression _401___mcc_h73 = _source17.dtor_thn; - DAST._IExpression _402___mcc_h74 = _source17.dtor_els; + DAST._IExpression _399___mcc_h72 = _source17.dtor_cond; + DAST._IExpression _400___mcc_h73 = _source17.dtor_thn; + DAST._IExpression _401___mcc_h74 = _source17.dtor_els; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_UnOp) { - DAST._IUnaryOp _403___mcc_h78 = _source17.dtor_unOp; - DAST._IExpression _404___mcc_h79 = _source17.dtor_expr; + DAST._IUnaryOp _402___mcc_h78 = _source17.dtor_unOp; + DAST._IExpression _403___mcc_h79 = _source17.dtor_expr; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_BinOp) { - DAST._IBinOp _405___mcc_h82 = _source17.dtor_op; - DAST._IExpression _406___mcc_h83 = _source17.dtor_left; - DAST._IExpression _407___mcc_h84 = _source17.dtor_right; + DAST._IBinOp _404___mcc_h82 = _source17.dtor_op; + DAST._IExpression _405___mcc_h83 = _source17.dtor_left; + DAST._IExpression _406___mcc_h84 = _source17.dtor_right; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_ArrayLen) { - DAST._IExpression _408___mcc_h88 = _source17.dtor_expr; - BigInteger _409___mcc_h89 = _source17.dtor_dim; + DAST._IExpression _407___mcc_h88 = _source17.dtor_expr; + BigInteger _408___mcc_h89 = _source17.dtor_dim; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_Select) { - DAST._IExpression _410___mcc_h92 = _source17.dtor_expr; - Dafny.ISequence _411___mcc_h93 = _source17.dtor_field; - bool _412___mcc_h94 = _source17.dtor_isConstant; - bool _413___mcc_h95 = _source17.dtor_onDatatype; + DAST._IExpression _409___mcc_h92 = _source17.dtor_expr; + Dafny.ISequence _410___mcc_h93 = _source17.dtor_field; + bool _411___mcc_h94 = _source17.dtor_isConstant; + bool _412___mcc_h95 = _source17.dtor_onDatatype; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_SelectFn) { - DAST._IExpression _414___mcc_h100 = _source17.dtor_expr; - Dafny.ISequence _415___mcc_h101 = _source17.dtor_field; - bool _416___mcc_h102 = _source17.dtor_onDatatype; - bool _417___mcc_h103 = _source17.dtor_isStatic; - BigInteger _418___mcc_h104 = _source17.dtor_arity; + DAST._IExpression _413___mcc_h100 = _source17.dtor_expr; + Dafny.ISequence _414___mcc_h101 = _source17.dtor_field; + bool _415___mcc_h102 = _source17.dtor_onDatatype; + bool _416___mcc_h103 = _source17.dtor_isStatic; + BigInteger _417___mcc_h104 = _source17.dtor_arity; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_Index) { - DAST._IExpression _419___mcc_h110 = _source17.dtor_expr; - DAST._ICollKind _420___mcc_h111 = _source17.dtor_collKind; - Dafny.ISequence _421___mcc_h112 = _source17.dtor_indices; + DAST._IExpression _418___mcc_h110 = _source17.dtor_expr; + DAST._ICollKind _419___mcc_h111 = _source17.dtor_collKind; + Dafny.ISequence _420___mcc_h112 = _source17.dtor_indices; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_IndexRange) { - DAST._IExpression _422___mcc_h116 = _source17.dtor_expr; - bool _423___mcc_h117 = _source17.dtor_isArray; - DAST._IOptional _424___mcc_h118 = _source17.dtor_low; - DAST._IOptional _425___mcc_h119 = _source17.dtor_high; + DAST._IExpression _421___mcc_h116 = _source17.dtor_expr; + bool _422___mcc_h117 = _source17.dtor_isArray; + DAST._IOptional _423___mcc_h118 = _source17.dtor_low; + DAST._IOptional _424___mcc_h119 = _source17.dtor_high; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_TupleSelect) { - DAST._IExpression _426___mcc_h124 = _source17.dtor_expr; - BigInteger _427___mcc_h125 = _source17.dtor_index; + DAST._IExpression _425___mcc_h124 = _source17.dtor_expr; + BigInteger _426___mcc_h125 = _source17.dtor_index; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_Call) { - DAST._IExpression _428___mcc_h128 = _source17.dtor_on; - Dafny.ISequence _429___mcc_h129 = _source17.dtor_name; - Dafny.ISequence _430___mcc_h130 = _source17.dtor_typeArgs; - Dafny.ISequence _431___mcc_h131 = _source17.dtor_args; + DAST._IExpression _427___mcc_h128 = _source17.dtor_on; + Dafny.ISequence _428___mcc_h129 = _source17.dtor_name; + Dafny.ISequence _429___mcc_h130 = _source17.dtor_typeArgs; + Dafny.ISequence _430___mcc_h131 = _source17.dtor_args; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_Lambda) { - Dafny.ISequence _432___mcc_h136 = _source17.dtor_params; - DAST._IType _433___mcc_h137 = _source17.dtor_retType; - Dafny.ISequence _434___mcc_h138 = _source17.dtor_body; + Dafny.ISequence _431___mcc_h136 = _source17.dtor_params; + DAST._IType _432___mcc_h137 = _source17.dtor_retType; + Dafny.ISequence _433___mcc_h138 = _source17.dtor_body; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_BetaRedex) { - Dafny.ISequence<_System._ITuple2> _435___mcc_h142 = _source17.dtor_values; - DAST._IType _436___mcc_h143 = _source17.dtor_retType; - DAST._IExpression _437___mcc_h144 = _source17.dtor_expr; + Dafny.ISequence<_System._ITuple2> _434___mcc_h142 = _source17.dtor_values; + DAST._IType _435___mcc_h143 = _source17.dtor_retType; + DAST._IExpression _436___mcc_h144 = _source17.dtor_expr; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_IIFE) { - Dafny.ISequence _438___mcc_h148 = _source17.dtor_name; - DAST._IType _439___mcc_h149 = _source17.dtor_typ; - DAST._IExpression _440___mcc_h150 = _source17.dtor_value; - DAST._IExpression _441___mcc_h151 = _source17.dtor_iifeBody; + Dafny.ISequence _437___mcc_h148 = _source17.dtor_name; + DAST._IType _438___mcc_h149 = _source17.dtor_typ; + DAST._IExpression _439___mcc_h150 = _source17.dtor_value; + DAST._IExpression _440___mcc_h151 = _source17.dtor_iifeBody; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_Apply) { - DAST._IExpression _442___mcc_h156 = _source17.dtor_expr; - Dafny.ISequence _443___mcc_h157 = _source17.dtor_args; + DAST._IExpression _441___mcc_h156 = _source17.dtor_expr; + Dafny.ISequence _442___mcc_h157 = _source17.dtor_args; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_TypeTest) { - DAST._IExpression _444___mcc_h160 = _source17.dtor_on; - Dafny.ISequence> _445___mcc_h161 = _source17.dtor_dType; - Dafny.ISequence _446___mcc_h162 = _source17.dtor_variant; + DAST._IExpression _443___mcc_h160 = _source17.dtor_on; + Dafny.ISequence> _444___mcc_h161 = _source17.dtor_dType; + Dafny.ISequence _445___mcc_h162 = _source17.dtor_variant; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_InitializationValue) { - DAST._IType _447___mcc_h166 = _source17.dtor_typ; + DAST._IType _446___mcc_h166 = _source17.dtor_typ; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_BoolBoundedPool) { { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_SetBoundedPool) { - DAST._IExpression _448___mcc_h168 = _source17.dtor_of; + DAST._IExpression _447___mcc_h168 = _source17.dtor_of; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else if (_source17.is_SeqBoundedPool) { - DAST._IExpression _449___mcc_h170 = _source17.dtor_of; - bool _450___mcc_h171 = _source17.dtor_includeDuplicates; + DAST._IExpression _448___mcc_h170 = _source17.dtor_of; + bool _449___mcc_h171 = _source17.dtor_includeDuplicates; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } else { - DAST._IExpression _451___mcc_h174 = _source17.dtor_lo; - DAST._IExpression _452___mcc_h175 = _source17.dtor_hi; + DAST._IExpression _450___mcc_h174 = _source17.dtor_lo; + DAST._IExpression _451___mcc_h175 = _source17.dtor_hi; { - _373_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _373_enclosingString), Dafny.Sequence.UnicodeFromString(").")); + _372_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _372_enclosingString), Dafny.Sequence.UnicodeFromString(").")); } } - Dafny.ISequence _453_receiver; - _453_receiver = Dafny.Sequence.UnicodeFromString(""); - DAST._IOptional>> _source18 = _359_maybeOutVars; + Dafny.ISequence _452_receiver; + _452_receiver = Dafny.Sequence.UnicodeFromString(""); + DAST._IOptional>> _source18 = _358_maybeOutVars; if (_source18.is_Some) { - Dafny.ISequence> _454___mcc_h178 = _source18.dtor_Some_a0; - Dafny.ISequence> _455_outVars = _454___mcc_h178; + Dafny.ISequence> _453___mcc_h178 = _source18.dtor_Some_a0; + Dafny.ISequence> _454_outVars = _453___mcc_h178; { - if ((new BigInteger((_455_outVars).Count)) > (BigInteger.One)) { - _453_receiver = Dafny.Sequence.UnicodeFromString("("); + if ((new BigInteger((_454_outVars).Count)) > (BigInteger.One)) { + _452_receiver = Dafny.Sequence.UnicodeFromString("("); } - BigInteger _456_outI; - _456_outI = BigInteger.Zero; - while ((_456_outI) < (new BigInteger((_455_outVars).Count))) { - if ((_456_outI).Sign == 1) { - _453_receiver = Dafny.Sequence.Concat(_453_receiver, Dafny.Sequence.UnicodeFromString(", ")); + BigInteger _455_outI; + _455_outI = BigInteger.Zero; + while ((_455_outI) < (new BigInteger((_454_outVars).Count))) { + if ((_455_outI).Sign == 1) { + _452_receiver = Dafny.Sequence.Concat(_452_receiver, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _457_outVar; - _457_outVar = (_455_outVars).Select(_456_outI); - _453_receiver = Dafny.Sequence.Concat(_453_receiver, (_457_outVar)); - _456_outI = (_456_outI) + (BigInteger.One); + Dafny.ISequence _456_outVar; + _456_outVar = (_454_outVars).Select(_455_outI); + _452_receiver = Dafny.Sequence.Concat(_452_receiver, (_456_outVar)); + _455_outI = (_455_outI) + (BigInteger.One); } - if ((new BigInteger((_455_outVars).Count)) > (BigInteger.One)) { - _453_receiver = Dafny.Sequence.Concat(_453_receiver, Dafny.Sequence.UnicodeFromString(")")); + if ((new BigInteger((_454_outVars).Count)) > (BigInteger.One)) { + _452_receiver = Dafny.Sequence.Concat(_452_receiver, Dafny.Sequence.UnicodeFromString(")")); } } } else { } - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(((!(_453_receiver).Equals(Dafny.Sequence.UnicodeFromString(""))) ? (Dafny.Sequence.Concat(_453_receiver, Dafny.Sequence.UnicodeFromString(" = "))) : (Dafny.Sequence.UnicodeFromString(""))), _373_enclosingString), DCOMP.__default.escapeIdent(_362_name)), _364_typeArgString), Dafny.Sequence.UnicodeFromString("(")), _367_argString), Dafny.Sequence.UnicodeFromString(");")); + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(((!(_452_receiver).Equals(Dafny.Sequence.UnicodeFromString(""))) ? (Dafny.Sequence.Concat(_452_receiver, Dafny.Sequence.UnicodeFromString(" = "))) : (Dafny.Sequence.UnicodeFromString(""))), _372_enclosingString), DCOMP.__default.escapeIdent(_361_name)), _363_typeArgString), Dafny.Sequence.UnicodeFromString("(")), _366_argString), Dafny.Sequence.UnicodeFromString(");")); } } else if (_source15.is_Return) { - DAST._IExpression _458___mcc_h22 = _source15.dtor_expr; - DAST._IExpression _459_expr = _458___mcc_h22; + DAST._IExpression _457___mcc_h22 = _source15.dtor_expr; + DAST._IExpression _458_expr = _457___mcc_h22; { - Dafny.ISequence _460_exprString; - bool _461___v29; - bool _462_recErased; - Dafny.ISet> _463_recIdents; + Dafny.ISequence _459_exprString; + bool _460___v29; + bool _461_recErased; + Dafny.ISet> _462_recIdents; Dafny.ISequence _out135; bool _out136; bool _out137; Dafny.ISet> _out138; - DCOMP.COMP.GenExpr(_459_expr, selfIdent, @params, true, out _out135, out _out136, out _out137, out _out138); - _460_exprString = _out135; - _461___v29 = _out136; - _462_recErased = _out137; - _463_recIdents = _out138; - _460_exprString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned(::dafny_runtime::DafnyErasable::erase_owned("), _460_exprString), Dafny.Sequence.UnicodeFromString("))")); - readIdents = _463_recIdents; + DCOMP.COMP.GenExpr(_458_expr, selfIdent, @params, true, out _out135, out _out136, out _out137, out _out138); + _459_exprString = _out135; + _460___v29 = _out136; + _461_recErased = _out137; + _462_recIdents = _out138; + _459_exprString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned(::dafny_runtime::DafnyErasable::erase_owned("), _459_exprString), Dafny.Sequence.UnicodeFromString("))")); + readIdents = _462_recIdents; if (isLast) { - generated = _460_exprString; + generated = _459_exprString; } else { - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("return "), _460_exprString), Dafny.Sequence.UnicodeFromString(";")); + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("return "), _459_exprString), Dafny.Sequence.UnicodeFromString(";")); } } } else if (_source15.is_EarlyReturn) { @@ -7259,15 +7228,15 @@ public static void GenStmt(DAST._IStatement stmt, DAST._IOptional>.FromElements(); } } else if (_source15.is_Break) { - DAST._IOptional> _464___mcc_h23 = _source15.dtor_toLabel; - DAST._IOptional> _465_toLabel = _464___mcc_h23; + DAST._IOptional> _463___mcc_h23 = _source15.dtor_toLabel; + DAST._IOptional> _464_toLabel = _463___mcc_h23; { - DAST._IOptional> _source19 = _465_toLabel; + DAST._IOptional> _source19 = _464_toLabel; if (_source19.is_Some) { - Dafny.ISequence _466___mcc_h179 = _source19.dtor_Some_a0; - Dafny.ISequence _467_lbl = _466___mcc_h179; + Dafny.ISequence _465___mcc_h179 = _source19.dtor_Some_a0; + Dafny.ISequence _466_lbl = _465___mcc_h179; { - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("break 'label_"), _467_lbl), Dafny.Sequence.UnicodeFromString(";")); + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("break 'label_"), _466_lbl), Dafny.Sequence.UnicodeFromString(";")); } } else { { @@ -7277,30 +7246,30 @@ public static void GenStmt(DAST._IStatement stmt, DAST._IOptional>.FromElements(); } } else if (_source15.is_TailRecursive) { - Dafny.ISequence _468___mcc_h24 = _source15.dtor_body; - Dafny.ISequence _469_body = _468___mcc_h24; + Dafny.ISequence _467___mcc_h24 = _source15.dtor_body; + Dafny.ISequence _468_body = _467___mcc_h24; { generated = Dafny.Sequence.UnicodeFromString(""); if (!object.Equals(selfIdent, DAST.Optional>.create_None())) { generated = Dafny.Sequence.Concat(generated, Dafny.Sequence.UnicodeFromString("let mut _this = self.clone();\n")); } - BigInteger _470_paramI; - _470_paramI = BigInteger.Zero; - while ((_470_paramI) < (new BigInteger((@params).Count))) { - Dafny.ISequence _471_param; - _471_param = (@params).Select(_470_paramI); - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(generated, Dafny.Sequence.UnicodeFromString("let mut ")), DCOMP.__default.escapeIdent(_471_param)), Dafny.Sequence.UnicodeFromString(" = ")), DCOMP.__default.escapeIdent(_471_param)), Dafny.Sequence.UnicodeFromString(".clone();\n")); - _470_paramI = (_470_paramI) + (BigInteger.One); + BigInteger _469_paramI; + _469_paramI = BigInteger.Zero; + while ((_469_paramI) < (new BigInteger((@params).Count))) { + Dafny.ISequence _470_param; + _470_param = (@params).Select(_469_paramI); + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(generated, Dafny.Sequence.UnicodeFromString("let mut ")), DCOMP.__default.escapeIdent(_470_param)), Dafny.Sequence.UnicodeFromString(" = ")), DCOMP.__default.escapeIdent(_470_param)), Dafny.Sequence.UnicodeFromString(".clone();\n")); + _469_paramI = (_469_paramI) + (BigInteger.One); } - Dafny.ISequence _472_bodyString; - Dafny.ISet> _473_bodyIdents; + Dafny.ISequence _471_bodyString; + Dafny.ISet> _472_bodyIdents; Dafny.ISequence _out139; Dafny.ISet> _out140; - DCOMP.COMP.GenStmts(_469_body, ((!object.Equals(selfIdent, DAST.Optional>.create_None())) ? (DAST.Optional>.create_Some(Dafny.Sequence.UnicodeFromString("_this"))) : (DAST.Optional>.create_None())), Dafny.Sequence>.FromElements(), false, earlyReturn, out _out139, out _out140); - _472_bodyString = _out139; - _473_bodyIdents = _out140; - readIdents = _473_bodyIdents; - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(generated, Dafny.Sequence.UnicodeFromString("'TAIL_CALL_START: loop {\n")), _472_bodyString), Dafny.Sequence.UnicodeFromString("\n}")); + DCOMP.COMP.GenStmts(_468_body, ((!object.Equals(selfIdent, DAST.Optional>.create_None())) ? (DAST.Optional>.create_Some(Dafny.Sequence.UnicodeFromString("_this"))) : (DAST.Optional>.create_None())), Dafny.Sequence>.FromElements(), false, earlyReturn, out _out139, out _out140); + _471_bodyString = _out139; + _472_bodyIdents = _out140; + readIdents = _472_bodyIdents; + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(generated, Dafny.Sequence.UnicodeFromString("'TAIL_CALL_START: loop {\n")), _471_bodyString), Dafny.Sequence.UnicodeFromString("\n}")); } } else if (_source15.is_JumpTailCallStart) { { @@ -7313,27 +7282,27 @@ public static void GenStmt(DAST._IStatement stmt, DAST._IOptional>.FromElements(); } } else { - DAST._IExpression _474___mcc_h25 = _source15.dtor_Print_a0; - DAST._IExpression _475_e = _474___mcc_h25; + DAST._IExpression _473___mcc_h25 = _source15.dtor_Print_a0; + DAST._IExpression _474_e = _473___mcc_h25; { - Dafny.ISequence _476_printedExpr; - bool _477_isOwned; - bool _478___v30; - Dafny.ISet> _479_recIdents; + Dafny.ISequence _475_printedExpr; + bool _476_isOwned; + bool _477___v30; + Dafny.ISet> _478_recIdents; Dafny.ISequence _out141; bool _out142; bool _out143; Dafny.ISet> _out144; - DCOMP.COMP.GenExpr(_475_e, selfIdent, @params, false, out _out141, out _out142, out _out143, out _out144); - _476_printedExpr = _out141; - _477_isOwned = _out142; - _478___v30 = _out143; - _479_recIdents = _out144; - if (_477_isOwned) { - _476_printedExpr = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&("), _476_printedExpr), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_474_e, selfIdent, @params, false, out _out141, out _out142, out _out143, out _out144); + _475_printedExpr = _out141; + _476_isOwned = _out142; + _477___v30 = _out143; + _478_recIdents = _out144; + if (_476_isOwned) { + _475_printedExpr = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&("), _475_printedExpr), Dafny.Sequence.UnicodeFromString(")")); } - generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("print!(\"{}\", ::dafny_runtime::DafnyPrintWrapper("), _476_printedExpr), Dafny.Sequence.UnicodeFromString("));")); - readIdents = _479_recIdents; + generated = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("print!(\"{}\", ::dafny_runtime::DafnyPrintWrapper("), _475_printedExpr), Dafny.Sequence.UnicodeFromString("));")); + readIdents = _478_recIdents; } } } @@ -7344,11 +7313,11 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional>.Empty; DAST._IExpression _source20 = e; if (_source20.is_Literal) { - DAST._ILiteral _480___mcc_h0 = _source20.dtor_Literal_a0; - DAST._ILiteral _source21 = _480___mcc_h0; + DAST._ILiteral _479___mcc_h0 = _source20.dtor_Literal_a0; + DAST._ILiteral _source21 = _479___mcc_h0; if (_source21.is_BoolLiteral) { - bool _481___mcc_h1 = _source21.dtor_BoolLiteral_a0; - if ((_481___mcc_h1) == (false)) { + bool _480___mcc_h1 = _source21.dtor_BoolLiteral_a0; + if ((_480___mcc_h1) == (false)) { { s = Dafny.Sequence.UnicodeFromString("false"); isOwned = true; @@ -7364,170 +7333,170 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _482___mcc_h2 = _source21.dtor_IntLiteral_a0; - DAST._IType _483___mcc_h3 = _source21.dtor_IntLiteral_a1; - DAST._IType _484_t = _483___mcc_h3; - Dafny.ISequence _485_i = _482___mcc_h2; + Dafny.ISequence _481___mcc_h2 = _source21.dtor_IntLiteral_a0; + DAST._IType _482___mcc_h3 = _source21.dtor_IntLiteral_a1; + DAST._IType _483_t = _482___mcc_h3; + Dafny.ISequence _484_i = _481___mcc_h2; { - DAST._IType _source22 = _484_t; + DAST._IType _source22 = _483_t; if (_source22.is_Path) { - Dafny.ISequence> _486___mcc_h237 = _source22.dtor_Path_a0; - Dafny.ISequence _487___mcc_h238 = _source22.dtor_typeArgs; - DAST._IResolvedType _488___mcc_h239 = _source22.dtor_resolved; - DAST._IType _489_o = _484_t; + Dafny.ISequence> _485___mcc_h237 = _source22.dtor_Path_a0; + Dafny.ISequence _486___mcc_h238 = _source22.dtor_typeArgs; + DAST._IResolvedType _487___mcc_h239 = _source22.dtor_resolved; + DAST._IType _488_o = _483_t; { - Dafny.ISequence _490_genType; + Dafny.ISequence _489_genType; Dafny.ISequence _out145; - _out145 = DCOMP.COMP.GenType(_489_o, false, false); - _490_genType = _out145; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _490_genType), Dafny.Sequence.UnicodeFromString(")")); + _out145 = DCOMP.COMP.GenType(_488_o, false, false); + _489_genType = _out145; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _489_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source22.is_Nullable) { - DAST._IType _491___mcc_h243 = _source22.dtor_Nullable_a0; - DAST._IType _492_o = _484_t; + DAST._IType _490___mcc_h243 = _source22.dtor_Nullable_a0; + DAST._IType _491_o = _483_t; { - Dafny.ISequence _493_genType; + Dafny.ISequence _492_genType; Dafny.ISequence _out146; - _out146 = DCOMP.COMP.GenType(_492_o, false, false); - _493_genType = _out146; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _493_genType), Dafny.Sequence.UnicodeFromString(")")); + _out146 = DCOMP.COMP.GenType(_491_o, false, false); + _492_genType = _out146; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _492_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source22.is_Tuple) { - Dafny.ISequence _494___mcc_h245 = _source22.dtor_Tuple_a0; - DAST._IType _495_o = _484_t; + Dafny.ISequence _493___mcc_h245 = _source22.dtor_Tuple_a0; + DAST._IType _494_o = _483_t; { - Dafny.ISequence _496_genType; + Dafny.ISequence _495_genType; Dafny.ISequence _out147; - _out147 = DCOMP.COMP.GenType(_495_o, false, false); - _496_genType = _out147; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _496_genType), Dafny.Sequence.UnicodeFromString(")")); + _out147 = DCOMP.COMP.GenType(_494_o, false, false); + _495_genType = _out147; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _495_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source22.is_Array) { - DAST._IType _497___mcc_h247 = _source22.dtor_element; - BigInteger _498___mcc_h248 = _source22.dtor_dims; - DAST._IType _499_o = _484_t; + DAST._IType _496___mcc_h247 = _source22.dtor_element; + BigInteger _497___mcc_h248 = _source22.dtor_dims; + DAST._IType _498_o = _483_t; { - Dafny.ISequence _500_genType; + Dafny.ISequence _499_genType; Dafny.ISequence _out148; - _out148 = DCOMP.COMP.GenType(_499_o, false, false); - _500_genType = _out148; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _500_genType), Dafny.Sequence.UnicodeFromString(")")); + _out148 = DCOMP.COMP.GenType(_498_o, false, false); + _499_genType = _out148; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _499_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source22.is_Seq) { - DAST._IType _501___mcc_h251 = _source22.dtor_element; - DAST._IType _502_o = _484_t; + DAST._IType _500___mcc_h251 = _source22.dtor_element; + DAST._IType _501_o = _483_t; { - Dafny.ISequence _503_genType; + Dafny.ISequence _502_genType; Dafny.ISequence _out149; - _out149 = DCOMP.COMP.GenType(_502_o, false, false); - _503_genType = _out149; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _503_genType), Dafny.Sequence.UnicodeFromString(")")); + _out149 = DCOMP.COMP.GenType(_501_o, false, false); + _502_genType = _out149; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _502_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source22.is_Set) { - DAST._IType _504___mcc_h253 = _source22.dtor_element; - DAST._IType _505_o = _484_t; + DAST._IType _503___mcc_h253 = _source22.dtor_element; + DAST._IType _504_o = _483_t; { - Dafny.ISequence _506_genType; + Dafny.ISequence _505_genType; Dafny.ISequence _out150; - _out150 = DCOMP.COMP.GenType(_505_o, false, false); - _506_genType = _out150; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _506_genType), Dafny.Sequence.UnicodeFromString(")")); + _out150 = DCOMP.COMP.GenType(_504_o, false, false); + _505_genType = _out150; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _505_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source22.is_Multiset) { - DAST._IType _507___mcc_h255 = _source22.dtor_element; - DAST._IType _508_o = _484_t; + DAST._IType _506___mcc_h255 = _source22.dtor_element; + DAST._IType _507_o = _483_t; { - Dafny.ISequence _509_genType; + Dafny.ISequence _508_genType; Dafny.ISequence _out151; - _out151 = DCOMP.COMP.GenType(_508_o, false, false); - _509_genType = _out151; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _509_genType), Dafny.Sequence.UnicodeFromString(")")); + _out151 = DCOMP.COMP.GenType(_507_o, false, false); + _508_genType = _out151; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _508_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source22.is_Map) { - DAST._IType _510___mcc_h257 = _source22.dtor_key; - DAST._IType _511___mcc_h258 = _source22.dtor_value; - DAST._IType _512_o = _484_t; + DAST._IType _509___mcc_h257 = _source22.dtor_key; + DAST._IType _510___mcc_h258 = _source22.dtor_value; + DAST._IType _511_o = _483_t; { - Dafny.ISequence _513_genType; + Dafny.ISequence _512_genType; Dafny.ISequence _out152; - _out152 = DCOMP.COMP.GenType(_512_o, false, false); - _513_genType = _out152; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _513_genType), Dafny.Sequence.UnicodeFromString(")")); + _out152 = DCOMP.COMP.GenType(_511_o, false, false); + _512_genType = _out152; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _512_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source22.is_Arrow) { - Dafny.ISequence _514___mcc_h261 = _source22.dtor_args; - DAST._IType _515___mcc_h262 = _source22.dtor_result; - DAST._IType _516_o = _484_t; + Dafny.ISequence _513___mcc_h261 = _source22.dtor_args; + DAST._IType _514___mcc_h262 = _source22.dtor_result; + DAST._IType _515_o = _483_t; { - Dafny.ISequence _517_genType; + Dafny.ISequence _516_genType; Dafny.ISequence _out153; - _out153 = DCOMP.COMP.GenType(_516_o, false, false); - _517_genType = _out153; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _517_genType), Dafny.Sequence.UnicodeFromString(")")); + _out153 = DCOMP.COMP.GenType(_515_o, false, false); + _516_genType = _out153; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _516_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source22.is_Primitive) { - DAST._IPrimitive _518___mcc_h265 = _source22.dtor_Primitive_a0; - DAST._IPrimitive _source23 = _518___mcc_h265; + DAST._IPrimitive _517___mcc_h265 = _source22.dtor_Primitive_a0; + DAST._IPrimitive _source23 = _517___mcc_h265; if (_source23.is_Int) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigInt::parse_bytes(b\""), _485_i), Dafny.Sequence.UnicodeFromString("\", 10).unwrap()")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigInt::parse_bytes(b\""), _484_i), Dafny.Sequence.UnicodeFromString("\", 10).unwrap()")); } } else if (_source23.is_Real) { - DAST._IType _519_o = _484_t; + DAST._IType _518_o = _483_t; { - Dafny.ISequence _520_genType; + Dafny.ISequence _519_genType; Dafny.ISequence _out154; - _out154 = DCOMP.COMP.GenType(_519_o, false, false); - _520_genType = _out154; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _520_genType), Dafny.Sequence.UnicodeFromString(")")); + _out154 = DCOMP.COMP.GenType(_518_o, false, false); + _519_genType = _out154; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _519_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source23.is_String) { - DAST._IType _521_o = _484_t; + DAST._IType _520_o = _483_t; { - Dafny.ISequence _522_genType; + Dafny.ISequence _521_genType; Dafny.ISequence _out155; - _out155 = DCOMP.COMP.GenType(_521_o, false, false); - _522_genType = _out155; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _522_genType), Dafny.Sequence.UnicodeFromString(")")); + _out155 = DCOMP.COMP.GenType(_520_o, false, false); + _521_genType = _out155; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _521_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source23.is_Bool) { - DAST._IType _523_o = _484_t; + DAST._IType _522_o = _483_t; { - Dafny.ISequence _524_genType; + Dafny.ISequence _523_genType; Dafny.ISequence _out156; - _out156 = DCOMP.COMP.GenType(_523_o, false, false); - _524_genType = _out156; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _524_genType), Dafny.Sequence.UnicodeFromString(")")); + _out156 = DCOMP.COMP.GenType(_522_o, false, false); + _523_genType = _out156; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _523_genType), Dafny.Sequence.UnicodeFromString(")")); } } else { - DAST._IType _525_o = _484_t; + DAST._IType _524_o = _483_t; { - Dafny.ISequence _526_genType; + Dafny.ISequence _525_genType; Dafny.ISequence _out157; - _out157 = DCOMP.COMP.GenType(_525_o, false, false); - _526_genType = _out157; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _526_genType), Dafny.Sequence.UnicodeFromString(")")); + _out157 = DCOMP.COMP.GenType(_524_o, false, false); + _525_genType = _out157; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _525_genType), Dafny.Sequence.UnicodeFromString(")")); } } } else if (_source22.is_Passthrough) { - Dafny.ISequence _527___mcc_h267 = _source22.dtor_Passthrough_a0; - DAST._IType _528_o = _484_t; + Dafny.ISequence _526___mcc_h267 = _source22.dtor_Passthrough_a0; + DAST._IType _527_o = _483_t; { - Dafny.ISequence _529_genType; + Dafny.ISequence _528_genType; Dafny.ISequence _out158; - _out158 = DCOMP.COMP.GenType(_528_o, false, false); - _529_genType = _out158; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _529_genType), Dafny.Sequence.UnicodeFromString(")")); + _out158 = DCOMP.COMP.GenType(_527_o, false, false); + _528_genType = _out158; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _528_genType), Dafny.Sequence.UnicodeFromString(")")); } } else { - Dafny.ISequence _530___mcc_h269 = _source22.dtor_TypeArg_a0; - DAST._IType _531_o = _484_t; + Dafny.ISequence _529___mcc_h269 = _source22.dtor_TypeArg_a0; + DAST._IType _530_o = _483_t; { - Dafny.ISequence _532_genType; + Dafny.ISequence _531_genType; Dafny.ISequence _out159; - _out159 = DCOMP.COMP.GenType(_531_o, false, false); - _532_genType = _out159; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _485_i), Dafny.Sequence.UnicodeFromString(" as ")), _532_genType), Dafny.Sequence.UnicodeFromString(")")); + _out159 = DCOMP.COMP.GenType(_530_o, false, false); + _531_genType = _out159; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _484_i), Dafny.Sequence.UnicodeFromString(" as ")), _531_genType), Dafny.Sequence.UnicodeFromString(")")); } } isOwned = true; @@ -7535,172 +7504,172 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional>.FromElements(); } } else if (_source21.is_DecLiteral) { - Dafny.ISequence _533___mcc_h4 = _source21.dtor_DecLiteral_a0; - Dafny.ISequence _534___mcc_h5 = _source21.dtor_DecLiteral_a1; - DAST._IType _535___mcc_h6 = _source21.dtor_DecLiteral_a2; - DAST._IType _536_t = _535___mcc_h6; - Dafny.ISequence _537_d = _534___mcc_h5; - Dafny.ISequence _538_n = _533___mcc_h4; + Dafny.ISequence _532___mcc_h4 = _source21.dtor_DecLiteral_a0; + Dafny.ISequence _533___mcc_h5 = _source21.dtor_DecLiteral_a1; + DAST._IType _534___mcc_h6 = _source21.dtor_DecLiteral_a2; + DAST._IType _535_t = _534___mcc_h6; + Dafny.ISequence _536_d = _533___mcc_h5; + Dafny.ISequence _537_n = _532___mcc_h4; { - DAST._IType _source24 = _536_t; + DAST._IType _source24 = _535_t; if (_source24.is_Path) { - Dafny.ISequence> _539___mcc_h271 = _source24.dtor_Path_a0; - Dafny.ISequence _540___mcc_h272 = _source24.dtor_typeArgs; - DAST._IResolvedType _541___mcc_h273 = _source24.dtor_resolved; - DAST._IType _542_o = _536_t; + Dafny.ISequence> _538___mcc_h271 = _source24.dtor_Path_a0; + Dafny.ISequence _539___mcc_h272 = _source24.dtor_typeArgs; + DAST._IResolvedType _540___mcc_h273 = _source24.dtor_resolved; + DAST._IType _541_o = _535_t; { - Dafny.ISequence _543_genType; + Dafny.ISequence _542_genType; Dafny.ISequence _out160; - _out160 = DCOMP.COMP.GenType(_542_o, false, false); - _543_genType = _out160; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _543_genType), Dafny.Sequence.UnicodeFromString(")")); + _out160 = DCOMP.COMP.GenType(_541_o, false, false); + _542_genType = _out160; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _542_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source24.is_Nullable) { - DAST._IType _544___mcc_h277 = _source24.dtor_Nullable_a0; - DAST._IType _545_o = _536_t; + DAST._IType _543___mcc_h277 = _source24.dtor_Nullable_a0; + DAST._IType _544_o = _535_t; { - Dafny.ISequence _546_genType; + Dafny.ISequence _545_genType; Dafny.ISequence _out161; - _out161 = DCOMP.COMP.GenType(_545_o, false, false); - _546_genType = _out161; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _546_genType), Dafny.Sequence.UnicodeFromString(")")); + _out161 = DCOMP.COMP.GenType(_544_o, false, false); + _545_genType = _out161; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _545_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source24.is_Tuple) { - Dafny.ISequence _547___mcc_h279 = _source24.dtor_Tuple_a0; - DAST._IType _548_o = _536_t; + Dafny.ISequence _546___mcc_h279 = _source24.dtor_Tuple_a0; + DAST._IType _547_o = _535_t; { - Dafny.ISequence _549_genType; + Dafny.ISequence _548_genType; Dafny.ISequence _out162; - _out162 = DCOMP.COMP.GenType(_548_o, false, false); - _549_genType = _out162; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _549_genType), Dafny.Sequence.UnicodeFromString(")")); + _out162 = DCOMP.COMP.GenType(_547_o, false, false); + _548_genType = _out162; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _548_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source24.is_Array) { - DAST._IType _550___mcc_h281 = _source24.dtor_element; - BigInteger _551___mcc_h282 = _source24.dtor_dims; - DAST._IType _552_o = _536_t; + DAST._IType _549___mcc_h281 = _source24.dtor_element; + BigInteger _550___mcc_h282 = _source24.dtor_dims; + DAST._IType _551_o = _535_t; { - Dafny.ISequence _553_genType; + Dafny.ISequence _552_genType; Dafny.ISequence _out163; - _out163 = DCOMP.COMP.GenType(_552_o, false, false); - _553_genType = _out163; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _553_genType), Dafny.Sequence.UnicodeFromString(")")); + _out163 = DCOMP.COMP.GenType(_551_o, false, false); + _552_genType = _out163; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _552_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source24.is_Seq) { - DAST._IType _554___mcc_h285 = _source24.dtor_element; - DAST._IType _555_o = _536_t; + DAST._IType _553___mcc_h285 = _source24.dtor_element; + DAST._IType _554_o = _535_t; { - Dafny.ISequence _556_genType; + Dafny.ISequence _555_genType; Dafny.ISequence _out164; - _out164 = DCOMP.COMP.GenType(_555_o, false, false); - _556_genType = _out164; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _556_genType), Dafny.Sequence.UnicodeFromString(")")); + _out164 = DCOMP.COMP.GenType(_554_o, false, false); + _555_genType = _out164; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _555_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source24.is_Set) { - DAST._IType _557___mcc_h287 = _source24.dtor_element; - DAST._IType _558_o = _536_t; + DAST._IType _556___mcc_h287 = _source24.dtor_element; + DAST._IType _557_o = _535_t; { - Dafny.ISequence _559_genType; + Dafny.ISequence _558_genType; Dafny.ISequence _out165; - _out165 = DCOMP.COMP.GenType(_558_o, false, false); - _559_genType = _out165; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _559_genType), Dafny.Sequence.UnicodeFromString(")")); + _out165 = DCOMP.COMP.GenType(_557_o, false, false); + _558_genType = _out165; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _558_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source24.is_Multiset) { - DAST._IType _560___mcc_h289 = _source24.dtor_element; - DAST._IType _561_o = _536_t; + DAST._IType _559___mcc_h289 = _source24.dtor_element; + DAST._IType _560_o = _535_t; { - Dafny.ISequence _562_genType; + Dafny.ISequence _561_genType; Dafny.ISequence _out166; - _out166 = DCOMP.COMP.GenType(_561_o, false, false); - _562_genType = _out166; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _562_genType), Dafny.Sequence.UnicodeFromString(")")); + _out166 = DCOMP.COMP.GenType(_560_o, false, false); + _561_genType = _out166; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _561_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source24.is_Map) { - DAST._IType _563___mcc_h291 = _source24.dtor_key; - DAST._IType _564___mcc_h292 = _source24.dtor_value; - DAST._IType _565_o = _536_t; + DAST._IType _562___mcc_h291 = _source24.dtor_key; + DAST._IType _563___mcc_h292 = _source24.dtor_value; + DAST._IType _564_o = _535_t; { - Dafny.ISequence _566_genType; + Dafny.ISequence _565_genType; Dafny.ISequence _out167; - _out167 = DCOMP.COMP.GenType(_565_o, false, false); - _566_genType = _out167; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _566_genType), Dafny.Sequence.UnicodeFromString(")")); + _out167 = DCOMP.COMP.GenType(_564_o, false, false); + _565_genType = _out167; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _565_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source24.is_Arrow) { - Dafny.ISequence _567___mcc_h295 = _source24.dtor_args; - DAST._IType _568___mcc_h296 = _source24.dtor_result; - DAST._IType _569_o = _536_t; + Dafny.ISequence _566___mcc_h295 = _source24.dtor_args; + DAST._IType _567___mcc_h296 = _source24.dtor_result; + DAST._IType _568_o = _535_t; { - Dafny.ISequence _570_genType; + Dafny.ISequence _569_genType; Dafny.ISequence _out168; - _out168 = DCOMP.COMP.GenType(_569_o, false, false); - _570_genType = _out168; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _570_genType), Dafny.Sequence.UnicodeFromString(")")); + _out168 = DCOMP.COMP.GenType(_568_o, false, false); + _569_genType = _out168; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _569_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source24.is_Primitive) { - DAST._IPrimitive _571___mcc_h299 = _source24.dtor_Primitive_a0; - DAST._IPrimitive _source25 = _571___mcc_h299; + DAST._IPrimitive _570___mcc_h299 = _source24.dtor_Primitive_a0; + DAST._IPrimitive _source25 = _570___mcc_h299; if (_source25.is_Int) { - DAST._IType _572_o = _536_t; + DAST._IType _571_o = _535_t; { - Dafny.ISequence _573_genType; + Dafny.ISequence _572_genType; Dafny.ISequence _out169; - _out169 = DCOMP.COMP.GenType(_572_o, false, false); - _573_genType = _out169; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _573_genType), Dafny.Sequence.UnicodeFromString(")")); + _out169 = DCOMP.COMP.GenType(_571_o, false, false); + _572_genType = _out169; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _572_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source25.is_Real) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigRational::new(::dafny_runtime::BigInt::parse_bytes(b\""), _538_n), Dafny.Sequence.UnicodeFromString("\", 10).unwrap(), ::dafny_runtime::BigInt::parse_bytes(b\"")), _537_d), Dafny.Sequence.UnicodeFromString("\", 10).unwrap())")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigRational::new(::dafny_runtime::BigInt::parse_bytes(b\""), _537_n), Dafny.Sequence.UnicodeFromString("\", 10).unwrap(), ::dafny_runtime::BigInt::parse_bytes(b\"")), _536_d), Dafny.Sequence.UnicodeFromString("\", 10).unwrap())")); } } else if (_source25.is_String) { - DAST._IType _574_o = _536_t; + DAST._IType _573_o = _535_t; { - Dafny.ISequence _575_genType; + Dafny.ISequence _574_genType; Dafny.ISequence _out170; - _out170 = DCOMP.COMP.GenType(_574_o, false, false); - _575_genType = _out170; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _575_genType), Dafny.Sequence.UnicodeFromString(")")); + _out170 = DCOMP.COMP.GenType(_573_o, false, false); + _574_genType = _out170; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _574_genType), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source25.is_Bool) { - DAST._IType _576_o = _536_t; + DAST._IType _575_o = _535_t; { - Dafny.ISequence _577_genType; + Dafny.ISequence _576_genType; Dafny.ISequence _out171; - _out171 = DCOMP.COMP.GenType(_576_o, false, false); - _577_genType = _out171; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _577_genType), Dafny.Sequence.UnicodeFromString(")")); + _out171 = DCOMP.COMP.GenType(_575_o, false, false); + _576_genType = _out171; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _576_genType), Dafny.Sequence.UnicodeFromString(")")); } } else { - DAST._IType _578_o = _536_t; + DAST._IType _577_o = _535_t; { - Dafny.ISequence _579_genType; + Dafny.ISequence _578_genType; Dafny.ISequence _out172; - _out172 = DCOMP.COMP.GenType(_578_o, false, false); - _579_genType = _out172; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _579_genType), Dafny.Sequence.UnicodeFromString(")")); + _out172 = DCOMP.COMP.GenType(_577_o, false, false); + _578_genType = _out172; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _578_genType), Dafny.Sequence.UnicodeFromString(")")); } } } else if (_source24.is_Passthrough) { - Dafny.ISequence _580___mcc_h301 = _source24.dtor_Passthrough_a0; - DAST._IType _581_o = _536_t; + Dafny.ISequence _579___mcc_h301 = _source24.dtor_Passthrough_a0; + DAST._IType _580_o = _535_t; { - Dafny.ISequence _582_genType; + Dafny.ISequence _581_genType; Dafny.ISequence _out173; - _out173 = DCOMP.COMP.GenType(_581_o, false, false); - _582_genType = _out173; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _582_genType), Dafny.Sequence.UnicodeFromString(")")); + _out173 = DCOMP.COMP.GenType(_580_o, false, false); + _581_genType = _out173; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _581_genType), Dafny.Sequence.UnicodeFromString(")")); } } else { - Dafny.ISequence _583___mcc_h303 = _source24.dtor_TypeArg_a0; - DAST._IType _584_o = _536_t; + Dafny.ISequence _582___mcc_h303 = _source24.dtor_TypeArg_a0; + DAST._IType _583_o = _535_t; { - Dafny.ISequence _585_genType; + Dafny.ISequence _584_genType; Dafny.ISequence _out174; - _out174 = DCOMP.COMP.GenType(_584_o, false, false); - _585_genType = _out174; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _538_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _537_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _585_genType), Dafny.Sequence.UnicodeFromString(")")); + _out174 = DCOMP.COMP.GenType(_583_o, false, false); + _584_genType = _out174; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _537_n), Dafny.Sequence.UnicodeFromString(".0 / ")), _536_d), Dafny.Sequence.UnicodeFromString(".0")), Dafny.Sequence.UnicodeFromString(") as ")), _584_genType), Dafny.Sequence.UnicodeFromString(")")); } } isOwned = true; @@ -7708,43 +7677,43 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional>.FromElements(); } } else if (_source21.is_StringLiteral) { - Dafny.ISequence _586___mcc_h7 = _source21.dtor_StringLiteral_a0; - Dafny.ISequence _587_l = _586___mcc_h7; + Dafny.ISequence _585___mcc_h7 = _source21.dtor_StringLiteral_a0; + Dafny.ISequence _586_l = _585___mcc_h7; { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("\""), _587_l), Dafny.Sequence.UnicodeFromString("\".chars().collect::>()")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("\""), _586_l), Dafny.Sequence.UnicodeFromString("\".chars().collect::>()")); isOwned = true; isErased = false; readIdents = Dafny.Set>.FromElements(); } } else if (_source21.is_CharLiteral) { - Dafny.Rune _588___mcc_h8 = _source21.dtor_CharLiteral_a0; - Dafny.Rune _589_c = _588___mcc_h8; + Dafny.Rune _587___mcc_h8 = _source21.dtor_CharLiteral_a0; + Dafny.Rune _588_c = _587___mcc_h8; { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::primitive::char::from_u32("), DCOMP.__default.natToString(new BigInteger((_589_c).Value))), Dafny.Sequence.UnicodeFromString(").unwrap()")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::primitive::char::from_u32("), DCOMP.__default.natToString(new BigInteger((_588_c).Value))), Dafny.Sequence.UnicodeFromString(").unwrap()")); isOwned = true; isErased = false; readIdents = Dafny.Set>.FromElements(); } } else { - DAST._IType _590___mcc_h9 = _source21.dtor_Null_a0; - DAST._IType _591_tpe = _590___mcc_h9; + DAST._IType _589___mcc_h9 = _source21.dtor_Null_a0; + DAST._IType _590_tpe = _589___mcc_h9; { - Dafny.ISequence _592_tpeGen; + Dafny.ISequence _591_tpeGen; Dafny.ISequence _out175; - _out175 = DCOMP.COMP.GenType(_591_tpe, false, false); - _592_tpeGen = _out175; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(None as "), _592_tpeGen), Dafny.Sequence.UnicodeFromString(")")); + _out175 = DCOMP.COMP.GenType(_590_tpe, false, false); + _591_tpeGen = _out175; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(None as "), _591_tpeGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; isErased = false; readIdents = Dafny.Set>.FromElements(); } } } else if (_source20.is_Ident) { - Dafny.ISequence _593___mcc_h10 = _source20.dtor_Ident_a0; - Dafny.ISequence _594_name = _593___mcc_h10; + Dafny.ISequence _592___mcc_h10 = _source20.dtor_Ident_a0; + Dafny.ISequence _593_name = _592___mcc_h10; { - s = DCOMP.__default.escapeIdent(_594_name); - if (!((@params).Contains(_594_name))) { + s = DCOMP.__default.escapeIdent(_593_name); + if (!((@params).Contains(_593_name))) { s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(&"), s), Dafny.Sequence.UnicodeFromString(")")); } if (mustOwn) { @@ -7754,383 +7723,383 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional>.FromElements(_594_name); + readIdents = Dafny.Set>.FromElements(_593_name); } } else if (_source20.is_Companion) { - Dafny.ISequence> _595___mcc_h11 = _source20.dtor_Companion_a0; - Dafny.ISequence> _596_path = _595___mcc_h11; + Dafny.ISequence> _594___mcc_h11 = _source20.dtor_Companion_a0; + Dafny.ISequence> _595_path = _594___mcc_h11; { Dafny.ISequence _out176; - _out176 = DCOMP.COMP.GenPath(_596_path); + _out176 = DCOMP.COMP.GenPath(_595_path); s = _out176; isOwned = true; isErased = true; readIdents = Dafny.Set>.FromElements(); } } else if (_source20.is_Tuple) { - Dafny.ISequence _597___mcc_h12 = _source20.dtor_Tuple_a0; - Dafny.ISequence _598_values = _597___mcc_h12; + Dafny.ISequence _596___mcc_h12 = _source20.dtor_Tuple_a0; + Dafny.ISequence _597_values = _596___mcc_h12; { s = Dafny.Sequence.UnicodeFromString("("); readIdents = Dafny.Set>.FromElements(); - BigInteger _599_i; - _599_i = BigInteger.Zero; - while ((_599_i) < (new BigInteger((_598_values).Count))) { - if ((_599_i).Sign == 1) { + BigInteger _598_i; + _598_i = BigInteger.Zero; + while ((_598_i) < (new BigInteger((_597_values).Count))) { + if ((_598_i).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(" ")); } - Dafny.ISequence _600_recursiveGen; - bool _601___v31; - bool _602_isErased; - Dafny.ISet> _603_recIdents; + Dafny.ISequence _599_recursiveGen; + bool _600___v31; + bool _601_isErased; + Dafny.ISet> _602_recIdents; Dafny.ISequence _out177; bool _out178; bool _out179; Dafny.ISet> _out180; - DCOMP.COMP.GenExpr((_598_values).Select(_599_i), selfIdent, @params, true, out _out177, out _out178, out _out179, out _out180); - _600_recursiveGen = _out177; - _601___v31 = _out178; - _602_isErased = _out179; - _603_recIdents = _out180; - if (_602_isErased) { - _600_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _600_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr((_597_values).Select(_598_i), selfIdent, @params, true, out _out177, out _out178, out _out179, out _out180); + _599_recursiveGen = _out177; + _600___v31 = _out178; + _601_isErased = _out179; + _602_recIdents = _out180; + if (_601_isErased) { + _599_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _599_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, _600_recursiveGen), Dafny.Sequence.UnicodeFromString(",")); - readIdents = Dafny.Set>.Union(readIdents, _603_recIdents); - _599_i = (_599_i) + (BigInteger.One); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, _599_recursiveGen), Dafny.Sequence.UnicodeFromString(",")); + readIdents = Dafny.Set>.Union(readIdents, _602_recIdents); + _598_i = (_598_i) + (BigInteger.One); } s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(")")); isOwned = true; isErased = false; } } else if (_source20.is_New) { - Dafny.ISequence> _604___mcc_h13 = _source20.dtor_path; - Dafny.ISequence _605___mcc_h14 = _source20.dtor_typeArgs; - Dafny.ISequence _606___mcc_h15 = _source20.dtor_args; - Dafny.ISequence _607_args = _606___mcc_h15; - Dafny.ISequence _608_typeArgs = _605___mcc_h14; - Dafny.ISequence> _609_path = _604___mcc_h13; + Dafny.ISequence> _603___mcc_h13 = _source20.dtor_path; + Dafny.ISequence _604___mcc_h14 = _source20.dtor_typeArgs; + Dafny.ISequence _605___mcc_h15 = _source20.dtor_args; + Dafny.ISequence _606_args = _605___mcc_h15; + Dafny.ISequence _607_typeArgs = _604___mcc_h14; + Dafny.ISequence> _608_path = _603___mcc_h13; { - Dafny.ISequence _610_path; + Dafny.ISequence _609_path; Dafny.ISequence _out181; - _out181 = DCOMP.COMP.GenPath(_609_path); - _610_path = _out181; - s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::new("), _610_path); - if ((new BigInteger((_608_typeArgs).Count)).Sign == 1) { + _out181 = DCOMP.COMP.GenPath(_608_path); + _609_path = _out181; + s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::new("), _609_path); + if ((new BigInteger((_607_typeArgs).Count)).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("::<")); - BigInteger _611_i; - _611_i = BigInteger.Zero; - while ((_611_i) < (new BigInteger((_608_typeArgs).Count))) { - if ((_611_i).Sign == 1) { + BigInteger _610_i; + _610_i = BigInteger.Zero; + while ((_610_i) < (new BigInteger((_607_typeArgs).Count))) { + if ((_610_i).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("::")); } - Dafny.ISequence _612_typeString; + Dafny.ISequence _611_typeString; Dafny.ISequence _out182; - _out182 = DCOMP.COMP.GenType((_608_typeArgs).Select(_611_i), false, false); - _612_typeString = _out182; - s = Dafny.Sequence.Concat(s, _612_typeString); - _611_i = (_611_i) + (BigInteger.One); + _out182 = DCOMP.COMP.GenType((_607_typeArgs).Select(_610_i), false, false); + _611_typeString = _out182; + s = Dafny.Sequence.Concat(s, _611_typeString); + _610_i = (_610_i) + (BigInteger.One); } s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(">")); } s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("::new(")); readIdents = Dafny.Set>.FromElements(); - BigInteger _613_i; - _613_i = BigInteger.Zero; - while ((_613_i) < (new BigInteger((_607_args).Count))) { - if ((_613_i).Sign == 1) { + BigInteger _612_i; + _612_i = BigInteger.Zero; + while ((_612_i) < (new BigInteger((_606_args).Count))) { + if ((_612_i).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _614_recursiveGen; - bool _615___v32; - bool _616_isErased; - Dafny.ISet> _617_recIdents; + Dafny.ISequence _613_recursiveGen; + bool _614___v32; + bool _615_isErased; + Dafny.ISet> _616_recIdents; Dafny.ISequence _out183; bool _out184; bool _out185; Dafny.ISet> _out186; - DCOMP.COMP.GenExpr((_607_args).Select(_613_i), selfIdent, @params, true, out _out183, out _out184, out _out185, out _out186); - _614_recursiveGen = _out183; - _615___v32 = _out184; - _616_isErased = _out185; - _617_recIdents = _out186; - if (_616_isErased) { - _614_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _614_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr((_606_args).Select(_612_i), selfIdent, @params, true, out _out183, out _out184, out _out185, out _out186); + _613_recursiveGen = _out183; + _614___v32 = _out184; + _615_isErased = _out185; + _616_recIdents = _out186; + if (_615_isErased) { + _613_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _613_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); } - s = Dafny.Sequence.Concat(s, _614_recursiveGen); - readIdents = Dafny.Set>.Union(readIdents, _617_recIdents); - _613_i = (_613_i) + (BigInteger.One); + s = Dafny.Sequence.Concat(s, _613_recursiveGen); + readIdents = Dafny.Set>.Union(readIdents, _616_recIdents); + _612_i = (_612_i) + (BigInteger.One); } s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("))")); isOwned = true; isErased = true; } } else if (_source20.is_NewArray) { - Dafny.ISequence _618___mcc_h16 = _source20.dtor_dims; - DAST._IType _619___mcc_h17 = _source20.dtor_typ; - DAST._IType _620_typ = _619___mcc_h17; - Dafny.ISequence _621_dims = _618___mcc_h16; + Dafny.ISequence _617___mcc_h16 = _source20.dtor_dims; + DAST._IType _618___mcc_h17 = _source20.dtor_typ; + DAST._IType _619_typ = _618___mcc_h17; + Dafny.ISequence _620_dims = _617___mcc_h16; { - BigInteger _622_i; - _622_i = (new BigInteger((_621_dims).Count)) - (BigInteger.One); - Dafny.ISequence _623_genTyp; + BigInteger _621_i; + _621_i = (new BigInteger((_620_dims).Count)) - (BigInteger.One); + Dafny.ISequence _622_genTyp; Dafny.ISequence _out187; - _out187 = DCOMP.COMP.GenType(_620_typ, false, false); - _623_genTyp = _out187; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _623_genTyp), Dafny.Sequence.UnicodeFromString(" as ::std::default::Default>::default()")); + _out187 = DCOMP.COMP.GenType(_619_typ, false, false); + _622_genTyp = _out187; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _622_genTyp), Dafny.Sequence.UnicodeFromString(" as ::std::default::Default>::default()")); readIdents = Dafny.Set>.FromElements(); - while ((_622_i).Sign != -1) { - Dafny.ISequence _624_recursiveGen; - bool _625___v33; - bool _626_isErased; - Dafny.ISet> _627_recIdents; + while ((_621_i).Sign != -1) { + Dafny.ISequence _623_recursiveGen; + bool _624___v33; + bool _625_isErased; + Dafny.ISet> _626_recIdents; Dafny.ISequence _out188; bool _out189; bool _out190; Dafny.ISet> _out191; - DCOMP.COMP.GenExpr((_621_dims).Select(_622_i), selfIdent, @params, true, out _out188, out _out189, out _out190, out _out191); - _624_recursiveGen = _out188; - _625___v33 = _out189; - _626_isErased = _out190; - _627_recIdents = _out191; - if (!(_626_isErased)) { - _624_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _624_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr((_620_dims).Select(_621_i), selfIdent, @params, true, out _out188, out _out189, out _out190, out _out191); + _623_recursiveGen = _out188; + _624___v33 = _out189; + _625_isErased = _out190; + _626_recIdents = _out191; + if (!(_625_isErased)) { + _623_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _623_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::new(::std::cell::RefCell::new(vec!["), s), Dafny.Sequence.UnicodeFromString("; ::from(")), _624_recursiveGen), Dafny.Sequence.UnicodeFromString(").unwrap()]))")); - readIdents = Dafny.Set>.Union(readIdents, _627_recIdents); - _622_i = (_622_i) - (BigInteger.One); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::new(::std::cell::RefCell::new(vec!["), s), Dafny.Sequence.UnicodeFromString("; ::from(")), _623_recursiveGen), Dafny.Sequence.UnicodeFromString(").unwrap()]))")); + readIdents = Dafny.Set>.Union(readIdents, _626_recIdents); + _621_i = (_621_i) - (BigInteger.One); } isOwned = true; isErased = false; } } else if (_source20.is_DatatypeValue) { - Dafny.ISequence> _628___mcc_h18 = _source20.dtor_path; - Dafny.ISequence _629___mcc_h19 = _source20.dtor_typeArgs; - Dafny.ISequence _630___mcc_h20 = _source20.dtor_variant; - bool _631___mcc_h21 = _source20.dtor_isCo; - Dafny.ISequence<_System._ITuple2, DAST._IExpression>> _632___mcc_h22 = _source20.dtor_contents; - Dafny.ISequence<_System._ITuple2, DAST._IExpression>> _633_values = _632___mcc_h22; - bool _634_isCo = _631___mcc_h21; - Dafny.ISequence _635_variant = _630___mcc_h20; - Dafny.ISequence _636_typeArgs = _629___mcc_h19; - Dafny.ISequence> _637_path = _628___mcc_h18; + Dafny.ISequence> _627___mcc_h18 = _source20.dtor_path; + Dafny.ISequence _628___mcc_h19 = _source20.dtor_typeArgs; + Dafny.ISequence _629___mcc_h20 = _source20.dtor_variant; + bool _630___mcc_h21 = _source20.dtor_isCo; + Dafny.ISequence<_System._ITuple2, DAST._IExpression>> _631___mcc_h22 = _source20.dtor_contents; + Dafny.ISequence<_System._ITuple2, DAST._IExpression>> _632_values = _631___mcc_h22; + bool _633_isCo = _630___mcc_h21; + Dafny.ISequence _634_variant = _629___mcc_h20; + Dafny.ISequence _635_typeArgs = _628___mcc_h19; + Dafny.ISequence> _636_path = _627___mcc_h18; { - Dafny.ISequence _638_path; + Dafny.ISequence _637_path; Dafny.ISequence _out192; - _out192 = DCOMP.COMP.GenPath(_637_path); - _638_path = _out192; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::new("), _638_path), Dafny.Sequence.UnicodeFromString("::")); - if ((new BigInteger((_636_typeArgs).Count)).Sign == 1) { + _out192 = DCOMP.COMP.GenPath(_636_path); + _637_path = _out192; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::new("), _637_path), Dafny.Sequence.UnicodeFromString("::")); + if ((new BigInteger((_635_typeArgs).Count)).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("<")); - BigInteger _639_i; - _639_i = BigInteger.Zero; - while ((_639_i) < (new BigInteger((_636_typeArgs).Count))) { - if ((_639_i).Sign == 1) { + BigInteger _638_i; + _638_i = BigInteger.Zero; + while ((_638_i) < (new BigInteger((_635_typeArgs).Count))) { + if ((_638_i).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _640_typeString; + Dafny.ISequence _639_typeString; Dafny.ISequence _out193; - _out193 = DCOMP.COMP.GenType((_636_typeArgs).Select(_639_i), false, false); - _640_typeString = _out193; - s = Dafny.Sequence.Concat(s, _640_typeString); - _639_i = (_639_i) + (BigInteger.One); + _out193 = DCOMP.COMP.GenType((_635_typeArgs).Select(_638_i), false, false); + _639_typeString = _out193; + s = Dafny.Sequence.Concat(s, _639_typeString); + _638_i = (_638_i) + (BigInteger.One); } s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(">::")); } - s = Dafny.Sequence.Concat(s, DCOMP.__default.escapeIdent(_635_variant)); + s = Dafny.Sequence.Concat(s, DCOMP.__default.escapeIdent(_634_variant)); readIdents = Dafny.Set>.FromElements(); - BigInteger _641_i; - _641_i = BigInteger.Zero; + BigInteger _640_i; + _640_i = BigInteger.Zero; s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(" {")); - while ((_641_i) < (new BigInteger((_633_values).Count))) { - _System._ITuple2, DAST._IExpression> _let_tmp_rhs0 = (_633_values).Select(_641_i); - Dafny.ISequence _642_name = _let_tmp_rhs0.dtor__0; - DAST._IExpression _643_value = _let_tmp_rhs0.dtor__1; - if ((_641_i).Sign == 1) { + while ((_640_i) < (new BigInteger((_632_values).Count))) { + _System._ITuple2, DAST._IExpression> _let_tmp_rhs0 = (_632_values).Select(_640_i); + Dafny.ISequence _641_name = _let_tmp_rhs0.dtor__0; + DAST._IExpression _642_value = _let_tmp_rhs0.dtor__1; + if ((_640_i).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(", ")); } - if (_634_isCo) { - Dafny.ISequence _644_recursiveGen; - bool _645___v34; - bool _646_isErased; - Dafny.ISet> _647_recIdents; + if (_633_isCo) { + Dafny.ISequence _643_recursiveGen; + bool _644___v34; + bool _645_isErased; + Dafny.ISet> _646_recIdents; Dafny.ISequence _out194; bool _out195; bool _out196; Dafny.ISet> _out197; - DCOMP.COMP.GenExpr(_643_value, selfIdent, Dafny.Sequence>.FromElements(), true, out _out194, out _out195, out _out196, out _out197); - _644_recursiveGen = _out194; - _645___v34 = _out195; - _646_isErased = _out196; - _647_recIdents = _out197; - if (!(_646_isErased)) { - _644_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _644_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_642_value, selfIdent, Dafny.Sequence>.FromElements(), true, out _out194, out _out195, out _out196, out _out197); + _643_recursiveGen = _out194; + _644___v34 = _out195; + _645_isErased = _out196; + _646_recIdents = _out197; + if (!(_645_isErased)) { + _643_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _643_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); } - _644_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _644_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - readIdents = Dafny.Set>.Union(readIdents, _647_recIdents); - Dafny.ISequence _648_allReadCloned; - _648_allReadCloned = Dafny.Sequence.UnicodeFromString(""); - while (!(_647_recIdents).Equals(Dafny.Set>.FromElements())) { - Dafny.ISequence _649_next; - foreach (Dafny.ISequence _assign_such_that_0 in (_647_recIdents).Elements) { - _649_next = (Dafny.ISequence)_assign_such_that_0; - if ((_647_recIdents).Contains(_649_next)) { + _643_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _643_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + readIdents = Dafny.Set>.Union(readIdents, _646_recIdents); + Dafny.ISequence _647_allReadCloned; + _647_allReadCloned = Dafny.Sequence.UnicodeFromString(""); + while (!(_646_recIdents).Equals(Dafny.Set>.FromElements())) { + Dafny.ISequence _648_next; + foreach (Dafny.ISequence _assign_such_that_0 in (_646_recIdents).Elements) { + _648_next = (Dafny.ISequence)_assign_such_that_0; + if ((_646_recIdents).Contains(_648_next)) { goto after__ASSIGN_SUCH_THAT_0; } } - throw new System.Exception("assign-such-that search produced no value (line 1242)"); + throw new System.Exception("assign-such-that search produced no value (line 1233)"); after__ASSIGN_SUCH_THAT_0:; - _648_allReadCloned = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_648_allReadCloned, Dafny.Sequence.UnicodeFromString("let ")), DCOMP.__default.escapeIdent(_649_next)), Dafny.Sequence.UnicodeFromString(" = ")), DCOMP.__default.escapeIdent(_649_next)), Dafny.Sequence.UnicodeFromString(".clone();\n")); - _647_recIdents = Dafny.Set>.Difference(_647_recIdents, Dafny.Set>.FromElements(_649_next)); + _647_allReadCloned = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_647_allReadCloned, Dafny.Sequence.UnicodeFromString("let ")), DCOMP.__default.escapeIdent(_648_next)), Dafny.Sequence.UnicodeFromString(" = ")), DCOMP.__default.escapeIdent(_648_next)), Dafny.Sequence.UnicodeFromString(".clone();\n")); + _646_recIdents = Dafny.Set>.Difference(_646_recIdents, Dafny.Set>.FromElements(_648_next)); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, DCOMP.__default.escapeIdent(_642_name)), Dafny.Sequence.UnicodeFromString(": ::dafny_runtime::LazyFieldWrapper(::dafny_runtime::Lazy::new(::std::boxed::Box::new({\n")), _648_allReadCloned), Dafny.Sequence.UnicodeFromString("move || (")), _644_recursiveGen), Dafny.Sequence.UnicodeFromString(")})))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, DCOMP.__default.escapeIdent(_641_name)), Dafny.Sequence.UnicodeFromString(": ::dafny_runtime::LazyFieldWrapper(::dafny_runtime::Lazy::new(::std::boxed::Box::new({\n")), _647_allReadCloned), Dafny.Sequence.UnicodeFromString("move || (")), _643_recursiveGen), Dafny.Sequence.UnicodeFromString(")})))")); } else { - Dafny.ISequence _650_recursiveGen; - bool _651___v35; - bool _652_isErased; - Dafny.ISet> _653_recIdents; + Dafny.ISequence _649_recursiveGen; + bool _650___v35; + bool _651_isErased; + Dafny.ISet> _652_recIdents; Dafny.ISequence _out198; bool _out199; bool _out200; Dafny.ISet> _out201; - DCOMP.COMP.GenExpr(_643_value, selfIdent, @params, true, out _out198, out _out199, out _out200, out _out201); - _650_recursiveGen = _out198; - _651___v35 = _out199; - _652_isErased = _out200; - _653_recIdents = _out201; - if (!(_652_isErased)) { - _650_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _650_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_642_value, selfIdent, @params, true, out _out198, out _out199, out _out200, out _out201); + _649_recursiveGen = _out198; + _650___v35 = _out199; + _651_isErased = _out200; + _652_recIdents = _out201; + if (!(_651_isErased)) { + _649_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _649_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); } - _650_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _650_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, DCOMP.__default.escapeIdent(_642_name)), Dafny.Sequence.UnicodeFromString(": ")), Dafny.Sequence.UnicodeFromString("(")), _650_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - readIdents = Dafny.Set>.Union(readIdents, _653_recIdents); + _649_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _649_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, DCOMP.__default.escapeIdent(_641_name)), Dafny.Sequence.UnicodeFromString(": ")), Dafny.Sequence.UnicodeFromString("(")), _649_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + readIdents = Dafny.Set>.Union(readIdents, _652_recIdents); } - _641_i = (_641_i) + (BigInteger.One); + _640_i = (_640_i) + (BigInteger.One); } s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(" })")); isOwned = true; isErased = false; } } else if (_source20.is_Convert) { - DAST._IExpression _654___mcc_h23 = _source20.dtor_value; - DAST._IType _655___mcc_h24 = _source20.dtor_from; - DAST._IType _656___mcc_h25 = _source20.dtor_typ; - DAST._IType _657_toTpe = _656___mcc_h25; - DAST._IType _658_fromTpe = _655___mcc_h24; - DAST._IExpression _659_expr = _654___mcc_h23; + DAST._IExpression _653___mcc_h23 = _source20.dtor_value; + DAST._IType _654___mcc_h24 = _source20.dtor_from; + DAST._IType _655___mcc_h25 = _source20.dtor_typ; + DAST._IType _656_toTpe = _655___mcc_h25; + DAST._IType _657_fromTpe = _654___mcc_h24; + DAST._IExpression _658_expr = _653___mcc_h23; { - if (object.Equals(_658_fromTpe, _657_toTpe)) { - Dafny.ISequence _660_recursiveGen; - bool _661_recOwned; - bool _662_recErased; - Dafny.ISet> _663_recIdents; + if (object.Equals(_657_fromTpe, _656_toTpe)) { + Dafny.ISequence _659_recursiveGen; + bool _660_recOwned; + bool _661_recErased; + Dafny.ISet> _662_recIdents; Dafny.ISequence _out202; bool _out203; bool _out204; Dafny.ISet> _out205; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out202, out _out203, out _out204, out _out205); - _660_recursiveGen = _out202; - _661_recOwned = _out203; - _662_recErased = _out204; - _663_recIdents = _out205; - s = _660_recursiveGen; - isOwned = _661_recOwned; - isErased = _662_recErased; - readIdents = _663_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out202, out _out203, out _out204, out _out205); + _659_recursiveGen = _out202; + _660_recOwned = _out203; + _661_recErased = _out204; + _662_recIdents = _out205; + s = _659_recursiveGen; + isOwned = _660_recOwned; + isErased = _661_recErased; + readIdents = _662_recIdents; } else { - _System._ITuple2 _source26 = _System.Tuple2.create(_658_fromTpe, _657_toTpe); - DAST._IType _664___mcc_h305 = _source26.dtor__0; - DAST._IType _665___mcc_h306 = _source26.dtor__1; - DAST._IType _source27 = _664___mcc_h305; + _System._ITuple2 _source26 = _System.Tuple2.create(_657_fromTpe, _656_toTpe); + DAST._IType _663___mcc_h305 = _source26.dtor__0; + DAST._IType _664___mcc_h306 = _source26.dtor__1; + DAST._IType _source27 = _663___mcc_h305; if (_source27.is_Path) { - Dafny.ISequence> _666___mcc_h309 = _source27.dtor_Path_a0; - Dafny.ISequence _667___mcc_h310 = _source27.dtor_typeArgs; - DAST._IResolvedType _668___mcc_h311 = _source27.dtor_resolved; - DAST._IResolvedType _source28 = _668___mcc_h311; + Dafny.ISequence> _665___mcc_h309 = _source27.dtor_Path_a0; + Dafny.ISequence _666___mcc_h310 = _source27.dtor_typeArgs; + DAST._IResolvedType _667___mcc_h311 = _source27.dtor_resolved; + DAST._IResolvedType _source28 = _667___mcc_h311; if (_source28.is_Datatype) { - Dafny.ISequence> _669___mcc_h321 = _source28.dtor_path; - DAST._IType _source29 = _665___mcc_h306; + Dafny.ISequence> _668___mcc_h321 = _source28.dtor_path; + DAST._IType _source29 = _664___mcc_h306; if (_source29.is_Path) { - Dafny.ISequence> _670___mcc_h325 = _source29.dtor_Path_a0; - Dafny.ISequence _671___mcc_h326 = _source29.dtor_typeArgs; - DAST._IResolvedType _672___mcc_h327 = _source29.dtor_resolved; - DAST._IResolvedType _source30 = _672___mcc_h327; + Dafny.ISequence> _669___mcc_h325 = _source29.dtor_Path_a0; + Dafny.ISequence _670___mcc_h326 = _source29.dtor_typeArgs; + DAST._IResolvedType _671___mcc_h327 = _source29.dtor_resolved; + DAST._IResolvedType _source30 = _671___mcc_h327; if (_source30.is_Datatype) { - Dafny.ISequence> _673___mcc_h331 = _source30.dtor_path; + Dafny.ISequence> _672___mcc_h331 = _source30.dtor_path; { - Dafny.ISequence _674_recursiveGen; - bool _675_recOwned; - bool _676_recErased; - Dafny.ISet> _677_recIdents; + Dafny.ISequence _673_recursiveGen; + bool _674_recOwned; + bool _675_recErased; + Dafny.ISet> _676_recIdents; Dafny.ISequence _out206; bool _out207; bool _out208; Dafny.ISet> _out209; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out206, out _out207, out _out208, out _out209); - _674_recursiveGen = _out206; - _675_recOwned = _out207; - _676_recErased = _out208; - _677_recIdents = _out209; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _674_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _675_recOwned; - isErased = _676_recErased; - readIdents = _677_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out206, out _out207, out _out208, out _out209); + _673_recursiveGen = _out206; + _674_recOwned = _out207; + _675_recErased = _out208; + _676_recIdents = _out209; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _673_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _674_recOwned; + isErased = _675_recErased; + readIdents = _676_recIdents; } } else if (_source30.is_Trait) { - Dafny.ISequence> _678___mcc_h333 = _source30.dtor_path; + Dafny.ISequence> _677___mcc_h333 = _source30.dtor_path; { - Dafny.ISequence _679_recursiveGen; - bool _680_recOwned; - bool _681_recErased; - Dafny.ISet> _682_recIdents; + Dafny.ISequence _678_recursiveGen; + bool _679_recOwned; + bool _680_recErased; + Dafny.ISet> _681_recIdents; Dafny.ISequence _out210; bool _out211; bool _out212; Dafny.ISet> _out213; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out210, out _out211, out _out212, out _out213); - _679_recursiveGen = _out210; - _680_recOwned = _out211; - _681_recErased = _out212; - _682_recIdents = _out213; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _679_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _680_recOwned; - isErased = _681_recErased; - readIdents = _682_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out210, out _out211, out _out212, out _out213); + _678_recursiveGen = _out210; + _679_recOwned = _out211; + _680_recErased = _out212; + _681_recIdents = _out213; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _678_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _679_recOwned; + isErased = _680_recErased; + readIdents = _681_recIdents; } } else { - DAST._IType _683___mcc_h335 = _source30.dtor_Newtype_a0; - DAST._IType _684_b = _683___mcc_h335; + DAST._IType _682___mcc_h335 = _source30.dtor_Newtype_a0; + DAST._IType _683_b = _682___mcc_h335; { - if (object.Equals(_658_fromTpe, _684_b)) { - Dafny.ISequence _685_recursiveGen; - bool _686_recOwned; - bool _687_recErased; - Dafny.ISet> _688_recIdents; + if (object.Equals(_657_fromTpe, _683_b)) { + Dafny.ISequence _684_recursiveGen; + bool _685_recOwned; + bool _686_recErased; + Dafny.ISet> _687_recIdents; Dafny.ISequence _out214; bool _out215; bool _out216; Dafny.ISet> _out217; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out214, out _out215, out _out216, out _out217); - _685_recursiveGen = _out214; - _686_recOwned = _out215; - _687_recErased = _out216; - _688_recIdents = _out217; - Dafny.ISequence _689_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out214, out _out215, out _out216, out _out217); + _684_recursiveGen = _out214; + _685_recOwned = _out215; + _686_recErased = _out216; + _687_recIdents = _out217; + Dafny.ISequence _688_rhsType; Dafny.ISequence _out218; - _out218 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _689_rhsType = _out218; - Dafny.ISequence _690_uneraseFn; - _690_uneraseFn = ((_686_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _689_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _690_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _685_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _686_recOwned; + _out218 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _688_rhsType = _out218; + Dafny.ISequence _689_uneraseFn; + _689_uneraseFn = ((_685_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _688_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _689_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _684_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _685_recOwned; isErased = false; - readIdents = _688_recIdents; + readIdents = _687_recIdents; } else { Dafny.ISequence _out219; bool _out220; bool _out221; Dafny.ISet> _out222; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _684_b), _684_b, _657_toTpe), selfIdent, @params, mustOwn, out _out219, out _out220, out _out221, out _out222); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _683_b), _683_b, _656_toTpe), selfIdent, @params, mustOwn, out _out219, out _out220, out _out221, out _out222); s = _out219; isOwned = _out220; isErased = _out221; @@ -8139,327 +8108,327 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _692_recursiveGen; - bool _693_recOwned; - bool _694_recErased; - Dafny.ISet> _695_recIdents; + Dafny.ISequence _691_recursiveGen; + bool _692_recOwned; + bool _693_recErased; + Dafny.ISet> _694_recIdents; Dafny.ISequence _out223; bool _out224; bool _out225; Dafny.ISet> _out226; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out223, out _out224, out _out225, out _out226); - _692_recursiveGen = _out223; - _693_recOwned = _out224; - _694_recErased = _out225; - _695_recIdents = _out226; - if (!(_693_recOwned)) { - _692_recursiveGen = Dafny.Sequence.Concat(_692_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out223, out _out224, out _out225, out _out226); + _691_recursiveGen = _out223; + _692_recOwned = _out224; + _693_recErased = _out225; + _694_recIdents = _out226; + if (!(_692_recOwned)) { + _691_recursiveGen = Dafny.Sequence.Concat(_691_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _692_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _691_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _694_recErased; - readIdents = _695_recIdents; + isErased = _693_recErased; + readIdents = _694_recIdents; } } else if (_source29.is_Tuple) { - Dafny.ISequence _696___mcc_h339 = _source29.dtor_Tuple_a0; + Dafny.ISequence _695___mcc_h339 = _source29.dtor_Tuple_a0; { - Dafny.ISequence _697_recursiveGen; - bool _698_recOwned; - bool _699_recErased; - Dafny.ISet> _700_recIdents; + Dafny.ISequence _696_recursiveGen; + bool _697_recOwned; + bool _698_recErased; + Dafny.ISet> _699_recIdents; Dafny.ISequence _out227; bool _out228; bool _out229; Dafny.ISet> _out230; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out227, out _out228, out _out229, out _out230); - _697_recursiveGen = _out227; - _698_recOwned = _out228; - _699_recErased = _out229; - _700_recIdents = _out230; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _697_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _698_recOwned; - isErased = _699_recErased; - readIdents = _700_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out227, out _out228, out _out229, out _out230); + _696_recursiveGen = _out227; + _697_recOwned = _out228; + _698_recErased = _out229; + _699_recIdents = _out230; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _696_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _697_recOwned; + isErased = _698_recErased; + readIdents = _699_recIdents; } } else if (_source29.is_Array) { - DAST._IType _701___mcc_h341 = _source29.dtor_element; - BigInteger _702___mcc_h342 = _source29.dtor_dims; + DAST._IType _700___mcc_h341 = _source29.dtor_element; + BigInteger _701___mcc_h342 = _source29.dtor_dims; { - Dafny.ISequence _703_recursiveGen; - bool _704_recOwned; - bool _705_recErased; - Dafny.ISet> _706_recIdents; + Dafny.ISequence _702_recursiveGen; + bool _703_recOwned; + bool _704_recErased; + Dafny.ISet> _705_recIdents; Dafny.ISequence _out231; bool _out232; bool _out233; Dafny.ISet> _out234; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out231, out _out232, out _out233, out _out234); - _703_recursiveGen = _out231; - _704_recOwned = _out232; - _705_recErased = _out233; - _706_recIdents = _out234; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _703_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _704_recOwned; - isErased = _705_recErased; - readIdents = _706_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out231, out _out232, out _out233, out _out234); + _702_recursiveGen = _out231; + _703_recOwned = _out232; + _704_recErased = _out233; + _705_recIdents = _out234; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _702_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _703_recOwned; + isErased = _704_recErased; + readIdents = _705_recIdents; } } else if (_source29.is_Seq) { - DAST._IType _707___mcc_h345 = _source29.dtor_element; + DAST._IType _706___mcc_h345 = _source29.dtor_element; { - Dafny.ISequence _708_recursiveGen; - bool _709_recOwned; - bool _710_recErased; - Dafny.ISet> _711_recIdents; + Dafny.ISequence _707_recursiveGen; + bool _708_recOwned; + bool _709_recErased; + Dafny.ISet> _710_recIdents; Dafny.ISequence _out235; bool _out236; bool _out237; Dafny.ISet> _out238; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out235, out _out236, out _out237, out _out238); - _708_recursiveGen = _out235; - _709_recOwned = _out236; - _710_recErased = _out237; - _711_recIdents = _out238; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _708_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _709_recOwned; - isErased = _710_recErased; - readIdents = _711_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out235, out _out236, out _out237, out _out238); + _707_recursiveGen = _out235; + _708_recOwned = _out236; + _709_recErased = _out237; + _710_recIdents = _out238; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _707_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _708_recOwned; + isErased = _709_recErased; + readIdents = _710_recIdents; } } else if (_source29.is_Set) { - DAST._IType _712___mcc_h347 = _source29.dtor_element; + DAST._IType _711___mcc_h347 = _source29.dtor_element; { - Dafny.ISequence _713_recursiveGen; - bool _714_recOwned; - bool _715_recErased; - Dafny.ISet> _716_recIdents; + Dafny.ISequence _712_recursiveGen; + bool _713_recOwned; + bool _714_recErased; + Dafny.ISet> _715_recIdents; Dafny.ISequence _out239; bool _out240; bool _out241; Dafny.ISet> _out242; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out239, out _out240, out _out241, out _out242); - _713_recursiveGen = _out239; - _714_recOwned = _out240; - _715_recErased = _out241; - _716_recIdents = _out242; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _713_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _714_recOwned; - isErased = _715_recErased; - readIdents = _716_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out239, out _out240, out _out241, out _out242); + _712_recursiveGen = _out239; + _713_recOwned = _out240; + _714_recErased = _out241; + _715_recIdents = _out242; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _712_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _713_recOwned; + isErased = _714_recErased; + readIdents = _715_recIdents; } } else if (_source29.is_Multiset) { - DAST._IType _717___mcc_h349 = _source29.dtor_element; + DAST._IType _716___mcc_h349 = _source29.dtor_element; { - Dafny.ISequence _718_recursiveGen; - bool _719_recOwned; - bool _720_recErased; - Dafny.ISet> _721_recIdents; + Dafny.ISequence _717_recursiveGen; + bool _718_recOwned; + bool _719_recErased; + Dafny.ISet> _720_recIdents; Dafny.ISequence _out243; bool _out244; bool _out245; Dafny.ISet> _out246; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out243, out _out244, out _out245, out _out246); - _718_recursiveGen = _out243; - _719_recOwned = _out244; - _720_recErased = _out245; - _721_recIdents = _out246; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _718_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _719_recOwned; - isErased = _720_recErased; - readIdents = _721_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out243, out _out244, out _out245, out _out246); + _717_recursiveGen = _out243; + _718_recOwned = _out244; + _719_recErased = _out245; + _720_recIdents = _out246; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _717_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _718_recOwned; + isErased = _719_recErased; + readIdents = _720_recIdents; } } else if (_source29.is_Map) { - DAST._IType _722___mcc_h351 = _source29.dtor_key; - DAST._IType _723___mcc_h352 = _source29.dtor_value; + DAST._IType _721___mcc_h351 = _source29.dtor_key; + DAST._IType _722___mcc_h352 = _source29.dtor_value; { - Dafny.ISequence _724_recursiveGen; - bool _725_recOwned; - bool _726_recErased; - Dafny.ISet> _727_recIdents; + Dafny.ISequence _723_recursiveGen; + bool _724_recOwned; + bool _725_recErased; + Dafny.ISet> _726_recIdents; Dafny.ISequence _out247; bool _out248; bool _out249; Dafny.ISet> _out250; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out247, out _out248, out _out249, out _out250); - _724_recursiveGen = _out247; - _725_recOwned = _out248; - _726_recErased = _out249; - _727_recIdents = _out250; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _724_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _725_recOwned; - isErased = _726_recErased; - readIdents = _727_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out247, out _out248, out _out249, out _out250); + _723_recursiveGen = _out247; + _724_recOwned = _out248; + _725_recErased = _out249; + _726_recIdents = _out250; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _723_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _724_recOwned; + isErased = _725_recErased; + readIdents = _726_recIdents; } } else if (_source29.is_Arrow) { - Dafny.ISequence _728___mcc_h355 = _source29.dtor_args; - DAST._IType _729___mcc_h356 = _source29.dtor_result; + Dafny.ISequence _727___mcc_h355 = _source29.dtor_args; + DAST._IType _728___mcc_h356 = _source29.dtor_result; { - Dafny.ISequence _730_recursiveGen; - bool _731_recOwned; - bool _732_recErased; - Dafny.ISet> _733_recIdents; + Dafny.ISequence _729_recursiveGen; + bool _730_recOwned; + bool _731_recErased; + Dafny.ISet> _732_recIdents; Dafny.ISequence _out251; bool _out252; bool _out253; Dafny.ISet> _out254; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out251, out _out252, out _out253, out _out254); - _730_recursiveGen = _out251; - _731_recOwned = _out252; - _732_recErased = _out253; - _733_recIdents = _out254; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _730_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _731_recOwned; - isErased = _732_recErased; - readIdents = _733_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out251, out _out252, out _out253, out _out254); + _729_recursiveGen = _out251; + _730_recOwned = _out252; + _731_recErased = _out253; + _732_recIdents = _out254; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _729_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _730_recOwned; + isErased = _731_recErased; + readIdents = _732_recIdents; } } else if (_source29.is_Primitive) { - DAST._IPrimitive _734___mcc_h359 = _source29.dtor_Primitive_a0; + DAST._IPrimitive _733___mcc_h359 = _source29.dtor_Primitive_a0; { - Dafny.ISequence _735_recursiveGen; - bool _736_recOwned; - bool _737_recErased; - Dafny.ISet> _738_recIdents; + Dafny.ISequence _734_recursiveGen; + bool _735_recOwned; + bool _736_recErased; + Dafny.ISet> _737_recIdents; Dafny.ISequence _out255; bool _out256; bool _out257; Dafny.ISet> _out258; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out255, out _out256, out _out257, out _out258); - _735_recursiveGen = _out255; - _736_recOwned = _out256; - _737_recErased = _out257; - _738_recIdents = _out258; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _735_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _736_recOwned; - isErased = _737_recErased; - readIdents = _738_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out255, out _out256, out _out257, out _out258); + _734_recursiveGen = _out255; + _735_recOwned = _out256; + _736_recErased = _out257; + _737_recIdents = _out258; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _734_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _735_recOwned; + isErased = _736_recErased; + readIdents = _737_recIdents; } } else if (_source29.is_Passthrough) { - Dafny.ISequence _739___mcc_h361 = _source29.dtor_Passthrough_a0; + Dafny.ISequence _738___mcc_h361 = _source29.dtor_Passthrough_a0; { - Dafny.ISequence _740_recursiveGen; - bool _741_recOwned; - bool _742_recErased; - Dafny.ISet> _743_recIdents; + Dafny.ISequence _739_recursiveGen; + bool _740_recOwned; + bool _741_recErased; + Dafny.ISet> _742_recIdents; Dafny.ISequence _out259; bool _out260; bool _out261; Dafny.ISet> _out262; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out259, out _out260, out _out261, out _out262); - _740_recursiveGen = _out259; - _741_recOwned = _out260; - _742_recErased = _out261; - _743_recIdents = _out262; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _740_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _741_recOwned; - isErased = _742_recErased; - readIdents = _743_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out259, out _out260, out _out261, out _out262); + _739_recursiveGen = _out259; + _740_recOwned = _out260; + _741_recErased = _out261; + _742_recIdents = _out262; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _739_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _740_recOwned; + isErased = _741_recErased; + readIdents = _742_recIdents; } } else { - Dafny.ISequence _744___mcc_h363 = _source29.dtor_TypeArg_a0; + Dafny.ISequence _743___mcc_h363 = _source29.dtor_TypeArg_a0; { - Dafny.ISequence _745_recursiveGen; - bool _746_recOwned; - bool _747_recErased; - Dafny.ISet> _748_recIdents; + Dafny.ISequence _744_recursiveGen; + bool _745_recOwned; + bool _746_recErased; + Dafny.ISet> _747_recIdents; Dafny.ISequence _out263; bool _out264; bool _out265; Dafny.ISet> _out266; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out263, out _out264, out _out265, out _out266); - _745_recursiveGen = _out263; - _746_recOwned = _out264; - _747_recErased = _out265; - _748_recIdents = _out266; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _745_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _746_recOwned; - isErased = _747_recErased; - readIdents = _748_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out263, out _out264, out _out265, out _out266); + _744_recursiveGen = _out263; + _745_recOwned = _out264; + _746_recErased = _out265; + _747_recIdents = _out266; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _744_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _745_recOwned; + isErased = _746_recErased; + readIdents = _747_recIdents; } } } else if (_source28.is_Trait) { - Dafny.ISequence> _749___mcc_h365 = _source28.dtor_path; - DAST._IType _source31 = _665___mcc_h306; + Dafny.ISequence> _748___mcc_h365 = _source28.dtor_path; + DAST._IType _source31 = _664___mcc_h306; if (_source31.is_Path) { - Dafny.ISequence> _750___mcc_h369 = _source31.dtor_Path_a0; - Dafny.ISequence _751___mcc_h370 = _source31.dtor_typeArgs; - DAST._IResolvedType _752___mcc_h371 = _source31.dtor_resolved; - DAST._IResolvedType _source32 = _752___mcc_h371; + Dafny.ISequence> _749___mcc_h369 = _source31.dtor_Path_a0; + Dafny.ISequence _750___mcc_h370 = _source31.dtor_typeArgs; + DAST._IResolvedType _751___mcc_h371 = _source31.dtor_resolved; + DAST._IResolvedType _source32 = _751___mcc_h371; if (_source32.is_Datatype) { - Dafny.ISequence> _753___mcc_h375 = _source32.dtor_path; + Dafny.ISequence> _752___mcc_h375 = _source32.dtor_path; { - Dafny.ISequence _754_recursiveGen; - bool _755_recOwned; - bool _756_recErased; - Dafny.ISet> _757_recIdents; + Dafny.ISequence _753_recursiveGen; + bool _754_recOwned; + bool _755_recErased; + Dafny.ISet> _756_recIdents; Dafny.ISequence _out267; bool _out268; bool _out269; Dafny.ISet> _out270; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out267, out _out268, out _out269, out _out270); - _754_recursiveGen = _out267; - _755_recOwned = _out268; - _756_recErased = _out269; - _757_recIdents = _out270; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _754_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _755_recOwned; - isErased = _756_recErased; - readIdents = _757_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out267, out _out268, out _out269, out _out270); + _753_recursiveGen = _out267; + _754_recOwned = _out268; + _755_recErased = _out269; + _756_recIdents = _out270; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _753_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _754_recOwned; + isErased = _755_recErased; + readIdents = _756_recIdents; } } else if (_source32.is_Trait) { - Dafny.ISequence> _758___mcc_h377 = _source32.dtor_path; + Dafny.ISequence> _757___mcc_h377 = _source32.dtor_path; { - Dafny.ISequence _759_recursiveGen; - bool _760_recOwned; - bool _761_recErased; - Dafny.ISet> _762_recIdents; + Dafny.ISequence _758_recursiveGen; + bool _759_recOwned; + bool _760_recErased; + Dafny.ISet> _761_recIdents; Dafny.ISequence _out271; bool _out272; bool _out273; Dafny.ISet> _out274; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out271, out _out272, out _out273, out _out274); - _759_recursiveGen = _out271; - _760_recOwned = _out272; - _761_recErased = _out273; - _762_recIdents = _out274; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _759_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _760_recOwned; - isErased = _761_recErased; - readIdents = _762_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out271, out _out272, out _out273, out _out274); + _758_recursiveGen = _out271; + _759_recOwned = _out272; + _760_recErased = _out273; + _761_recIdents = _out274; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _758_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _759_recOwned; + isErased = _760_recErased; + readIdents = _761_recIdents; } } else { - DAST._IType _763___mcc_h379 = _source32.dtor_Newtype_a0; - DAST._IType _764_b = _763___mcc_h379; + DAST._IType _762___mcc_h379 = _source32.dtor_Newtype_a0; + DAST._IType _763_b = _762___mcc_h379; { - if (object.Equals(_658_fromTpe, _764_b)) { - Dafny.ISequence _765_recursiveGen; - bool _766_recOwned; - bool _767_recErased; - Dafny.ISet> _768_recIdents; + if (object.Equals(_657_fromTpe, _763_b)) { + Dafny.ISequence _764_recursiveGen; + bool _765_recOwned; + bool _766_recErased; + Dafny.ISet> _767_recIdents; Dafny.ISequence _out275; bool _out276; bool _out277; Dafny.ISet> _out278; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out275, out _out276, out _out277, out _out278); - _765_recursiveGen = _out275; - _766_recOwned = _out276; - _767_recErased = _out277; - _768_recIdents = _out278; - Dafny.ISequence _769_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out275, out _out276, out _out277, out _out278); + _764_recursiveGen = _out275; + _765_recOwned = _out276; + _766_recErased = _out277; + _767_recIdents = _out278; + Dafny.ISequence _768_rhsType; Dafny.ISequence _out279; - _out279 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _769_rhsType = _out279; - Dafny.ISequence _770_uneraseFn; - _770_uneraseFn = ((_766_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _769_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _770_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _765_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _766_recOwned; + _out279 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _768_rhsType = _out279; + Dafny.ISequence _769_uneraseFn; + _769_uneraseFn = ((_765_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _768_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _769_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _764_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _765_recOwned; isErased = false; - readIdents = _768_recIdents; + readIdents = _767_recIdents; } else { Dafny.ISequence _out280; bool _out281; bool _out282; Dafny.ISet> _out283; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _764_b), _764_b, _657_toTpe), selfIdent, @params, mustOwn, out _out280, out _out281, out _out282, out _out283); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _763_b), _763_b, _656_toTpe), selfIdent, @params, mustOwn, out _out280, out _out281, out _out282, out _out283); s = _out280; isOwned = _out281; isErased = _out282; @@ -8468,281 +8437,281 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _772_recursiveGen; - bool _773_recOwned; - bool _774_recErased; - Dafny.ISet> _775_recIdents; + Dafny.ISequence _771_recursiveGen; + bool _772_recOwned; + bool _773_recErased; + Dafny.ISet> _774_recIdents; Dafny.ISequence _out284; bool _out285; bool _out286; Dafny.ISet> _out287; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out284, out _out285, out _out286, out _out287); - _772_recursiveGen = _out284; - _773_recOwned = _out285; - _774_recErased = _out286; - _775_recIdents = _out287; - if (!(_773_recOwned)) { - _772_recursiveGen = Dafny.Sequence.Concat(_772_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out284, out _out285, out _out286, out _out287); + _771_recursiveGen = _out284; + _772_recOwned = _out285; + _773_recErased = _out286; + _774_recIdents = _out287; + if (!(_772_recOwned)) { + _771_recursiveGen = Dafny.Sequence.Concat(_771_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _772_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _771_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _774_recErased; - readIdents = _775_recIdents; + isErased = _773_recErased; + readIdents = _774_recIdents; } } else if (_source31.is_Tuple) { - Dafny.ISequence _776___mcc_h383 = _source31.dtor_Tuple_a0; + Dafny.ISequence _775___mcc_h383 = _source31.dtor_Tuple_a0; { - Dafny.ISequence _777_recursiveGen; - bool _778_recOwned; - bool _779_recErased; - Dafny.ISet> _780_recIdents; + Dafny.ISequence _776_recursiveGen; + bool _777_recOwned; + bool _778_recErased; + Dafny.ISet> _779_recIdents; Dafny.ISequence _out288; bool _out289; bool _out290; Dafny.ISet> _out291; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out288, out _out289, out _out290, out _out291); - _777_recursiveGen = _out288; - _778_recOwned = _out289; - _779_recErased = _out290; - _780_recIdents = _out291; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _777_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _778_recOwned; - isErased = _779_recErased; - readIdents = _780_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out288, out _out289, out _out290, out _out291); + _776_recursiveGen = _out288; + _777_recOwned = _out289; + _778_recErased = _out290; + _779_recIdents = _out291; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _776_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _777_recOwned; + isErased = _778_recErased; + readIdents = _779_recIdents; } } else if (_source31.is_Array) { - DAST._IType _781___mcc_h385 = _source31.dtor_element; - BigInteger _782___mcc_h386 = _source31.dtor_dims; + DAST._IType _780___mcc_h385 = _source31.dtor_element; + BigInteger _781___mcc_h386 = _source31.dtor_dims; { - Dafny.ISequence _783_recursiveGen; - bool _784_recOwned; - bool _785_recErased; - Dafny.ISet> _786_recIdents; + Dafny.ISequence _782_recursiveGen; + bool _783_recOwned; + bool _784_recErased; + Dafny.ISet> _785_recIdents; Dafny.ISequence _out292; bool _out293; bool _out294; Dafny.ISet> _out295; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out292, out _out293, out _out294, out _out295); - _783_recursiveGen = _out292; - _784_recOwned = _out293; - _785_recErased = _out294; - _786_recIdents = _out295; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _783_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _784_recOwned; - isErased = _785_recErased; - readIdents = _786_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out292, out _out293, out _out294, out _out295); + _782_recursiveGen = _out292; + _783_recOwned = _out293; + _784_recErased = _out294; + _785_recIdents = _out295; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _782_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _783_recOwned; + isErased = _784_recErased; + readIdents = _785_recIdents; } } else if (_source31.is_Seq) { - DAST._IType _787___mcc_h389 = _source31.dtor_element; + DAST._IType _786___mcc_h389 = _source31.dtor_element; { - Dafny.ISequence _788_recursiveGen; - bool _789_recOwned; - bool _790_recErased; - Dafny.ISet> _791_recIdents; + Dafny.ISequence _787_recursiveGen; + bool _788_recOwned; + bool _789_recErased; + Dafny.ISet> _790_recIdents; Dafny.ISequence _out296; bool _out297; bool _out298; Dafny.ISet> _out299; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out296, out _out297, out _out298, out _out299); - _788_recursiveGen = _out296; - _789_recOwned = _out297; - _790_recErased = _out298; - _791_recIdents = _out299; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _788_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _789_recOwned; - isErased = _790_recErased; - readIdents = _791_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out296, out _out297, out _out298, out _out299); + _787_recursiveGen = _out296; + _788_recOwned = _out297; + _789_recErased = _out298; + _790_recIdents = _out299; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _787_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _788_recOwned; + isErased = _789_recErased; + readIdents = _790_recIdents; } } else if (_source31.is_Set) { - DAST._IType _792___mcc_h391 = _source31.dtor_element; + DAST._IType _791___mcc_h391 = _source31.dtor_element; { - Dafny.ISequence _793_recursiveGen; - bool _794_recOwned; - bool _795_recErased; - Dafny.ISet> _796_recIdents; + Dafny.ISequence _792_recursiveGen; + bool _793_recOwned; + bool _794_recErased; + Dafny.ISet> _795_recIdents; Dafny.ISequence _out300; bool _out301; bool _out302; Dafny.ISet> _out303; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out300, out _out301, out _out302, out _out303); - _793_recursiveGen = _out300; - _794_recOwned = _out301; - _795_recErased = _out302; - _796_recIdents = _out303; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _793_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _794_recOwned; - isErased = _795_recErased; - readIdents = _796_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out300, out _out301, out _out302, out _out303); + _792_recursiveGen = _out300; + _793_recOwned = _out301; + _794_recErased = _out302; + _795_recIdents = _out303; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _792_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _793_recOwned; + isErased = _794_recErased; + readIdents = _795_recIdents; } } else if (_source31.is_Multiset) { - DAST._IType _797___mcc_h393 = _source31.dtor_element; + DAST._IType _796___mcc_h393 = _source31.dtor_element; { - Dafny.ISequence _798_recursiveGen; - bool _799_recOwned; - bool _800_recErased; - Dafny.ISet> _801_recIdents; + Dafny.ISequence _797_recursiveGen; + bool _798_recOwned; + bool _799_recErased; + Dafny.ISet> _800_recIdents; Dafny.ISequence _out304; bool _out305; bool _out306; Dafny.ISet> _out307; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out304, out _out305, out _out306, out _out307); - _798_recursiveGen = _out304; - _799_recOwned = _out305; - _800_recErased = _out306; - _801_recIdents = _out307; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _798_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _799_recOwned; - isErased = _800_recErased; - readIdents = _801_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out304, out _out305, out _out306, out _out307); + _797_recursiveGen = _out304; + _798_recOwned = _out305; + _799_recErased = _out306; + _800_recIdents = _out307; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _797_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _798_recOwned; + isErased = _799_recErased; + readIdents = _800_recIdents; } } else if (_source31.is_Map) { - DAST._IType _802___mcc_h395 = _source31.dtor_key; - DAST._IType _803___mcc_h396 = _source31.dtor_value; + DAST._IType _801___mcc_h395 = _source31.dtor_key; + DAST._IType _802___mcc_h396 = _source31.dtor_value; { - Dafny.ISequence _804_recursiveGen; - bool _805_recOwned; - bool _806_recErased; - Dafny.ISet> _807_recIdents; + Dafny.ISequence _803_recursiveGen; + bool _804_recOwned; + bool _805_recErased; + Dafny.ISet> _806_recIdents; Dafny.ISequence _out308; bool _out309; bool _out310; Dafny.ISet> _out311; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out308, out _out309, out _out310, out _out311); - _804_recursiveGen = _out308; - _805_recOwned = _out309; - _806_recErased = _out310; - _807_recIdents = _out311; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _804_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _805_recOwned; - isErased = _806_recErased; - readIdents = _807_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out308, out _out309, out _out310, out _out311); + _803_recursiveGen = _out308; + _804_recOwned = _out309; + _805_recErased = _out310; + _806_recIdents = _out311; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _803_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _804_recOwned; + isErased = _805_recErased; + readIdents = _806_recIdents; } } else if (_source31.is_Arrow) { - Dafny.ISequence _808___mcc_h399 = _source31.dtor_args; - DAST._IType _809___mcc_h400 = _source31.dtor_result; + Dafny.ISequence _807___mcc_h399 = _source31.dtor_args; + DAST._IType _808___mcc_h400 = _source31.dtor_result; { - Dafny.ISequence _810_recursiveGen; - bool _811_recOwned; - bool _812_recErased; - Dafny.ISet> _813_recIdents; + Dafny.ISequence _809_recursiveGen; + bool _810_recOwned; + bool _811_recErased; + Dafny.ISet> _812_recIdents; Dafny.ISequence _out312; bool _out313; bool _out314; Dafny.ISet> _out315; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out312, out _out313, out _out314, out _out315); - _810_recursiveGen = _out312; - _811_recOwned = _out313; - _812_recErased = _out314; - _813_recIdents = _out315; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _810_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _811_recOwned; - isErased = _812_recErased; - readIdents = _813_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out312, out _out313, out _out314, out _out315); + _809_recursiveGen = _out312; + _810_recOwned = _out313; + _811_recErased = _out314; + _812_recIdents = _out315; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _809_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _810_recOwned; + isErased = _811_recErased; + readIdents = _812_recIdents; } } else if (_source31.is_Primitive) { - DAST._IPrimitive _814___mcc_h403 = _source31.dtor_Primitive_a0; + DAST._IPrimitive _813___mcc_h403 = _source31.dtor_Primitive_a0; { - Dafny.ISequence _815_recursiveGen; - bool _816_recOwned; - bool _817_recErased; - Dafny.ISet> _818_recIdents; + Dafny.ISequence _814_recursiveGen; + bool _815_recOwned; + bool _816_recErased; + Dafny.ISet> _817_recIdents; Dafny.ISequence _out316; bool _out317; bool _out318; Dafny.ISet> _out319; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out316, out _out317, out _out318, out _out319); - _815_recursiveGen = _out316; - _816_recOwned = _out317; - _817_recErased = _out318; - _818_recIdents = _out319; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _815_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _816_recOwned; - isErased = _817_recErased; - readIdents = _818_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out316, out _out317, out _out318, out _out319); + _814_recursiveGen = _out316; + _815_recOwned = _out317; + _816_recErased = _out318; + _817_recIdents = _out319; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _814_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _815_recOwned; + isErased = _816_recErased; + readIdents = _817_recIdents; } } else if (_source31.is_Passthrough) { - Dafny.ISequence _819___mcc_h405 = _source31.dtor_Passthrough_a0; + Dafny.ISequence _818___mcc_h405 = _source31.dtor_Passthrough_a0; { - Dafny.ISequence _820_recursiveGen; - bool _821_recOwned; - bool _822_recErased; - Dafny.ISet> _823_recIdents; + Dafny.ISequence _819_recursiveGen; + bool _820_recOwned; + bool _821_recErased; + Dafny.ISet> _822_recIdents; Dafny.ISequence _out320; bool _out321; bool _out322; Dafny.ISet> _out323; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out320, out _out321, out _out322, out _out323); - _820_recursiveGen = _out320; - _821_recOwned = _out321; - _822_recErased = _out322; - _823_recIdents = _out323; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _820_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _821_recOwned; - isErased = _822_recErased; - readIdents = _823_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out320, out _out321, out _out322, out _out323); + _819_recursiveGen = _out320; + _820_recOwned = _out321; + _821_recErased = _out322; + _822_recIdents = _out323; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _819_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _820_recOwned; + isErased = _821_recErased; + readIdents = _822_recIdents; } } else { - Dafny.ISequence _824___mcc_h407 = _source31.dtor_TypeArg_a0; + Dafny.ISequence _823___mcc_h407 = _source31.dtor_TypeArg_a0; { - Dafny.ISequence _825_recursiveGen; - bool _826_recOwned; - bool _827_recErased; - Dafny.ISet> _828_recIdents; + Dafny.ISequence _824_recursiveGen; + bool _825_recOwned; + bool _826_recErased; + Dafny.ISet> _827_recIdents; Dafny.ISequence _out324; bool _out325; bool _out326; Dafny.ISet> _out327; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out324, out _out325, out _out326, out _out327); - _825_recursiveGen = _out324; - _826_recOwned = _out325; - _827_recErased = _out326; - _828_recIdents = _out327; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _825_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _826_recOwned; - isErased = _827_recErased; - readIdents = _828_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out324, out _out325, out _out326, out _out327); + _824_recursiveGen = _out324; + _825_recOwned = _out325; + _826_recErased = _out326; + _827_recIdents = _out327; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _824_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _825_recOwned; + isErased = _826_recErased; + readIdents = _827_recIdents; } } } else { - DAST._IType _829___mcc_h409 = _source28.dtor_Newtype_a0; - DAST._IType _source33 = _665___mcc_h306; + DAST._IType _828___mcc_h409 = _source28.dtor_Newtype_a0; + DAST._IType _source33 = _664___mcc_h306; if (_source33.is_Path) { - Dafny.ISequence> _830___mcc_h413 = _source33.dtor_Path_a0; - Dafny.ISequence _831___mcc_h414 = _source33.dtor_typeArgs; - DAST._IResolvedType _832___mcc_h415 = _source33.dtor_resolved; - DAST._IResolvedType _source34 = _832___mcc_h415; + Dafny.ISequence> _829___mcc_h413 = _source33.dtor_Path_a0; + Dafny.ISequence _830___mcc_h414 = _source33.dtor_typeArgs; + DAST._IResolvedType _831___mcc_h415 = _source33.dtor_resolved; + DAST._IResolvedType _source34 = _831___mcc_h415; if (_source34.is_Datatype) { - Dafny.ISequence> _833___mcc_h422 = _source34.dtor_path; - DAST._IType _834_b = _829___mcc_h409; + Dafny.ISequence> _832___mcc_h422 = _source34.dtor_path; + DAST._IType _833_b = _828___mcc_h409; { - if (object.Equals(_834_b, _657_toTpe)) { - Dafny.ISequence _835_recursiveGen; - bool _836_recOwned; - bool _837_recErased; - Dafny.ISet> _838_recIdents; + if (object.Equals(_833_b, _656_toTpe)) { + Dafny.ISequence _834_recursiveGen; + bool _835_recOwned; + bool _836_recErased; + Dafny.ISet> _837_recIdents; Dafny.ISequence _out328; bool _out329; bool _out330; Dafny.ISet> _out331; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out328, out _out329, out _out330, out _out331); - _835_recursiveGen = _out328; - _836_recOwned = _out329; - _837_recErased = _out330; - _838_recIdents = _out331; - Dafny.ISequence _839_uneraseFn; - _839_uneraseFn = ((_836_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _839_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _835_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _836_recOwned; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out328, out _out329, out _out330, out _out331); + _834_recursiveGen = _out328; + _835_recOwned = _out329; + _836_recErased = _out330; + _837_recIdents = _out331; + Dafny.ISequence _838_uneraseFn; + _838_uneraseFn = ((_835_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _838_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _834_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _835_recOwned; isErased = true; - readIdents = _838_recIdents; + readIdents = _837_recIdents; } else { Dafny.ISequence _out332; bool _out333; bool _out334; Dafny.ISet> _out335; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _834_b), _834_b, _657_toTpe), selfIdent, @params, mustOwn, out _out332, out _out333, out _out334, out _out335); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _833_b), _833_b, _656_toTpe), selfIdent, @params, mustOwn, out _out332, out _out333, out _out334, out _out335); s = _out332; isOwned = _out333; isErased = _out334; @@ -8750,35 +8719,35 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional> _840___mcc_h425 = _source34.dtor_path; - DAST._IType _841_b = _829___mcc_h409; + Dafny.ISequence> _839___mcc_h425 = _source34.dtor_path; + DAST._IType _840_b = _828___mcc_h409; { - if (object.Equals(_841_b, _657_toTpe)) { - Dafny.ISequence _842_recursiveGen; - bool _843_recOwned; - bool _844_recErased; - Dafny.ISet> _845_recIdents; + if (object.Equals(_840_b, _656_toTpe)) { + Dafny.ISequence _841_recursiveGen; + bool _842_recOwned; + bool _843_recErased; + Dafny.ISet> _844_recIdents; Dafny.ISequence _out336; bool _out337; bool _out338; Dafny.ISet> _out339; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out336, out _out337, out _out338, out _out339); - _842_recursiveGen = _out336; - _843_recOwned = _out337; - _844_recErased = _out338; - _845_recIdents = _out339; - Dafny.ISequence _846_uneraseFn; - _846_uneraseFn = ((_843_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _846_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _842_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _843_recOwned; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out336, out _out337, out _out338, out _out339); + _841_recursiveGen = _out336; + _842_recOwned = _out337; + _843_recErased = _out338; + _844_recIdents = _out339; + Dafny.ISequence _845_uneraseFn; + _845_uneraseFn = ((_842_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _845_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _841_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _842_recOwned; isErased = true; - readIdents = _845_recIdents; + readIdents = _844_recIdents; } else { Dafny.ISequence _out340; bool _out341; bool _out342; Dafny.ISet> _out343; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _841_b), _841_b, _657_toTpe), selfIdent, @params, mustOwn, out _out340, out _out341, out _out342, out _out343); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _840_b), _840_b, _656_toTpe), selfIdent, @params, mustOwn, out _out340, out _out341, out _out342, out _out343); s = _out340; isOwned = _out341; isErased = _out342; @@ -8786,39 +8755,39 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _849_recursiveGen; - bool _850_recOwned; - bool _851_recErased; - Dafny.ISet> _852_recIdents; + if (object.Equals(_657_fromTpe, _847_b)) { + Dafny.ISequence _848_recursiveGen; + bool _849_recOwned; + bool _850_recErased; + Dafny.ISet> _851_recIdents; Dafny.ISequence _out344; bool _out345; bool _out346; Dafny.ISet> _out347; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out344, out _out345, out _out346, out _out347); - _849_recursiveGen = _out344; - _850_recOwned = _out345; - _851_recErased = _out346; - _852_recIdents = _out347; - Dafny.ISequence _853_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out344, out _out345, out _out346, out _out347); + _848_recursiveGen = _out344; + _849_recOwned = _out345; + _850_recErased = _out346; + _851_recIdents = _out347; + Dafny.ISequence _852_rhsType; Dafny.ISequence _out348; - _out348 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _853_rhsType = _out348; - Dafny.ISequence _854_uneraseFn; - _854_uneraseFn = ((_850_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _853_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _854_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _849_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _850_recOwned; + _out348 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _852_rhsType = _out348; + Dafny.ISequence _853_uneraseFn; + _853_uneraseFn = ((_849_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _852_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _853_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _848_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _849_recOwned; isErased = false; - readIdents = _852_recIdents; + readIdents = _851_recIdents; } else { Dafny.ISequence _out349; bool _out350; bool _out351; Dafny.ISet> _out352; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _848_b), _848_b, _657_toTpe), selfIdent, @params, mustOwn, out _out349, out _out350, out _out351, out _out352); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _847_b), _847_b, _656_toTpe), selfIdent, @params, mustOwn, out _out349, out _out350, out _out351, out _out352); s = _out349; isOwned = _out350; isErased = _out351; @@ -8827,59 +8796,59 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _856_recursiveGen; - bool _857_recOwned; - bool _858_recErased; - Dafny.ISet> _859_recIdents; + Dafny.ISequence _855_recursiveGen; + bool _856_recOwned; + bool _857_recErased; + Dafny.ISet> _858_recIdents; Dafny.ISequence _out353; bool _out354; bool _out355; Dafny.ISet> _out356; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out353, out _out354, out _out355, out _out356); - _856_recursiveGen = _out353; - _857_recOwned = _out354; - _858_recErased = _out355; - _859_recIdents = _out356; - if (!(_857_recOwned)) { - _856_recursiveGen = Dafny.Sequence.Concat(_856_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out353, out _out354, out _out355, out _out356); + _855_recursiveGen = _out353; + _856_recOwned = _out354; + _857_recErased = _out355; + _858_recIdents = _out356; + if (!(_856_recOwned)) { + _855_recursiveGen = Dafny.Sequence.Concat(_855_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _856_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _855_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _858_recErased; - readIdents = _859_recIdents; + isErased = _857_recErased; + readIdents = _858_recIdents; } } else if (_source33.is_Tuple) { - Dafny.ISequence _860___mcc_h434 = _source33.dtor_Tuple_a0; - DAST._IType _861_b = _829___mcc_h409; + Dafny.ISequence _859___mcc_h434 = _source33.dtor_Tuple_a0; + DAST._IType _860_b = _828___mcc_h409; { - if (object.Equals(_861_b, _657_toTpe)) { - Dafny.ISequence _862_recursiveGen; - bool _863_recOwned; - bool _864_recErased; - Dafny.ISet> _865_recIdents; + if (object.Equals(_860_b, _656_toTpe)) { + Dafny.ISequence _861_recursiveGen; + bool _862_recOwned; + bool _863_recErased; + Dafny.ISet> _864_recIdents; Dafny.ISequence _out357; bool _out358; bool _out359; Dafny.ISet> _out360; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out357, out _out358, out _out359, out _out360); - _862_recursiveGen = _out357; - _863_recOwned = _out358; - _864_recErased = _out359; - _865_recIdents = _out360; - Dafny.ISequence _866_uneraseFn; - _866_uneraseFn = ((_863_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _866_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _862_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _863_recOwned; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out357, out _out358, out _out359, out _out360); + _861_recursiveGen = _out357; + _862_recOwned = _out358; + _863_recErased = _out359; + _864_recIdents = _out360; + Dafny.ISequence _865_uneraseFn; + _865_uneraseFn = ((_862_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _865_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _861_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _862_recOwned; isErased = true; - readIdents = _865_recIdents; + readIdents = _864_recIdents; } else { Dafny.ISequence _out361; bool _out362; bool _out363; Dafny.ISet> _out364; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _861_b), _861_b, _657_toTpe), selfIdent, @params, mustOwn, out _out361, out _out362, out _out363, out _out364); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _860_b), _860_b, _656_toTpe), selfIdent, @params, mustOwn, out _out361, out _out362, out _out363, out _out364); s = _out361; isOwned = _out362; isErased = _out363; @@ -8887,36 +8856,36 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _870_recursiveGen; - bool _871_recOwned; - bool _872_recErased; - Dafny.ISet> _873_recIdents; + if (object.Equals(_868_b, _656_toTpe)) { + Dafny.ISequence _869_recursiveGen; + bool _870_recOwned; + bool _871_recErased; + Dafny.ISet> _872_recIdents; Dafny.ISequence _out365; bool _out366; bool _out367; Dafny.ISet> _out368; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out365, out _out366, out _out367, out _out368); - _870_recursiveGen = _out365; - _871_recOwned = _out366; - _872_recErased = _out367; - _873_recIdents = _out368; - Dafny.ISequence _874_uneraseFn; - _874_uneraseFn = ((_871_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _874_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _870_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _871_recOwned; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out365, out _out366, out _out367, out _out368); + _869_recursiveGen = _out365; + _870_recOwned = _out366; + _871_recErased = _out367; + _872_recIdents = _out368; + Dafny.ISequence _873_uneraseFn; + _873_uneraseFn = ((_870_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _873_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _869_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _870_recOwned; isErased = true; - readIdents = _873_recIdents; + readIdents = _872_recIdents; } else { Dafny.ISequence _out369; bool _out370; bool _out371; Dafny.ISet> _out372; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _869_b), _869_b, _657_toTpe), selfIdent, @params, mustOwn, out _out369, out _out370, out _out371, out _out372); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _868_b), _868_b, _656_toTpe), selfIdent, @params, mustOwn, out _out369, out _out370, out _out371, out _out372); s = _out369; isOwned = _out370; isErased = _out371; @@ -8924,35 +8893,35 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _877_recursiveGen; - bool _878_recOwned; - bool _879_recErased; - Dafny.ISet> _880_recIdents; + if (object.Equals(_875_b, _656_toTpe)) { + Dafny.ISequence _876_recursiveGen; + bool _877_recOwned; + bool _878_recErased; + Dafny.ISet> _879_recIdents; Dafny.ISequence _out373; bool _out374; bool _out375; Dafny.ISet> _out376; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out373, out _out374, out _out375, out _out376); - _877_recursiveGen = _out373; - _878_recOwned = _out374; - _879_recErased = _out375; - _880_recIdents = _out376; - Dafny.ISequence _881_uneraseFn; - _881_uneraseFn = ((_878_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _881_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _877_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _878_recOwned; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out373, out _out374, out _out375, out _out376); + _876_recursiveGen = _out373; + _877_recOwned = _out374; + _878_recErased = _out375; + _879_recIdents = _out376; + Dafny.ISequence _880_uneraseFn; + _880_uneraseFn = ((_877_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _880_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _876_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _877_recOwned; isErased = true; - readIdents = _880_recIdents; + readIdents = _879_recIdents; } else { Dafny.ISequence _out377; bool _out378; bool _out379; Dafny.ISet> _out380; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _876_b), _876_b, _657_toTpe), selfIdent, @params, mustOwn, out _out377, out _out378, out _out379, out _out380); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _875_b), _875_b, _656_toTpe), selfIdent, @params, mustOwn, out _out377, out _out378, out _out379, out _out380); s = _out377; isOwned = _out378; isErased = _out379; @@ -8960,35 +8929,35 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _884_recursiveGen; - bool _885_recOwned; - bool _886_recErased; - Dafny.ISet> _887_recIdents; + if (object.Equals(_882_b, _656_toTpe)) { + Dafny.ISequence _883_recursiveGen; + bool _884_recOwned; + bool _885_recErased; + Dafny.ISet> _886_recIdents; Dafny.ISequence _out381; bool _out382; bool _out383; Dafny.ISet> _out384; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out381, out _out382, out _out383, out _out384); - _884_recursiveGen = _out381; - _885_recOwned = _out382; - _886_recErased = _out383; - _887_recIdents = _out384; - Dafny.ISequence _888_uneraseFn; - _888_uneraseFn = ((_885_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _888_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _884_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _885_recOwned; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out381, out _out382, out _out383, out _out384); + _883_recursiveGen = _out381; + _884_recOwned = _out382; + _885_recErased = _out383; + _886_recIdents = _out384; + Dafny.ISequence _887_uneraseFn; + _887_uneraseFn = ((_884_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _887_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _883_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _884_recOwned; isErased = true; - readIdents = _887_recIdents; + readIdents = _886_recIdents; } else { Dafny.ISequence _out385; bool _out386; bool _out387; Dafny.ISet> _out388; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _883_b), _883_b, _657_toTpe), selfIdent, @params, mustOwn, out _out385, out _out386, out _out387, out _out388); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _882_b), _882_b, _656_toTpe), selfIdent, @params, mustOwn, out _out385, out _out386, out _out387, out _out388); s = _out385; isOwned = _out386; isErased = _out387; @@ -8996,35 +8965,35 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _891_recursiveGen; - bool _892_recOwned; - bool _893_recErased; - Dafny.ISet> _894_recIdents; + if (object.Equals(_889_b, _656_toTpe)) { + Dafny.ISequence _890_recursiveGen; + bool _891_recOwned; + bool _892_recErased; + Dafny.ISet> _893_recIdents; Dafny.ISequence _out389; bool _out390; bool _out391; Dafny.ISet> _out392; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out389, out _out390, out _out391, out _out392); - _891_recursiveGen = _out389; - _892_recOwned = _out390; - _893_recErased = _out391; - _894_recIdents = _out392; - Dafny.ISequence _895_uneraseFn; - _895_uneraseFn = ((_892_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _895_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _891_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _892_recOwned; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out389, out _out390, out _out391, out _out392); + _890_recursiveGen = _out389; + _891_recOwned = _out390; + _892_recErased = _out391; + _893_recIdents = _out392; + Dafny.ISequence _894_uneraseFn; + _894_uneraseFn = ((_891_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _894_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _890_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _891_recOwned; isErased = true; - readIdents = _894_recIdents; + readIdents = _893_recIdents; } else { Dafny.ISequence _out393; bool _out394; bool _out395; Dafny.ISet> _out396; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _890_b), _890_b, _657_toTpe), selfIdent, @params, mustOwn, out _out393, out _out394, out _out395, out _out396); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _889_b), _889_b, _656_toTpe), selfIdent, @params, mustOwn, out _out393, out _out394, out _out395, out _out396); s = _out393; isOwned = _out394; isErased = _out395; @@ -9032,36 +9001,36 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _899_recursiveGen; - bool _900_recOwned; - bool _901_recErased; - Dafny.ISet> _902_recIdents; + if (object.Equals(_897_b, _656_toTpe)) { + Dafny.ISequence _898_recursiveGen; + bool _899_recOwned; + bool _900_recErased; + Dafny.ISet> _901_recIdents; Dafny.ISequence _out397; bool _out398; bool _out399; Dafny.ISet> _out400; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out397, out _out398, out _out399, out _out400); - _899_recursiveGen = _out397; - _900_recOwned = _out398; - _901_recErased = _out399; - _902_recIdents = _out400; - Dafny.ISequence _903_uneraseFn; - _903_uneraseFn = ((_900_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _903_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _899_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _900_recOwned; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out397, out _out398, out _out399, out _out400); + _898_recursiveGen = _out397; + _899_recOwned = _out398; + _900_recErased = _out399; + _901_recIdents = _out400; + Dafny.ISequence _902_uneraseFn; + _902_uneraseFn = ((_899_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _902_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _898_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _899_recOwned; isErased = true; - readIdents = _902_recIdents; + readIdents = _901_recIdents; } else { Dafny.ISequence _out401; bool _out402; bool _out403; Dafny.ISet> _out404; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _898_b), _898_b, _657_toTpe), selfIdent, @params, mustOwn, out _out401, out _out402, out _out403, out _out404); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _897_b), _897_b, _656_toTpe), selfIdent, @params, mustOwn, out _out401, out _out402, out _out403, out _out404); s = _out401; isOwned = _out402; isErased = _out403; @@ -9069,36 +9038,36 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _904___mcc_h458 = _source33.dtor_args; - DAST._IType _905___mcc_h459 = _source33.dtor_result; - DAST._IType _906_b = _829___mcc_h409; + Dafny.ISequence _903___mcc_h458 = _source33.dtor_args; + DAST._IType _904___mcc_h459 = _source33.dtor_result; + DAST._IType _905_b = _828___mcc_h409; { - if (object.Equals(_906_b, _657_toTpe)) { - Dafny.ISequence _907_recursiveGen; - bool _908_recOwned; - bool _909_recErased; - Dafny.ISet> _910_recIdents; + if (object.Equals(_905_b, _656_toTpe)) { + Dafny.ISequence _906_recursiveGen; + bool _907_recOwned; + bool _908_recErased; + Dafny.ISet> _909_recIdents; Dafny.ISequence _out405; bool _out406; bool _out407; Dafny.ISet> _out408; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out405, out _out406, out _out407, out _out408); - _907_recursiveGen = _out405; - _908_recOwned = _out406; - _909_recErased = _out407; - _910_recIdents = _out408; - Dafny.ISequence _911_uneraseFn; - _911_uneraseFn = ((_908_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _911_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _907_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _908_recOwned; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out405, out _out406, out _out407, out _out408); + _906_recursiveGen = _out405; + _907_recOwned = _out406; + _908_recErased = _out407; + _909_recIdents = _out408; + Dafny.ISequence _910_uneraseFn; + _910_uneraseFn = ((_907_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _910_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _906_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _907_recOwned; isErased = true; - readIdents = _910_recIdents; + readIdents = _909_recIdents; } else { Dafny.ISequence _out409; bool _out410; bool _out411; Dafny.ISet> _out412; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _906_b), _906_b, _657_toTpe), selfIdent, @params, mustOwn, out _out409, out _out410, out _out411, out _out412); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _905_b), _905_b, _656_toTpe), selfIdent, @params, mustOwn, out _out409, out _out410, out _out411, out _out412); s = _out409; isOwned = _out410; isErased = _out411; @@ -9106,35 +9075,35 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _914_recursiveGen; - bool _915_recOwned; - bool _916_recErased; - Dafny.ISet> _917_recIdents; + if (object.Equals(_912_b, _656_toTpe)) { + Dafny.ISequence _913_recursiveGen; + bool _914_recOwned; + bool _915_recErased; + Dafny.ISet> _916_recIdents; Dafny.ISequence _out413; bool _out414; bool _out415; Dafny.ISet> _out416; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out413, out _out414, out _out415, out _out416); - _914_recursiveGen = _out413; - _915_recOwned = _out414; - _916_recErased = _out415; - _917_recIdents = _out416; - Dafny.ISequence _918_uneraseFn; - _918_uneraseFn = ((_915_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _918_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _914_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _915_recOwned; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out413, out _out414, out _out415, out _out416); + _913_recursiveGen = _out413; + _914_recOwned = _out414; + _915_recErased = _out415; + _916_recIdents = _out416; + Dafny.ISequence _917_uneraseFn; + _917_uneraseFn = ((_914_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _917_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _913_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _914_recOwned; isErased = true; - readIdents = _917_recIdents; + readIdents = _916_recIdents; } else { Dafny.ISequence _out417; bool _out418; bool _out419; Dafny.ISet> _out420; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _913_b), _913_b, _657_toTpe), selfIdent, @params, mustOwn, out _out417, out _out418, out _out419, out _out420); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _912_b), _912_b, _656_toTpe), selfIdent, @params, mustOwn, out _out417, out _out418, out _out419, out _out420); s = _out417; isOwned = _out418; isErased = _out419; @@ -9142,35 +9111,35 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _919___mcc_h467 = _source33.dtor_Passthrough_a0; - DAST._IType _920_b = _829___mcc_h409; + Dafny.ISequence _918___mcc_h467 = _source33.dtor_Passthrough_a0; + DAST._IType _919_b = _828___mcc_h409; { - if (object.Equals(_920_b, _657_toTpe)) { - Dafny.ISequence _921_recursiveGen; - bool _922_recOwned; - bool _923_recErased; - Dafny.ISet> _924_recIdents; + if (object.Equals(_919_b, _656_toTpe)) { + Dafny.ISequence _920_recursiveGen; + bool _921_recOwned; + bool _922_recErased; + Dafny.ISet> _923_recIdents; Dafny.ISequence _out421; bool _out422; bool _out423; Dafny.ISet> _out424; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out421, out _out422, out _out423, out _out424); - _921_recursiveGen = _out421; - _922_recOwned = _out422; - _923_recErased = _out423; - _924_recIdents = _out424; - Dafny.ISequence _925_uneraseFn; - _925_uneraseFn = ((_922_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _925_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _921_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _922_recOwned; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out421, out _out422, out _out423, out _out424); + _920_recursiveGen = _out421; + _921_recOwned = _out422; + _922_recErased = _out423; + _923_recIdents = _out424; + Dafny.ISequence _924_uneraseFn; + _924_uneraseFn = ((_921_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _924_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _920_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _921_recOwned; isErased = true; - readIdents = _924_recIdents; + readIdents = _923_recIdents; } else { Dafny.ISequence _out425; bool _out426; bool _out427; Dafny.ISet> _out428; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _920_b), _920_b, _657_toTpe), selfIdent, @params, mustOwn, out _out425, out _out426, out _out427, out _out428); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _919_b), _919_b, _656_toTpe), selfIdent, @params, mustOwn, out _out425, out _out426, out _out427, out _out428); s = _out425; isOwned = _out426; isErased = _out427; @@ -9178,35 +9147,35 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _926___mcc_h470 = _source33.dtor_TypeArg_a0; - DAST._IType _927_b = _829___mcc_h409; + Dafny.ISequence _925___mcc_h470 = _source33.dtor_TypeArg_a0; + DAST._IType _926_b = _828___mcc_h409; { - if (object.Equals(_927_b, _657_toTpe)) { - Dafny.ISequence _928_recursiveGen; - bool _929_recOwned; - bool _930_recErased; - Dafny.ISet> _931_recIdents; + if (object.Equals(_926_b, _656_toTpe)) { + Dafny.ISequence _927_recursiveGen; + bool _928_recOwned; + bool _929_recErased; + Dafny.ISet> _930_recIdents; Dafny.ISequence _out429; bool _out430; bool _out431; Dafny.ISet> _out432; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out429, out _out430, out _out431, out _out432); - _928_recursiveGen = _out429; - _929_recOwned = _out430; - _930_recErased = _out431; - _931_recIdents = _out432; - Dafny.ISequence _932_uneraseFn; - _932_uneraseFn = ((_929_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _932_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _928_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _929_recOwned; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out429, out _out430, out _out431, out _out432); + _927_recursiveGen = _out429; + _928_recOwned = _out430; + _929_recErased = _out431; + _930_recIdents = _out432; + Dafny.ISequence _931_uneraseFn; + _931_uneraseFn = ((_928_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _931_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _927_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _928_recOwned; isErased = true; - readIdents = _931_recIdents; + readIdents = _930_recIdents; } else { Dafny.ISequence _out433; bool _out434; bool _out435; Dafny.ISet> _out436; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _927_b), _927_b, _657_toTpe), selfIdent, @params, mustOwn, out _out433, out _out434, out _out435, out _out436); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _926_b), _926_b, _656_toTpe), selfIdent, @params, mustOwn, out _out433, out _out434, out _out435, out _out436); s = _out433; isOwned = _out434; isErased = _out435; @@ -9216,438 +9185,438 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional> _934___mcc_h477 = _source35.dtor_Path_a0; - Dafny.ISequence _935___mcc_h478 = _source35.dtor_typeArgs; - DAST._IResolvedType _936___mcc_h479 = _source35.dtor_resolved; - DAST._IResolvedType _source36 = _936___mcc_h479; + Dafny.ISequence> _933___mcc_h477 = _source35.dtor_Path_a0; + Dafny.ISequence _934___mcc_h478 = _source35.dtor_typeArgs; + DAST._IResolvedType _935___mcc_h479 = _source35.dtor_resolved; + DAST._IResolvedType _source36 = _935___mcc_h479; if (_source36.is_Datatype) { - Dafny.ISequence> _937___mcc_h486 = _source36.dtor_path; + Dafny.ISequence> _936___mcc_h486 = _source36.dtor_path; { - Dafny.ISequence _938_recursiveGen; - bool _939_recOwned; - bool _940_recErased; - Dafny.ISet> _941_recIdents; + Dafny.ISequence _937_recursiveGen; + bool _938_recOwned; + bool _939_recErased; + Dafny.ISet> _940_recIdents; Dafny.ISequence _out437; bool _out438; bool _out439; Dafny.ISet> _out440; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out437, out _out438, out _out439, out _out440); - _938_recursiveGen = _out437; - _939_recOwned = _out438; - _940_recErased = _out439; - _941_recIdents = _out440; - if (!(_939_recOwned)) { - _938_recursiveGen = Dafny.Sequence.Concat(_938_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out437, out _out438, out _out439, out _out440); + _937_recursiveGen = _out437; + _938_recOwned = _out438; + _939_recErased = _out439; + _940_recIdents = _out440; + if (!(_938_recOwned)) { + _937_recursiveGen = Dafny.Sequence.Concat(_937_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); } - s = Dafny.Sequence.Concat(_938_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); - isOwned = _939_recOwned; - isErased = _940_recErased; - readIdents = _941_recIdents; + s = Dafny.Sequence.Concat(_937_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); + isOwned = _938_recOwned; + isErased = _939_recErased; + readIdents = _940_recIdents; } } else if (_source36.is_Trait) { - Dafny.ISequence> _942___mcc_h489 = _source36.dtor_path; + Dafny.ISequence> _941___mcc_h489 = _source36.dtor_path; { - Dafny.ISequence _943_recursiveGen; - bool _944_recOwned; - bool _945_recErased; - Dafny.ISet> _946_recIdents; + Dafny.ISequence _942_recursiveGen; + bool _943_recOwned; + bool _944_recErased; + Dafny.ISet> _945_recIdents; Dafny.ISequence _out441; bool _out442; bool _out443; Dafny.ISet> _out444; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out441, out _out442, out _out443, out _out444); - _943_recursiveGen = _out441; - _944_recOwned = _out442; - _945_recErased = _out443; - _946_recIdents = _out444; - if (!(_944_recOwned)) { - _943_recursiveGen = Dafny.Sequence.Concat(_943_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out441, out _out442, out _out443, out _out444); + _942_recursiveGen = _out441; + _943_recOwned = _out442; + _944_recErased = _out443; + _945_recIdents = _out444; + if (!(_943_recOwned)) { + _942_recursiveGen = Dafny.Sequence.Concat(_942_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); } - s = Dafny.Sequence.Concat(_943_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); - isOwned = _944_recOwned; - isErased = _945_recErased; - readIdents = _946_recIdents; + s = Dafny.Sequence.Concat(_942_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); + isOwned = _943_recOwned; + isErased = _944_recErased; + readIdents = _945_recIdents; } } else { - DAST._IType _947___mcc_h492 = _source36.dtor_Newtype_a0; + DAST._IType _946___mcc_h492 = _source36.dtor_Newtype_a0; { - Dafny.ISequence _948_recursiveGen; - bool _949_recOwned; - bool _950_recErased; - Dafny.ISet> _951_recIdents; + Dafny.ISequence _947_recursiveGen; + bool _948_recOwned; + bool _949_recErased; + Dafny.ISet> _950_recIdents; Dafny.ISequence _out445; bool _out446; bool _out447; Dafny.ISet> _out448; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out445, out _out446, out _out447, out _out448); - _948_recursiveGen = _out445; - _949_recOwned = _out446; - _950_recErased = _out447; - _951_recIdents = _out448; - if (!(_949_recOwned)) { - _948_recursiveGen = Dafny.Sequence.Concat(_948_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out445, out _out446, out _out447, out _out448); + _947_recursiveGen = _out445; + _948_recOwned = _out446; + _949_recErased = _out447; + _950_recIdents = _out448; + if (!(_948_recOwned)) { + _947_recursiveGen = Dafny.Sequence.Concat(_947_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); } - s = Dafny.Sequence.Concat(_948_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); - isOwned = _949_recOwned; - isErased = _950_recErased; - readIdents = _951_recIdents; + s = Dafny.Sequence.Concat(_947_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); + isOwned = _948_recOwned; + isErased = _949_recErased; + readIdents = _950_recIdents; } } } else if (_source35.is_Nullable) { - DAST._IType _952___mcc_h495 = _source35.dtor_Nullable_a0; + DAST._IType _951___mcc_h495 = _source35.dtor_Nullable_a0; { - Dafny.ISequence _953_recursiveGen; - bool _954_recOwned; - bool _955_recErased; - Dafny.ISet> _956_recIdents; + Dafny.ISequence _952_recursiveGen; + bool _953_recOwned; + bool _954_recErased; + Dafny.ISet> _955_recIdents; Dafny.ISequence _out449; bool _out450; bool _out451; Dafny.ISet> _out452; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out449, out _out450, out _out451, out _out452); - _953_recursiveGen = _out449; - _954_recOwned = _out450; - _955_recErased = _out451; - _956_recIdents = _out452; - if (!(_954_recOwned)) { - _953_recursiveGen = Dafny.Sequence.Concat(_953_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out449, out _out450, out _out451, out _out452); + _952_recursiveGen = _out449; + _953_recOwned = _out450; + _954_recErased = _out451; + _955_recIdents = _out452; + if (!(_953_recOwned)) { + _952_recursiveGen = Dafny.Sequence.Concat(_952_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); } - s = Dafny.Sequence.Concat(_953_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); - isOwned = _954_recOwned; - isErased = _955_recErased; - readIdents = _956_recIdents; + s = Dafny.Sequence.Concat(_952_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); + isOwned = _953_recOwned; + isErased = _954_recErased; + readIdents = _955_recIdents; } } else if (_source35.is_Tuple) { - Dafny.ISequence _957___mcc_h498 = _source35.dtor_Tuple_a0; + Dafny.ISequence _956___mcc_h498 = _source35.dtor_Tuple_a0; { - Dafny.ISequence _958_recursiveGen; - bool _959_recOwned; - bool _960_recErased; - Dafny.ISet> _961_recIdents; + Dafny.ISequence _957_recursiveGen; + bool _958_recOwned; + bool _959_recErased; + Dafny.ISet> _960_recIdents; Dafny.ISequence _out453; bool _out454; bool _out455; Dafny.ISet> _out456; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out453, out _out454, out _out455, out _out456); - _958_recursiveGen = _out453; - _959_recOwned = _out454; - _960_recErased = _out455; - _961_recIdents = _out456; - if (!(_959_recOwned)) { - _958_recursiveGen = Dafny.Sequence.Concat(_958_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out453, out _out454, out _out455, out _out456); + _957_recursiveGen = _out453; + _958_recOwned = _out454; + _959_recErased = _out455; + _960_recIdents = _out456; + if (!(_958_recOwned)) { + _957_recursiveGen = Dafny.Sequence.Concat(_957_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); } - s = Dafny.Sequence.Concat(_958_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); - isOwned = _959_recOwned; - isErased = _960_recErased; - readIdents = _961_recIdents; + s = Dafny.Sequence.Concat(_957_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); + isOwned = _958_recOwned; + isErased = _959_recErased; + readIdents = _960_recIdents; } } else if (_source35.is_Array) { - DAST._IType _962___mcc_h501 = _source35.dtor_element; - BigInteger _963___mcc_h502 = _source35.dtor_dims; + DAST._IType _961___mcc_h501 = _source35.dtor_element; + BigInteger _962___mcc_h502 = _source35.dtor_dims; { - Dafny.ISequence _964_recursiveGen; - bool _965_recOwned; - bool _966_recErased; - Dafny.ISet> _967_recIdents; + Dafny.ISequence _963_recursiveGen; + bool _964_recOwned; + bool _965_recErased; + Dafny.ISet> _966_recIdents; Dafny.ISequence _out457; bool _out458; bool _out459; Dafny.ISet> _out460; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out457, out _out458, out _out459, out _out460); - _964_recursiveGen = _out457; - _965_recOwned = _out458; - _966_recErased = _out459; - _967_recIdents = _out460; - if (!(_965_recOwned)) { - _964_recursiveGen = Dafny.Sequence.Concat(_964_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out457, out _out458, out _out459, out _out460); + _963_recursiveGen = _out457; + _964_recOwned = _out458; + _965_recErased = _out459; + _966_recIdents = _out460; + if (!(_964_recOwned)) { + _963_recursiveGen = Dafny.Sequence.Concat(_963_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); } - s = Dafny.Sequence.Concat(_964_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); - isOwned = _965_recOwned; - isErased = _966_recErased; - readIdents = _967_recIdents; + s = Dafny.Sequence.Concat(_963_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); + isOwned = _964_recOwned; + isErased = _965_recErased; + readIdents = _966_recIdents; } } else if (_source35.is_Seq) { - DAST._IType _968___mcc_h507 = _source35.dtor_element; + DAST._IType _967___mcc_h507 = _source35.dtor_element; { - Dafny.ISequence _969_recursiveGen; - bool _970_recOwned; - bool _971_recErased; - Dafny.ISet> _972_recIdents; + Dafny.ISequence _968_recursiveGen; + bool _969_recOwned; + bool _970_recErased; + Dafny.ISet> _971_recIdents; Dafny.ISequence _out461; bool _out462; bool _out463; Dafny.ISet> _out464; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out461, out _out462, out _out463, out _out464); - _969_recursiveGen = _out461; - _970_recOwned = _out462; - _971_recErased = _out463; - _972_recIdents = _out464; - if (!(_970_recOwned)) { - _969_recursiveGen = Dafny.Sequence.Concat(_969_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out461, out _out462, out _out463, out _out464); + _968_recursiveGen = _out461; + _969_recOwned = _out462; + _970_recErased = _out463; + _971_recIdents = _out464; + if (!(_969_recOwned)) { + _968_recursiveGen = Dafny.Sequence.Concat(_968_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); } - s = Dafny.Sequence.Concat(_969_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); - isOwned = _970_recOwned; - isErased = _971_recErased; - readIdents = _972_recIdents; + s = Dafny.Sequence.Concat(_968_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); + isOwned = _969_recOwned; + isErased = _970_recErased; + readIdents = _971_recIdents; } } else if (_source35.is_Set) { - DAST._IType _973___mcc_h510 = _source35.dtor_element; + DAST._IType _972___mcc_h510 = _source35.dtor_element; { - Dafny.ISequence _974_recursiveGen; - bool _975_recOwned; - bool _976_recErased; - Dafny.ISet> _977_recIdents; + Dafny.ISequence _973_recursiveGen; + bool _974_recOwned; + bool _975_recErased; + Dafny.ISet> _976_recIdents; Dafny.ISequence _out465; bool _out466; bool _out467; Dafny.ISet> _out468; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out465, out _out466, out _out467, out _out468); - _974_recursiveGen = _out465; - _975_recOwned = _out466; - _976_recErased = _out467; - _977_recIdents = _out468; - if (!(_975_recOwned)) { - _974_recursiveGen = Dafny.Sequence.Concat(_974_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out465, out _out466, out _out467, out _out468); + _973_recursiveGen = _out465; + _974_recOwned = _out466; + _975_recErased = _out467; + _976_recIdents = _out468; + if (!(_974_recOwned)) { + _973_recursiveGen = Dafny.Sequence.Concat(_973_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); } - s = Dafny.Sequence.Concat(_974_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); - isOwned = _975_recOwned; - isErased = _976_recErased; - readIdents = _977_recIdents; + s = Dafny.Sequence.Concat(_973_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); + isOwned = _974_recOwned; + isErased = _975_recErased; + readIdents = _976_recIdents; } } else if (_source35.is_Multiset) { - DAST._IType _978___mcc_h513 = _source35.dtor_element; + DAST._IType _977___mcc_h513 = _source35.dtor_element; { - Dafny.ISequence _979_recursiveGen; - bool _980_recOwned; - bool _981_recErased; - Dafny.ISet> _982_recIdents; + Dafny.ISequence _978_recursiveGen; + bool _979_recOwned; + bool _980_recErased; + Dafny.ISet> _981_recIdents; Dafny.ISequence _out469; bool _out470; bool _out471; Dafny.ISet> _out472; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out469, out _out470, out _out471, out _out472); - _979_recursiveGen = _out469; - _980_recOwned = _out470; - _981_recErased = _out471; - _982_recIdents = _out472; - if (!(_980_recOwned)) { - _979_recursiveGen = Dafny.Sequence.Concat(_979_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out469, out _out470, out _out471, out _out472); + _978_recursiveGen = _out469; + _979_recOwned = _out470; + _980_recErased = _out471; + _981_recIdents = _out472; + if (!(_979_recOwned)) { + _978_recursiveGen = Dafny.Sequence.Concat(_978_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); } - s = Dafny.Sequence.Concat(_979_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); - isOwned = _980_recOwned; - isErased = _981_recErased; - readIdents = _982_recIdents; + s = Dafny.Sequence.Concat(_978_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); + isOwned = _979_recOwned; + isErased = _980_recErased; + readIdents = _981_recIdents; } } else if (_source35.is_Map) { - DAST._IType _983___mcc_h516 = _source35.dtor_key; - DAST._IType _984___mcc_h517 = _source35.dtor_value; + DAST._IType _982___mcc_h516 = _source35.dtor_key; + DAST._IType _983___mcc_h517 = _source35.dtor_value; { - Dafny.ISequence _985_recursiveGen; - bool _986_recOwned; - bool _987_recErased; - Dafny.ISet> _988_recIdents; + Dafny.ISequence _984_recursiveGen; + bool _985_recOwned; + bool _986_recErased; + Dafny.ISet> _987_recIdents; Dafny.ISequence _out473; bool _out474; bool _out475; Dafny.ISet> _out476; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out473, out _out474, out _out475, out _out476); - _985_recursiveGen = _out473; - _986_recOwned = _out474; - _987_recErased = _out475; - _988_recIdents = _out476; - if (!(_986_recOwned)) { - _985_recursiveGen = Dafny.Sequence.Concat(_985_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out473, out _out474, out _out475, out _out476); + _984_recursiveGen = _out473; + _985_recOwned = _out474; + _986_recErased = _out475; + _987_recIdents = _out476; + if (!(_985_recOwned)) { + _984_recursiveGen = Dafny.Sequence.Concat(_984_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); } - s = Dafny.Sequence.Concat(_985_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); - isOwned = _986_recOwned; - isErased = _987_recErased; - readIdents = _988_recIdents; + s = Dafny.Sequence.Concat(_984_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); + isOwned = _985_recOwned; + isErased = _986_recErased; + readIdents = _987_recIdents; } } else if (_source35.is_Arrow) { - Dafny.ISequence _989___mcc_h522 = _source35.dtor_args; - DAST._IType _990___mcc_h523 = _source35.dtor_result; + Dafny.ISequence _988___mcc_h522 = _source35.dtor_args; + DAST._IType _989___mcc_h523 = _source35.dtor_result; { - Dafny.ISequence _991_recursiveGen; - bool _992_recOwned; - bool _993_recErased; - Dafny.ISet> _994_recIdents; + Dafny.ISequence _990_recursiveGen; + bool _991_recOwned; + bool _992_recErased; + Dafny.ISet> _993_recIdents; Dafny.ISequence _out477; bool _out478; bool _out479; Dafny.ISet> _out480; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out477, out _out478, out _out479, out _out480); - _991_recursiveGen = _out477; - _992_recOwned = _out478; - _993_recErased = _out479; - _994_recIdents = _out480; - if (!(_992_recOwned)) { - _991_recursiveGen = Dafny.Sequence.Concat(_991_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out477, out _out478, out _out479, out _out480); + _990_recursiveGen = _out477; + _991_recOwned = _out478; + _992_recErased = _out479; + _993_recIdents = _out480; + if (!(_991_recOwned)) { + _990_recursiveGen = Dafny.Sequence.Concat(_990_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); } - s = Dafny.Sequence.Concat(_991_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); - isOwned = _992_recOwned; - isErased = _993_recErased; - readIdents = _994_recIdents; + s = Dafny.Sequence.Concat(_990_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); + isOwned = _991_recOwned; + isErased = _992_recErased; + readIdents = _993_recIdents; } } else if (_source35.is_Primitive) { - DAST._IPrimitive _995___mcc_h528 = _source35.dtor_Primitive_a0; + DAST._IPrimitive _994___mcc_h528 = _source35.dtor_Primitive_a0; { - Dafny.ISequence _996_recursiveGen; - bool _997_recOwned; - bool _998_recErased; - Dafny.ISet> _999_recIdents; + Dafny.ISequence _995_recursiveGen; + bool _996_recOwned; + bool _997_recErased; + Dafny.ISet> _998_recIdents; Dafny.ISequence _out481; bool _out482; bool _out483; Dafny.ISet> _out484; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out481, out _out482, out _out483, out _out484); - _996_recursiveGen = _out481; - _997_recOwned = _out482; - _998_recErased = _out483; - _999_recIdents = _out484; - if (!(_997_recOwned)) { - _996_recursiveGen = Dafny.Sequence.Concat(_996_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out481, out _out482, out _out483, out _out484); + _995_recursiveGen = _out481; + _996_recOwned = _out482; + _997_recErased = _out483; + _998_recIdents = _out484; + if (!(_996_recOwned)) { + _995_recursiveGen = Dafny.Sequence.Concat(_995_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); } - s = Dafny.Sequence.Concat(_996_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); - isOwned = _997_recOwned; - isErased = _998_recErased; - readIdents = _999_recIdents; + s = Dafny.Sequence.Concat(_995_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); + isOwned = _996_recOwned; + isErased = _997_recErased; + readIdents = _998_recIdents; } } else if (_source35.is_Passthrough) { - Dafny.ISequence _1000___mcc_h531 = _source35.dtor_Passthrough_a0; + Dafny.ISequence _999___mcc_h531 = _source35.dtor_Passthrough_a0; { - Dafny.ISequence _1001_recursiveGen; - bool _1002_recOwned; - bool _1003_recErased; - Dafny.ISet> _1004_recIdents; + Dafny.ISequence _1000_recursiveGen; + bool _1001_recOwned; + bool _1002_recErased; + Dafny.ISet> _1003_recIdents; Dafny.ISequence _out485; bool _out486; bool _out487; Dafny.ISet> _out488; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out485, out _out486, out _out487, out _out488); - _1001_recursiveGen = _out485; - _1002_recOwned = _out486; - _1003_recErased = _out487; - _1004_recIdents = _out488; - if (!(_1002_recOwned)) { - _1001_recursiveGen = Dafny.Sequence.Concat(_1001_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out485, out _out486, out _out487, out _out488); + _1000_recursiveGen = _out485; + _1001_recOwned = _out486; + _1002_recErased = _out487; + _1003_recIdents = _out488; + if (!(_1001_recOwned)) { + _1000_recursiveGen = Dafny.Sequence.Concat(_1000_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); } - s = Dafny.Sequence.Concat(_1001_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); - isOwned = _1002_recOwned; - isErased = _1003_recErased; - readIdents = _1004_recIdents; + s = Dafny.Sequence.Concat(_1000_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); + isOwned = _1001_recOwned; + isErased = _1002_recErased; + readIdents = _1003_recIdents; } } else { - Dafny.ISequence _1005___mcc_h534 = _source35.dtor_TypeArg_a0; + Dafny.ISequence _1004___mcc_h534 = _source35.dtor_TypeArg_a0; { - Dafny.ISequence _1006_recursiveGen; - bool _1007_recOwned; - bool _1008_recErased; - Dafny.ISet> _1009_recIdents; + Dafny.ISequence _1005_recursiveGen; + bool _1006_recOwned; + bool _1007_recErased; + Dafny.ISet> _1008_recIdents; Dafny.ISequence _out489; bool _out490; bool _out491; Dafny.ISet> _out492; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out489, out _out490, out _out491, out _out492); - _1006_recursiveGen = _out489; - _1007_recOwned = _out490; - _1008_recErased = _out491; - _1009_recIdents = _out492; - if (!(_1007_recOwned)) { - _1006_recursiveGen = Dafny.Sequence.Concat(_1006_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out489, out _out490, out _out491, out _out492); + _1005_recursiveGen = _out489; + _1006_recOwned = _out490; + _1007_recErased = _out491; + _1008_recIdents = _out492; + if (!(_1006_recOwned)) { + _1005_recursiveGen = Dafny.Sequence.Concat(_1005_recursiveGen, Dafny.Sequence.UnicodeFromString(".as_ref()")); } - s = Dafny.Sequence.Concat(_1006_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); - isOwned = _1007_recOwned; - isErased = _1008_recErased; - readIdents = _1009_recIdents; + s = Dafny.Sequence.Concat(_1005_recursiveGen, Dafny.Sequence.UnicodeFromString(".unwrap()")); + isOwned = _1006_recOwned; + isErased = _1007_recErased; + readIdents = _1008_recIdents; } } } else if (_source27.is_Tuple) { - Dafny.ISequence _1010___mcc_h537 = _source27.dtor_Tuple_a0; - DAST._IType _source37 = _665___mcc_h306; + Dafny.ISequence _1009___mcc_h537 = _source27.dtor_Tuple_a0; + DAST._IType _source37 = _664___mcc_h306; if (_source37.is_Path) { - Dafny.ISequence> _1011___mcc_h541 = _source37.dtor_Path_a0; - Dafny.ISequence _1012___mcc_h542 = _source37.dtor_typeArgs; - DAST._IResolvedType _1013___mcc_h543 = _source37.dtor_resolved; - DAST._IResolvedType _source38 = _1013___mcc_h543; + Dafny.ISequence> _1010___mcc_h541 = _source37.dtor_Path_a0; + Dafny.ISequence _1011___mcc_h542 = _source37.dtor_typeArgs; + DAST._IResolvedType _1012___mcc_h543 = _source37.dtor_resolved; + DAST._IResolvedType _source38 = _1012___mcc_h543; if (_source38.is_Datatype) { - Dafny.ISequence> _1014___mcc_h547 = _source38.dtor_path; + Dafny.ISequence> _1013___mcc_h547 = _source38.dtor_path; { - Dafny.ISequence _1015_recursiveGen; - bool _1016_recOwned; - bool _1017_recErased; - Dafny.ISet> _1018_recIdents; + Dafny.ISequence _1014_recursiveGen; + bool _1015_recOwned; + bool _1016_recErased; + Dafny.ISet> _1017_recIdents; Dafny.ISequence _out493; bool _out494; bool _out495; Dafny.ISet> _out496; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out493, out _out494, out _out495, out _out496); - _1015_recursiveGen = _out493; - _1016_recOwned = _out494; - _1017_recErased = _out495; - _1018_recIdents = _out496; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1015_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1016_recOwned; - isErased = _1017_recErased; - readIdents = _1018_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out493, out _out494, out _out495, out _out496); + _1014_recursiveGen = _out493; + _1015_recOwned = _out494; + _1016_recErased = _out495; + _1017_recIdents = _out496; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1014_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1015_recOwned; + isErased = _1016_recErased; + readIdents = _1017_recIdents; } } else if (_source38.is_Trait) { - Dafny.ISequence> _1019___mcc_h549 = _source38.dtor_path; + Dafny.ISequence> _1018___mcc_h549 = _source38.dtor_path; { - Dafny.ISequence _1020_recursiveGen; - bool _1021_recOwned; - bool _1022_recErased; - Dafny.ISet> _1023_recIdents; + Dafny.ISequence _1019_recursiveGen; + bool _1020_recOwned; + bool _1021_recErased; + Dafny.ISet> _1022_recIdents; Dafny.ISequence _out497; bool _out498; bool _out499; Dafny.ISet> _out500; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out497, out _out498, out _out499, out _out500); - _1020_recursiveGen = _out497; - _1021_recOwned = _out498; - _1022_recErased = _out499; - _1023_recIdents = _out500; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1020_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1021_recOwned; - isErased = _1022_recErased; - readIdents = _1023_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out497, out _out498, out _out499, out _out500); + _1019_recursiveGen = _out497; + _1020_recOwned = _out498; + _1021_recErased = _out499; + _1022_recIdents = _out500; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1019_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1020_recOwned; + isErased = _1021_recErased; + readIdents = _1022_recIdents; } } else { - DAST._IType _1024___mcc_h551 = _source38.dtor_Newtype_a0; - DAST._IType _1025_b = _1024___mcc_h551; + DAST._IType _1023___mcc_h551 = _source38.dtor_Newtype_a0; + DAST._IType _1024_b = _1023___mcc_h551; { - if (object.Equals(_658_fromTpe, _1025_b)) { - Dafny.ISequence _1026_recursiveGen; - bool _1027_recOwned; - bool _1028_recErased; - Dafny.ISet> _1029_recIdents; + if (object.Equals(_657_fromTpe, _1024_b)) { + Dafny.ISequence _1025_recursiveGen; + bool _1026_recOwned; + bool _1027_recErased; + Dafny.ISet> _1028_recIdents; Dafny.ISequence _out501; bool _out502; bool _out503; Dafny.ISet> _out504; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out501, out _out502, out _out503, out _out504); - _1026_recursiveGen = _out501; - _1027_recOwned = _out502; - _1028_recErased = _out503; - _1029_recIdents = _out504; - Dafny.ISequence _1030_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out501, out _out502, out _out503, out _out504); + _1025_recursiveGen = _out501; + _1026_recOwned = _out502; + _1027_recErased = _out503; + _1028_recIdents = _out504; + Dafny.ISequence _1029_rhsType; Dafny.ISequence _out505; - _out505 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _1030_rhsType = _out505; - Dafny.ISequence _1031_uneraseFn; - _1031_uneraseFn = ((_1027_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1030_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1031_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1026_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _1027_recOwned; + _out505 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _1029_rhsType = _out505; + Dafny.ISequence _1030_uneraseFn; + _1030_uneraseFn = ((_1026_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1029_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1030_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1025_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _1026_recOwned; isErased = false; - readIdents = _1029_recIdents; + readIdents = _1028_recIdents; } else { Dafny.ISequence _out506; bool _out507; bool _out508; Dafny.ISet> _out509; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _1025_b), _1025_b, _657_toTpe), selfIdent, @params, mustOwn, out _out506, out _out507, out _out508, out _out509); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _1024_b), _1024_b, _656_toTpe), selfIdent, @params, mustOwn, out _out506, out _out507, out _out508, out _out509); s = _out506; isOwned = _out507; isErased = _out508; @@ -9656,328 +9625,328 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _1033_recursiveGen; - bool _1034_recOwned; - bool _1035_recErased; - Dafny.ISet> _1036_recIdents; + Dafny.ISequence _1032_recursiveGen; + bool _1033_recOwned; + bool _1034_recErased; + Dafny.ISet> _1035_recIdents; Dafny.ISequence _out510; bool _out511; bool _out512; Dafny.ISet> _out513; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out510, out _out511, out _out512, out _out513); - _1033_recursiveGen = _out510; - _1034_recOwned = _out511; - _1035_recErased = _out512; - _1036_recIdents = _out513; - if (!(_1034_recOwned)) { - _1033_recursiveGen = Dafny.Sequence.Concat(_1033_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out510, out _out511, out _out512, out _out513); + _1032_recursiveGen = _out510; + _1033_recOwned = _out511; + _1034_recErased = _out512; + _1035_recIdents = _out513; + if (!(_1033_recOwned)) { + _1032_recursiveGen = Dafny.Sequence.Concat(_1032_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1033_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1032_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _1035_recErased; - readIdents = _1036_recIdents; + isErased = _1034_recErased; + readIdents = _1035_recIdents; } } else if (_source37.is_Tuple) { - Dafny.ISequence _1037___mcc_h555 = _source37.dtor_Tuple_a0; + Dafny.ISequence _1036___mcc_h555 = _source37.dtor_Tuple_a0; { - Dafny.ISequence _1038_recursiveGen; - bool _1039_recOwned; - bool _1040_recErased; - Dafny.ISet> _1041_recIdents; + Dafny.ISequence _1037_recursiveGen; + bool _1038_recOwned; + bool _1039_recErased; + Dafny.ISet> _1040_recIdents; Dafny.ISequence _out514; bool _out515; bool _out516; Dafny.ISet> _out517; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out514, out _out515, out _out516, out _out517); - _1038_recursiveGen = _out514; - _1039_recOwned = _out515; - _1040_recErased = _out516; - _1041_recIdents = _out517; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1038_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1039_recOwned; - isErased = _1040_recErased; - readIdents = _1041_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out514, out _out515, out _out516, out _out517); + _1037_recursiveGen = _out514; + _1038_recOwned = _out515; + _1039_recErased = _out516; + _1040_recIdents = _out517; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1037_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1038_recOwned; + isErased = _1039_recErased; + readIdents = _1040_recIdents; } } else if (_source37.is_Array) { - DAST._IType _1042___mcc_h557 = _source37.dtor_element; - BigInteger _1043___mcc_h558 = _source37.dtor_dims; + DAST._IType _1041___mcc_h557 = _source37.dtor_element; + BigInteger _1042___mcc_h558 = _source37.dtor_dims; { - Dafny.ISequence _1044_recursiveGen; - bool _1045_recOwned; - bool _1046_recErased; - Dafny.ISet> _1047_recIdents; + Dafny.ISequence _1043_recursiveGen; + bool _1044_recOwned; + bool _1045_recErased; + Dafny.ISet> _1046_recIdents; Dafny.ISequence _out518; bool _out519; bool _out520; Dafny.ISet> _out521; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out518, out _out519, out _out520, out _out521); - _1044_recursiveGen = _out518; - _1045_recOwned = _out519; - _1046_recErased = _out520; - _1047_recIdents = _out521; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1044_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1045_recOwned; - isErased = _1046_recErased; - readIdents = _1047_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out518, out _out519, out _out520, out _out521); + _1043_recursiveGen = _out518; + _1044_recOwned = _out519; + _1045_recErased = _out520; + _1046_recIdents = _out521; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1043_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1044_recOwned; + isErased = _1045_recErased; + readIdents = _1046_recIdents; } } else if (_source37.is_Seq) { - DAST._IType _1048___mcc_h561 = _source37.dtor_element; + DAST._IType _1047___mcc_h561 = _source37.dtor_element; { - Dafny.ISequence _1049_recursiveGen; - bool _1050_recOwned; - bool _1051_recErased; - Dafny.ISet> _1052_recIdents; + Dafny.ISequence _1048_recursiveGen; + bool _1049_recOwned; + bool _1050_recErased; + Dafny.ISet> _1051_recIdents; Dafny.ISequence _out522; bool _out523; bool _out524; Dafny.ISet> _out525; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out522, out _out523, out _out524, out _out525); - _1049_recursiveGen = _out522; - _1050_recOwned = _out523; - _1051_recErased = _out524; - _1052_recIdents = _out525; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1049_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1050_recOwned; - isErased = _1051_recErased; - readIdents = _1052_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out522, out _out523, out _out524, out _out525); + _1048_recursiveGen = _out522; + _1049_recOwned = _out523; + _1050_recErased = _out524; + _1051_recIdents = _out525; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1048_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1049_recOwned; + isErased = _1050_recErased; + readIdents = _1051_recIdents; } } else if (_source37.is_Set) { - DAST._IType _1053___mcc_h563 = _source37.dtor_element; + DAST._IType _1052___mcc_h563 = _source37.dtor_element; { - Dafny.ISequence _1054_recursiveGen; - bool _1055_recOwned; - bool _1056_recErased; - Dafny.ISet> _1057_recIdents; + Dafny.ISequence _1053_recursiveGen; + bool _1054_recOwned; + bool _1055_recErased; + Dafny.ISet> _1056_recIdents; Dafny.ISequence _out526; bool _out527; bool _out528; Dafny.ISet> _out529; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out526, out _out527, out _out528, out _out529); - _1054_recursiveGen = _out526; - _1055_recOwned = _out527; - _1056_recErased = _out528; - _1057_recIdents = _out529; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1054_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1055_recOwned; - isErased = _1056_recErased; - readIdents = _1057_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out526, out _out527, out _out528, out _out529); + _1053_recursiveGen = _out526; + _1054_recOwned = _out527; + _1055_recErased = _out528; + _1056_recIdents = _out529; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1053_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1054_recOwned; + isErased = _1055_recErased; + readIdents = _1056_recIdents; } } else if (_source37.is_Multiset) { - DAST._IType _1058___mcc_h565 = _source37.dtor_element; + DAST._IType _1057___mcc_h565 = _source37.dtor_element; { - Dafny.ISequence _1059_recursiveGen; - bool _1060_recOwned; - bool _1061_recErased; - Dafny.ISet> _1062_recIdents; + Dafny.ISequence _1058_recursiveGen; + bool _1059_recOwned; + bool _1060_recErased; + Dafny.ISet> _1061_recIdents; Dafny.ISequence _out530; bool _out531; bool _out532; Dafny.ISet> _out533; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out530, out _out531, out _out532, out _out533); - _1059_recursiveGen = _out530; - _1060_recOwned = _out531; - _1061_recErased = _out532; - _1062_recIdents = _out533; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1059_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1060_recOwned; - isErased = _1061_recErased; - readIdents = _1062_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out530, out _out531, out _out532, out _out533); + _1058_recursiveGen = _out530; + _1059_recOwned = _out531; + _1060_recErased = _out532; + _1061_recIdents = _out533; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1058_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1059_recOwned; + isErased = _1060_recErased; + readIdents = _1061_recIdents; } } else if (_source37.is_Map) { - DAST._IType _1063___mcc_h567 = _source37.dtor_key; - DAST._IType _1064___mcc_h568 = _source37.dtor_value; + DAST._IType _1062___mcc_h567 = _source37.dtor_key; + DAST._IType _1063___mcc_h568 = _source37.dtor_value; { - Dafny.ISequence _1065_recursiveGen; - bool _1066_recOwned; - bool _1067_recErased; - Dafny.ISet> _1068_recIdents; + Dafny.ISequence _1064_recursiveGen; + bool _1065_recOwned; + bool _1066_recErased; + Dafny.ISet> _1067_recIdents; Dafny.ISequence _out534; bool _out535; bool _out536; Dafny.ISet> _out537; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out534, out _out535, out _out536, out _out537); - _1065_recursiveGen = _out534; - _1066_recOwned = _out535; - _1067_recErased = _out536; - _1068_recIdents = _out537; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1065_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1066_recOwned; - isErased = _1067_recErased; - readIdents = _1068_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out534, out _out535, out _out536, out _out537); + _1064_recursiveGen = _out534; + _1065_recOwned = _out535; + _1066_recErased = _out536; + _1067_recIdents = _out537; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1064_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1065_recOwned; + isErased = _1066_recErased; + readIdents = _1067_recIdents; } } else if (_source37.is_Arrow) { - Dafny.ISequence _1069___mcc_h571 = _source37.dtor_args; - DAST._IType _1070___mcc_h572 = _source37.dtor_result; + Dafny.ISequence _1068___mcc_h571 = _source37.dtor_args; + DAST._IType _1069___mcc_h572 = _source37.dtor_result; { - Dafny.ISequence _1071_recursiveGen; - bool _1072_recOwned; - bool _1073_recErased; - Dafny.ISet> _1074_recIdents; + Dafny.ISequence _1070_recursiveGen; + bool _1071_recOwned; + bool _1072_recErased; + Dafny.ISet> _1073_recIdents; Dafny.ISequence _out538; bool _out539; bool _out540; Dafny.ISet> _out541; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out538, out _out539, out _out540, out _out541); - _1071_recursiveGen = _out538; - _1072_recOwned = _out539; - _1073_recErased = _out540; - _1074_recIdents = _out541; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1071_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1072_recOwned; - isErased = _1073_recErased; - readIdents = _1074_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out538, out _out539, out _out540, out _out541); + _1070_recursiveGen = _out538; + _1071_recOwned = _out539; + _1072_recErased = _out540; + _1073_recIdents = _out541; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1070_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1071_recOwned; + isErased = _1072_recErased; + readIdents = _1073_recIdents; } } else if (_source37.is_Primitive) { - DAST._IPrimitive _1075___mcc_h575 = _source37.dtor_Primitive_a0; + DAST._IPrimitive _1074___mcc_h575 = _source37.dtor_Primitive_a0; { - Dafny.ISequence _1076_recursiveGen; - bool _1077_recOwned; - bool _1078_recErased; - Dafny.ISet> _1079_recIdents; + Dafny.ISequence _1075_recursiveGen; + bool _1076_recOwned; + bool _1077_recErased; + Dafny.ISet> _1078_recIdents; Dafny.ISequence _out542; bool _out543; bool _out544; Dafny.ISet> _out545; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out542, out _out543, out _out544, out _out545); - _1076_recursiveGen = _out542; - _1077_recOwned = _out543; - _1078_recErased = _out544; - _1079_recIdents = _out545; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1076_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1077_recOwned; - isErased = _1078_recErased; - readIdents = _1079_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out542, out _out543, out _out544, out _out545); + _1075_recursiveGen = _out542; + _1076_recOwned = _out543; + _1077_recErased = _out544; + _1078_recIdents = _out545; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1075_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1076_recOwned; + isErased = _1077_recErased; + readIdents = _1078_recIdents; } } else if (_source37.is_Passthrough) { - Dafny.ISequence _1080___mcc_h577 = _source37.dtor_Passthrough_a0; + Dafny.ISequence _1079___mcc_h577 = _source37.dtor_Passthrough_a0; { - Dafny.ISequence _1081_recursiveGen; - bool _1082_recOwned; - bool _1083_recErased; - Dafny.ISet> _1084_recIdents; + Dafny.ISequence _1080_recursiveGen; + bool _1081_recOwned; + bool _1082_recErased; + Dafny.ISet> _1083_recIdents; Dafny.ISequence _out546; bool _out547; bool _out548; Dafny.ISet> _out549; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out546, out _out547, out _out548, out _out549); - _1081_recursiveGen = _out546; - _1082_recOwned = _out547; - _1083_recErased = _out548; - _1084_recIdents = _out549; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1081_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1082_recOwned; - isErased = _1083_recErased; - readIdents = _1084_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out546, out _out547, out _out548, out _out549); + _1080_recursiveGen = _out546; + _1081_recOwned = _out547; + _1082_recErased = _out548; + _1083_recIdents = _out549; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1080_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1081_recOwned; + isErased = _1082_recErased; + readIdents = _1083_recIdents; } } else { - Dafny.ISequence _1085___mcc_h579 = _source37.dtor_TypeArg_a0; + Dafny.ISequence _1084___mcc_h579 = _source37.dtor_TypeArg_a0; { - Dafny.ISequence _1086_recursiveGen; - bool _1087_recOwned; - bool _1088_recErased; - Dafny.ISet> _1089_recIdents; + Dafny.ISequence _1085_recursiveGen; + bool _1086_recOwned; + bool _1087_recErased; + Dafny.ISet> _1088_recIdents; Dafny.ISequence _out550; bool _out551; bool _out552; Dafny.ISet> _out553; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out550, out _out551, out _out552, out _out553); - _1086_recursiveGen = _out550; - _1087_recOwned = _out551; - _1088_recErased = _out552; - _1089_recIdents = _out553; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1086_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1087_recOwned; - isErased = _1088_recErased; - readIdents = _1089_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out550, out _out551, out _out552, out _out553); + _1085_recursiveGen = _out550; + _1086_recOwned = _out551; + _1087_recErased = _out552; + _1088_recIdents = _out553; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1085_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1086_recOwned; + isErased = _1087_recErased; + readIdents = _1088_recIdents; } } } else if (_source27.is_Array) { - DAST._IType _1090___mcc_h581 = _source27.dtor_element; - BigInteger _1091___mcc_h582 = _source27.dtor_dims; - DAST._IType _source39 = _665___mcc_h306; + DAST._IType _1089___mcc_h581 = _source27.dtor_element; + BigInteger _1090___mcc_h582 = _source27.dtor_dims; + DAST._IType _source39 = _664___mcc_h306; if (_source39.is_Path) { - Dafny.ISequence> _1092___mcc_h589 = _source39.dtor_Path_a0; - Dafny.ISequence _1093___mcc_h590 = _source39.dtor_typeArgs; - DAST._IResolvedType _1094___mcc_h591 = _source39.dtor_resolved; - DAST._IResolvedType _source40 = _1094___mcc_h591; + Dafny.ISequence> _1091___mcc_h589 = _source39.dtor_Path_a0; + Dafny.ISequence _1092___mcc_h590 = _source39.dtor_typeArgs; + DAST._IResolvedType _1093___mcc_h591 = _source39.dtor_resolved; + DAST._IResolvedType _source40 = _1093___mcc_h591; if (_source40.is_Datatype) { - Dafny.ISequence> _1095___mcc_h595 = _source40.dtor_path; + Dafny.ISequence> _1094___mcc_h595 = _source40.dtor_path; { - Dafny.ISequence _1096_recursiveGen; - bool _1097_recOwned; - bool _1098_recErased; - Dafny.ISet> _1099_recIdents; + Dafny.ISequence _1095_recursiveGen; + bool _1096_recOwned; + bool _1097_recErased; + Dafny.ISet> _1098_recIdents; Dafny.ISequence _out554; bool _out555; bool _out556; Dafny.ISet> _out557; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out554, out _out555, out _out556, out _out557); - _1096_recursiveGen = _out554; - _1097_recOwned = _out555; - _1098_recErased = _out556; - _1099_recIdents = _out557; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1096_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1097_recOwned; - isErased = _1098_recErased; - readIdents = _1099_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out554, out _out555, out _out556, out _out557); + _1095_recursiveGen = _out554; + _1096_recOwned = _out555; + _1097_recErased = _out556; + _1098_recIdents = _out557; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1095_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1096_recOwned; + isErased = _1097_recErased; + readIdents = _1098_recIdents; } } else if (_source40.is_Trait) { - Dafny.ISequence> _1100___mcc_h597 = _source40.dtor_path; + Dafny.ISequence> _1099___mcc_h597 = _source40.dtor_path; { - Dafny.ISequence _1101_recursiveGen; - bool _1102_recOwned; - bool _1103_recErased; - Dafny.ISet> _1104_recIdents; + Dafny.ISequence _1100_recursiveGen; + bool _1101_recOwned; + bool _1102_recErased; + Dafny.ISet> _1103_recIdents; Dafny.ISequence _out558; bool _out559; bool _out560; Dafny.ISet> _out561; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out558, out _out559, out _out560, out _out561); - _1101_recursiveGen = _out558; - _1102_recOwned = _out559; - _1103_recErased = _out560; - _1104_recIdents = _out561; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1101_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1102_recOwned; - isErased = _1103_recErased; - readIdents = _1104_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out558, out _out559, out _out560, out _out561); + _1100_recursiveGen = _out558; + _1101_recOwned = _out559; + _1102_recErased = _out560; + _1103_recIdents = _out561; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1100_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1101_recOwned; + isErased = _1102_recErased; + readIdents = _1103_recIdents; } } else { - DAST._IType _1105___mcc_h599 = _source40.dtor_Newtype_a0; - DAST._IType _1106_b = _1105___mcc_h599; + DAST._IType _1104___mcc_h599 = _source40.dtor_Newtype_a0; + DAST._IType _1105_b = _1104___mcc_h599; { - if (object.Equals(_658_fromTpe, _1106_b)) { - Dafny.ISequence _1107_recursiveGen; - bool _1108_recOwned; - bool _1109_recErased; - Dafny.ISet> _1110_recIdents; + if (object.Equals(_657_fromTpe, _1105_b)) { + Dafny.ISequence _1106_recursiveGen; + bool _1107_recOwned; + bool _1108_recErased; + Dafny.ISet> _1109_recIdents; Dafny.ISequence _out562; bool _out563; bool _out564; Dafny.ISet> _out565; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out562, out _out563, out _out564, out _out565); - _1107_recursiveGen = _out562; - _1108_recOwned = _out563; - _1109_recErased = _out564; - _1110_recIdents = _out565; - Dafny.ISequence _1111_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out562, out _out563, out _out564, out _out565); + _1106_recursiveGen = _out562; + _1107_recOwned = _out563; + _1108_recErased = _out564; + _1109_recIdents = _out565; + Dafny.ISequence _1110_rhsType; Dafny.ISequence _out566; - _out566 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _1111_rhsType = _out566; - Dafny.ISequence _1112_uneraseFn; - _1112_uneraseFn = ((_1108_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1111_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1112_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1107_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _1108_recOwned; + _out566 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _1110_rhsType = _out566; + Dafny.ISequence _1111_uneraseFn; + _1111_uneraseFn = ((_1107_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1110_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1111_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1106_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _1107_recOwned; isErased = false; - readIdents = _1110_recIdents; + readIdents = _1109_recIdents; } else { Dafny.ISequence _out567; bool _out568; bool _out569; Dafny.ISet> _out570; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _1106_b), _1106_b, _657_toTpe), selfIdent, @params, mustOwn, out _out567, out _out568, out _out569, out _out570); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _1105_b), _1105_b, _656_toTpe), selfIdent, @params, mustOwn, out _out567, out _out568, out _out569, out _out570); s = _out567; isOwned = _out568; isErased = _out569; @@ -9986,327 +9955,327 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _1114_recursiveGen; - bool _1115_recOwned; - bool _1116_recErased; - Dafny.ISet> _1117_recIdents; + Dafny.ISequence _1113_recursiveGen; + bool _1114_recOwned; + bool _1115_recErased; + Dafny.ISet> _1116_recIdents; Dafny.ISequence _out571; bool _out572; bool _out573; Dafny.ISet> _out574; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out571, out _out572, out _out573, out _out574); - _1114_recursiveGen = _out571; - _1115_recOwned = _out572; - _1116_recErased = _out573; - _1117_recIdents = _out574; - if (!(_1115_recOwned)) { - _1114_recursiveGen = Dafny.Sequence.Concat(_1114_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out571, out _out572, out _out573, out _out574); + _1113_recursiveGen = _out571; + _1114_recOwned = _out572; + _1115_recErased = _out573; + _1116_recIdents = _out574; + if (!(_1114_recOwned)) { + _1113_recursiveGen = Dafny.Sequence.Concat(_1113_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1114_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1113_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _1116_recErased; - readIdents = _1117_recIdents; + isErased = _1115_recErased; + readIdents = _1116_recIdents; } } else if (_source39.is_Tuple) { - Dafny.ISequence _1118___mcc_h603 = _source39.dtor_Tuple_a0; + Dafny.ISequence _1117___mcc_h603 = _source39.dtor_Tuple_a0; { - Dafny.ISequence _1119_recursiveGen; - bool _1120_recOwned; - bool _1121_recErased; - Dafny.ISet> _1122_recIdents; + Dafny.ISequence _1118_recursiveGen; + bool _1119_recOwned; + bool _1120_recErased; + Dafny.ISet> _1121_recIdents; Dafny.ISequence _out575; bool _out576; bool _out577; Dafny.ISet> _out578; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out575, out _out576, out _out577, out _out578); - _1119_recursiveGen = _out575; - _1120_recOwned = _out576; - _1121_recErased = _out577; - _1122_recIdents = _out578; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1119_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1120_recOwned; - isErased = _1121_recErased; - readIdents = _1122_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out575, out _out576, out _out577, out _out578); + _1118_recursiveGen = _out575; + _1119_recOwned = _out576; + _1120_recErased = _out577; + _1121_recIdents = _out578; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1118_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1119_recOwned; + isErased = _1120_recErased; + readIdents = _1121_recIdents; } } else if (_source39.is_Array) { - DAST._IType _1123___mcc_h605 = _source39.dtor_element; - BigInteger _1124___mcc_h606 = _source39.dtor_dims; + DAST._IType _1122___mcc_h605 = _source39.dtor_element; + BigInteger _1123___mcc_h606 = _source39.dtor_dims; { - Dafny.ISequence _1125_recursiveGen; - bool _1126_recOwned; - bool _1127_recErased; - Dafny.ISet> _1128_recIdents; + Dafny.ISequence _1124_recursiveGen; + bool _1125_recOwned; + bool _1126_recErased; + Dafny.ISet> _1127_recIdents; Dafny.ISequence _out579; bool _out580; bool _out581; Dafny.ISet> _out582; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out579, out _out580, out _out581, out _out582); - _1125_recursiveGen = _out579; - _1126_recOwned = _out580; - _1127_recErased = _out581; - _1128_recIdents = _out582; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1125_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1126_recOwned; - isErased = _1127_recErased; - readIdents = _1128_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out579, out _out580, out _out581, out _out582); + _1124_recursiveGen = _out579; + _1125_recOwned = _out580; + _1126_recErased = _out581; + _1127_recIdents = _out582; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1124_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1125_recOwned; + isErased = _1126_recErased; + readIdents = _1127_recIdents; } } else if (_source39.is_Seq) { - DAST._IType _1129___mcc_h609 = _source39.dtor_element; + DAST._IType _1128___mcc_h609 = _source39.dtor_element; { - Dafny.ISequence _1130_recursiveGen; - bool _1131_recOwned; - bool _1132_recErased; - Dafny.ISet> _1133_recIdents; + Dafny.ISequence _1129_recursiveGen; + bool _1130_recOwned; + bool _1131_recErased; + Dafny.ISet> _1132_recIdents; Dafny.ISequence _out583; bool _out584; bool _out585; Dafny.ISet> _out586; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out583, out _out584, out _out585, out _out586); - _1130_recursiveGen = _out583; - _1131_recOwned = _out584; - _1132_recErased = _out585; - _1133_recIdents = _out586; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1130_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1131_recOwned; - isErased = _1132_recErased; - readIdents = _1133_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out583, out _out584, out _out585, out _out586); + _1129_recursiveGen = _out583; + _1130_recOwned = _out584; + _1131_recErased = _out585; + _1132_recIdents = _out586; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1129_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1130_recOwned; + isErased = _1131_recErased; + readIdents = _1132_recIdents; } } else if (_source39.is_Set) { - DAST._IType _1134___mcc_h611 = _source39.dtor_element; + DAST._IType _1133___mcc_h611 = _source39.dtor_element; { - Dafny.ISequence _1135_recursiveGen; - bool _1136_recOwned; - bool _1137_recErased; - Dafny.ISet> _1138_recIdents; + Dafny.ISequence _1134_recursiveGen; + bool _1135_recOwned; + bool _1136_recErased; + Dafny.ISet> _1137_recIdents; Dafny.ISequence _out587; bool _out588; bool _out589; Dafny.ISet> _out590; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out587, out _out588, out _out589, out _out590); - _1135_recursiveGen = _out587; - _1136_recOwned = _out588; - _1137_recErased = _out589; - _1138_recIdents = _out590; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1135_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1136_recOwned; - isErased = _1137_recErased; - readIdents = _1138_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out587, out _out588, out _out589, out _out590); + _1134_recursiveGen = _out587; + _1135_recOwned = _out588; + _1136_recErased = _out589; + _1137_recIdents = _out590; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1134_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1135_recOwned; + isErased = _1136_recErased; + readIdents = _1137_recIdents; } } else if (_source39.is_Multiset) { - DAST._IType _1139___mcc_h613 = _source39.dtor_element; + DAST._IType _1138___mcc_h613 = _source39.dtor_element; { - Dafny.ISequence _1140_recursiveGen; - bool _1141_recOwned; - bool _1142_recErased; - Dafny.ISet> _1143_recIdents; + Dafny.ISequence _1139_recursiveGen; + bool _1140_recOwned; + bool _1141_recErased; + Dafny.ISet> _1142_recIdents; Dafny.ISequence _out591; bool _out592; bool _out593; Dafny.ISet> _out594; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out591, out _out592, out _out593, out _out594); - _1140_recursiveGen = _out591; - _1141_recOwned = _out592; - _1142_recErased = _out593; - _1143_recIdents = _out594; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1140_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1141_recOwned; - isErased = _1142_recErased; - readIdents = _1143_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out591, out _out592, out _out593, out _out594); + _1139_recursiveGen = _out591; + _1140_recOwned = _out592; + _1141_recErased = _out593; + _1142_recIdents = _out594; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1139_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1140_recOwned; + isErased = _1141_recErased; + readIdents = _1142_recIdents; } } else if (_source39.is_Map) { - DAST._IType _1144___mcc_h615 = _source39.dtor_key; - DAST._IType _1145___mcc_h616 = _source39.dtor_value; + DAST._IType _1143___mcc_h615 = _source39.dtor_key; + DAST._IType _1144___mcc_h616 = _source39.dtor_value; { - Dafny.ISequence _1146_recursiveGen; - bool _1147_recOwned; - bool _1148_recErased; - Dafny.ISet> _1149_recIdents; + Dafny.ISequence _1145_recursiveGen; + bool _1146_recOwned; + bool _1147_recErased; + Dafny.ISet> _1148_recIdents; Dafny.ISequence _out595; bool _out596; bool _out597; Dafny.ISet> _out598; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out595, out _out596, out _out597, out _out598); - _1146_recursiveGen = _out595; - _1147_recOwned = _out596; - _1148_recErased = _out597; - _1149_recIdents = _out598; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1146_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1147_recOwned; - isErased = _1148_recErased; - readIdents = _1149_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out595, out _out596, out _out597, out _out598); + _1145_recursiveGen = _out595; + _1146_recOwned = _out596; + _1147_recErased = _out597; + _1148_recIdents = _out598; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1145_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1146_recOwned; + isErased = _1147_recErased; + readIdents = _1148_recIdents; } } else if (_source39.is_Arrow) { - Dafny.ISequence _1150___mcc_h619 = _source39.dtor_args; - DAST._IType _1151___mcc_h620 = _source39.dtor_result; + Dafny.ISequence _1149___mcc_h619 = _source39.dtor_args; + DAST._IType _1150___mcc_h620 = _source39.dtor_result; { - Dafny.ISequence _1152_recursiveGen; - bool _1153_recOwned; - bool _1154_recErased; - Dafny.ISet> _1155_recIdents; + Dafny.ISequence _1151_recursiveGen; + bool _1152_recOwned; + bool _1153_recErased; + Dafny.ISet> _1154_recIdents; Dafny.ISequence _out599; bool _out600; bool _out601; Dafny.ISet> _out602; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out599, out _out600, out _out601, out _out602); - _1152_recursiveGen = _out599; - _1153_recOwned = _out600; - _1154_recErased = _out601; - _1155_recIdents = _out602; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1152_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1153_recOwned; - isErased = _1154_recErased; - readIdents = _1155_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out599, out _out600, out _out601, out _out602); + _1151_recursiveGen = _out599; + _1152_recOwned = _out600; + _1153_recErased = _out601; + _1154_recIdents = _out602; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1151_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1152_recOwned; + isErased = _1153_recErased; + readIdents = _1154_recIdents; } } else if (_source39.is_Primitive) { - DAST._IPrimitive _1156___mcc_h623 = _source39.dtor_Primitive_a0; + DAST._IPrimitive _1155___mcc_h623 = _source39.dtor_Primitive_a0; { - Dafny.ISequence _1157_recursiveGen; - bool _1158_recOwned; - bool _1159_recErased; - Dafny.ISet> _1160_recIdents; + Dafny.ISequence _1156_recursiveGen; + bool _1157_recOwned; + bool _1158_recErased; + Dafny.ISet> _1159_recIdents; Dafny.ISequence _out603; bool _out604; bool _out605; Dafny.ISet> _out606; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out603, out _out604, out _out605, out _out606); - _1157_recursiveGen = _out603; - _1158_recOwned = _out604; - _1159_recErased = _out605; - _1160_recIdents = _out606; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1157_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1158_recOwned; - isErased = _1159_recErased; - readIdents = _1160_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out603, out _out604, out _out605, out _out606); + _1156_recursiveGen = _out603; + _1157_recOwned = _out604; + _1158_recErased = _out605; + _1159_recIdents = _out606; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1156_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1157_recOwned; + isErased = _1158_recErased; + readIdents = _1159_recIdents; } } else if (_source39.is_Passthrough) { - Dafny.ISequence _1161___mcc_h625 = _source39.dtor_Passthrough_a0; + Dafny.ISequence _1160___mcc_h625 = _source39.dtor_Passthrough_a0; { - Dafny.ISequence _1162_recursiveGen; - bool _1163_recOwned; - bool _1164_recErased; - Dafny.ISet> _1165_recIdents; + Dafny.ISequence _1161_recursiveGen; + bool _1162_recOwned; + bool _1163_recErased; + Dafny.ISet> _1164_recIdents; Dafny.ISequence _out607; bool _out608; bool _out609; Dafny.ISet> _out610; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out607, out _out608, out _out609, out _out610); - _1162_recursiveGen = _out607; - _1163_recOwned = _out608; - _1164_recErased = _out609; - _1165_recIdents = _out610; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1162_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1163_recOwned; - isErased = _1164_recErased; - readIdents = _1165_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out607, out _out608, out _out609, out _out610); + _1161_recursiveGen = _out607; + _1162_recOwned = _out608; + _1163_recErased = _out609; + _1164_recIdents = _out610; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1161_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1162_recOwned; + isErased = _1163_recErased; + readIdents = _1164_recIdents; } } else { - Dafny.ISequence _1166___mcc_h627 = _source39.dtor_TypeArg_a0; + Dafny.ISequence _1165___mcc_h627 = _source39.dtor_TypeArg_a0; { - Dafny.ISequence _1167_recursiveGen; - bool _1168_recOwned; - bool _1169_recErased; - Dafny.ISet> _1170_recIdents; + Dafny.ISequence _1166_recursiveGen; + bool _1167_recOwned; + bool _1168_recErased; + Dafny.ISet> _1169_recIdents; Dafny.ISequence _out611; bool _out612; bool _out613; Dafny.ISet> _out614; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out611, out _out612, out _out613, out _out614); - _1167_recursiveGen = _out611; - _1168_recOwned = _out612; - _1169_recErased = _out613; - _1170_recIdents = _out614; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1167_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1168_recOwned; - isErased = _1169_recErased; - readIdents = _1170_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out611, out _out612, out _out613, out _out614); + _1166_recursiveGen = _out611; + _1167_recOwned = _out612; + _1168_recErased = _out613; + _1169_recIdents = _out614; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1166_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1167_recOwned; + isErased = _1168_recErased; + readIdents = _1169_recIdents; } } } else if (_source27.is_Seq) { - DAST._IType _1171___mcc_h629 = _source27.dtor_element; - DAST._IType _source41 = _665___mcc_h306; + DAST._IType _1170___mcc_h629 = _source27.dtor_element; + DAST._IType _source41 = _664___mcc_h306; if (_source41.is_Path) { - Dafny.ISequence> _1172___mcc_h633 = _source41.dtor_Path_a0; - Dafny.ISequence _1173___mcc_h634 = _source41.dtor_typeArgs; - DAST._IResolvedType _1174___mcc_h635 = _source41.dtor_resolved; - DAST._IResolvedType _source42 = _1174___mcc_h635; + Dafny.ISequence> _1171___mcc_h633 = _source41.dtor_Path_a0; + Dafny.ISequence _1172___mcc_h634 = _source41.dtor_typeArgs; + DAST._IResolvedType _1173___mcc_h635 = _source41.dtor_resolved; + DAST._IResolvedType _source42 = _1173___mcc_h635; if (_source42.is_Datatype) { - Dafny.ISequence> _1175___mcc_h639 = _source42.dtor_path; + Dafny.ISequence> _1174___mcc_h639 = _source42.dtor_path; { - Dafny.ISequence _1176_recursiveGen; - bool _1177_recOwned; - bool _1178_recErased; - Dafny.ISet> _1179_recIdents; + Dafny.ISequence _1175_recursiveGen; + bool _1176_recOwned; + bool _1177_recErased; + Dafny.ISet> _1178_recIdents; Dafny.ISequence _out615; bool _out616; bool _out617; Dafny.ISet> _out618; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out615, out _out616, out _out617, out _out618); - _1176_recursiveGen = _out615; - _1177_recOwned = _out616; - _1178_recErased = _out617; - _1179_recIdents = _out618; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1176_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1177_recOwned; - isErased = _1178_recErased; - readIdents = _1179_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out615, out _out616, out _out617, out _out618); + _1175_recursiveGen = _out615; + _1176_recOwned = _out616; + _1177_recErased = _out617; + _1178_recIdents = _out618; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1175_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1176_recOwned; + isErased = _1177_recErased; + readIdents = _1178_recIdents; } } else if (_source42.is_Trait) { - Dafny.ISequence> _1180___mcc_h641 = _source42.dtor_path; + Dafny.ISequence> _1179___mcc_h641 = _source42.dtor_path; { - Dafny.ISequence _1181_recursiveGen; - bool _1182_recOwned; - bool _1183_recErased; - Dafny.ISet> _1184_recIdents; + Dafny.ISequence _1180_recursiveGen; + bool _1181_recOwned; + bool _1182_recErased; + Dafny.ISet> _1183_recIdents; Dafny.ISequence _out619; bool _out620; bool _out621; Dafny.ISet> _out622; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out619, out _out620, out _out621, out _out622); - _1181_recursiveGen = _out619; - _1182_recOwned = _out620; - _1183_recErased = _out621; - _1184_recIdents = _out622; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1181_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1182_recOwned; - isErased = _1183_recErased; - readIdents = _1184_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out619, out _out620, out _out621, out _out622); + _1180_recursiveGen = _out619; + _1181_recOwned = _out620; + _1182_recErased = _out621; + _1183_recIdents = _out622; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1180_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1181_recOwned; + isErased = _1182_recErased; + readIdents = _1183_recIdents; } } else { - DAST._IType _1185___mcc_h643 = _source42.dtor_Newtype_a0; - DAST._IType _1186_b = _1185___mcc_h643; + DAST._IType _1184___mcc_h643 = _source42.dtor_Newtype_a0; + DAST._IType _1185_b = _1184___mcc_h643; { - if (object.Equals(_658_fromTpe, _1186_b)) { - Dafny.ISequence _1187_recursiveGen; - bool _1188_recOwned; - bool _1189_recErased; - Dafny.ISet> _1190_recIdents; + if (object.Equals(_657_fromTpe, _1185_b)) { + Dafny.ISequence _1186_recursiveGen; + bool _1187_recOwned; + bool _1188_recErased; + Dafny.ISet> _1189_recIdents; Dafny.ISequence _out623; bool _out624; bool _out625; Dafny.ISet> _out626; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out623, out _out624, out _out625, out _out626); - _1187_recursiveGen = _out623; - _1188_recOwned = _out624; - _1189_recErased = _out625; - _1190_recIdents = _out626; - Dafny.ISequence _1191_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out623, out _out624, out _out625, out _out626); + _1186_recursiveGen = _out623; + _1187_recOwned = _out624; + _1188_recErased = _out625; + _1189_recIdents = _out626; + Dafny.ISequence _1190_rhsType; Dafny.ISequence _out627; - _out627 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _1191_rhsType = _out627; - Dafny.ISequence _1192_uneraseFn; - _1192_uneraseFn = ((_1188_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1191_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1192_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1187_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _1188_recOwned; + _out627 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _1190_rhsType = _out627; + Dafny.ISequence _1191_uneraseFn; + _1191_uneraseFn = ((_1187_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1190_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1191_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1186_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _1187_recOwned; isErased = false; - readIdents = _1190_recIdents; + readIdents = _1189_recIdents; } else { Dafny.ISequence _out628; bool _out629; bool _out630; Dafny.ISet> _out631; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _1186_b), _1186_b, _657_toTpe), selfIdent, @params, mustOwn, out _out628, out _out629, out _out630, out _out631); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _1185_b), _1185_b, _656_toTpe), selfIdent, @params, mustOwn, out _out628, out _out629, out _out630, out _out631); s = _out628; isOwned = _out629; isErased = _out630; @@ -10315,327 +10284,327 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _1194_recursiveGen; - bool _1195_recOwned; - bool _1196_recErased; - Dafny.ISet> _1197_recIdents; + Dafny.ISequence _1193_recursiveGen; + bool _1194_recOwned; + bool _1195_recErased; + Dafny.ISet> _1196_recIdents; Dafny.ISequence _out632; bool _out633; bool _out634; Dafny.ISet> _out635; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out632, out _out633, out _out634, out _out635); - _1194_recursiveGen = _out632; - _1195_recOwned = _out633; - _1196_recErased = _out634; - _1197_recIdents = _out635; - if (!(_1195_recOwned)) { - _1194_recursiveGen = Dafny.Sequence.Concat(_1194_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out632, out _out633, out _out634, out _out635); + _1193_recursiveGen = _out632; + _1194_recOwned = _out633; + _1195_recErased = _out634; + _1196_recIdents = _out635; + if (!(_1194_recOwned)) { + _1193_recursiveGen = Dafny.Sequence.Concat(_1193_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1194_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1193_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _1196_recErased; - readIdents = _1197_recIdents; + isErased = _1195_recErased; + readIdents = _1196_recIdents; } } else if (_source41.is_Tuple) { - Dafny.ISequence _1198___mcc_h647 = _source41.dtor_Tuple_a0; + Dafny.ISequence _1197___mcc_h647 = _source41.dtor_Tuple_a0; { - Dafny.ISequence _1199_recursiveGen; - bool _1200_recOwned; - bool _1201_recErased; - Dafny.ISet> _1202_recIdents; + Dafny.ISequence _1198_recursiveGen; + bool _1199_recOwned; + bool _1200_recErased; + Dafny.ISet> _1201_recIdents; Dafny.ISequence _out636; bool _out637; bool _out638; Dafny.ISet> _out639; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out636, out _out637, out _out638, out _out639); - _1199_recursiveGen = _out636; - _1200_recOwned = _out637; - _1201_recErased = _out638; - _1202_recIdents = _out639; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1199_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1200_recOwned; - isErased = _1201_recErased; - readIdents = _1202_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out636, out _out637, out _out638, out _out639); + _1198_recursiveGen = _out636; + _1199_recOwned = _out637; + _1200_recErased = _out638; + _1201_recIdents = _out639; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1198_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1199_recOwned; + isErased = _1200_recErased; + readIdents = _1201_recIdents; } } else if (_source41.is_Array) { - DAST._IType _1203___mcc_h649 = _source41.dtor_element; - BigInteger _1204___mcc_h650 = _source41.dtor_dims; + DAST._IType _1202___mcc_h649 = _source41.dtor_element; + BigInteger _1203___mcc_h650 = _source41.dtor_dims; { - Dafny.ISequence _1205_recursiveGen; - bool _1206_recOwned; - bool _1207_recErased; - Dafny.ISet> _1208_recIdents; + Dafny.ISequence _1204_recursiveGen; + bool _1205_recOwned; + bool _1206_recErased; + Dafny.ISet> _1207_recIdents; Dafny.ISequence _out640; bool _out641; bool _out642; Dafny.ISet> _out643; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out640, out _out641, out _out642, out _out643); - _1205_recursiveGen = _out640; - _1206_recOwned = _out641; - _1207_recErased = _out642; - _1208_recIdents = _out643; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1205_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1206_recOwned; - isErased = _1207_recErased; - readIdents = _1208_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out640, out _out641, out _out642, out _out643); + _1204_recursiveGen = _out640; + _1205_recOwned = _out641; + _1206_recErased = _out642; + _1207_recIdents = _out643; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1204_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1205_recOwned; + isErased = _1206_recErased; + readIdents = _1207_recIdents; } } else if (_source41.is_Seq) { - DAST._IType _1209___mcc_h653 = _source41.dtor_element; + DAST._IType _1208___mcc_h653 = _source41.dtor_element; { - Dafny.ISequence _1210_recursiveGen; - bool _1211_recOwned; - bool _1212_recErased; - Dafny.ISet> _1213_recIdents; + Dafny.ISequence _1209_recursiveGen; + bool _1210_recOwned; + bool _1211_recErased; + Dafny.ISet> _1212_recIdents; Dafny.ISequence _out644; bool _out645; bool _out646; Dafny.ISet> _out647; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out644, out _out645, out _out646, out _out647); - _1210_recursiveGen = _out644; - _1211_recOwned = _out645; - _1212_recErased = _out646; - _1213_recIdents = _out647; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1210_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1211_recOwned; - isErased = _1212_recErased; - readIdents = _1213_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out644, out _out645, out _out646, out _out647); + _1209_recursiveGen = _out644; + _1210_recOwned = _out645; + _1211_recErased = _out646; + _1212_recIdents = _out647; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1209_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1210_recOwned; + isErased = _1211_recErased; + readIdents = _1212_recIdents; } } else if (_source41.is_Set) { - DAST._IType _1214___mcc_h655 = _source41.dtor_element; + DAST._IType _1213___mcc_h655 = _source41.dtor_element; { - Dafny.ISequence _1215_recursiveGen; - bool _1216_recOwned; - bool _1217_recErased; - Dafny.ISet> _1218_recIdents; + Dafny.ISequence _1214_recursiveGen; + bool _1215_recOwned; + bool _1216_recErased; + Dafny.ISet> _1217_recIdents; Dafny.ISequence _out648; bool _out649; bool _out650; Dafny.ISet> _out651; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out648, out _out649, out _out650, out _out651); - _1215_recursiveGen = _out648; - _1216_recOwned = _out649; - _1217_recErased = _out650; - _1218_recIdents = _out651; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1215_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1216_recOwned; - isErased = _1217_recErased; - readIdents = _1218_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out648, out _out649, out _out650, out _out651); + _1214_recursiveGen = _out648; + _1215_recOwned = _out649; + _1216_recErased = _out650; + _1217_recIdents = _out651; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1214_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1215_recOwned; + isErased = _1216_recErased; + readIdents = _1217_recIdents; } } else if (_source41.is_Multiset) { - DAST._IType _1219___mcc_h657 = _source41.dtor_element; + DAST._IType _1218___mcc_h657 = _source41.dtor_element; { - Dafny.ISequence _1220_recursiveGen; - bool _1221_recOwned; - bool _1222_recErased; - Dafny.ISet> _1223_recIdents; + Dafny.ISequence _1219_recursiveGen; + bool _1220_recOwned; + bool _1221_recErased; + Dafny.ISet> _1222_recIdents; Dafny.ISequence _out652; bool _out653; bool _out654; Dafny.ISet> _out655; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out652, out _out653, out _out654, out _out655); - _1220_recursiveGen = _out652; - _1221_recOwned = _out653; - _1222_recErased = _out654; - _1223_recIdents = _out655; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1220_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1221_recOwned; - isErased = _1222_recErased; - readIdents = _1223_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out652, out _out653, out _out654, out _out655); + _1219_recursiveGen = _out652; + _1220_recOwned = _out653; + _1221_recErased = _out654; + _1222_recIdents = _out655; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1219_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1220_recOwned; + isErased = _1221_recErased; + readIdents = _1222_recIdents; } } else if (_source41.is_Map) { - DAST._IType _1224___mcc_h659 = _source41.dtor_key; - DAST._IType _1225___mcc_h660 = _source41.dtor_value; + DAST._IType _1223___mcc_h659 = _source41.dtor_key; + DAST._IType _1224___mcc_h660 = _source41.dtor_value; { - Dafny.ISequence _1226_recursiveGen; - bool _1227_recOwned; - bool _1228_recErased; - Dafny.ISet> _1229_recIdents; + Dafny.ISequence _1225_recursiveGen; + bool _1226_recOwned; + bool _1227_recErased; + Dafny.ISet> _1228_recIdents; Dafny.ISequence _out656; bool _out657; bool _out658; Dafny.ISet> _out659; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out656, out _out657, out _out658, out _out659); - _1226_recursiveGen = _out656; - _1227_recOwned = _out657; - _1228_recErased = _out658; - _1229_recIdents = _out659; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1226_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1227_recOwned; - isErased = _1228_recErased; - readIdents = _1229_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out656, out _out657, out _out658, out _out659); + _1225_recursiveGen = _out656; + _1226_recOwned = _out657; + _1227_recErased = _out658; + _1228_recIdents = _out659; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1225_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1226_recOwned; + isErased = _1227_recErased; + readIdents = _1228_recIdents; } } else if (_source41.is_Arrow) { - Dafny.ISequence _1230___mcc_h663 = _source41.dtor_args; - DAST._IType _1231___mcc_h664 = _source41.dtor_result; + Dafny.ISequence _1229___mcc_h663 = _source41.dtor_args; + DAST._IType _1230___mcc_h664 = _source41.dtor_result; { - Dafny.ISequence _1232_recursiveGen; - bool _1233_recOwned; - bool _1234_recErased; - Dafny.ISet> _1235_recIdents; + Dafny.ISequence _1231_recursiveGen; + bool _1232_recOwned; + bool _1233_recErased; + Dafny.ISet> _1234_recIdents; Dafny.ISequence _out660; bool _out661; bool _out662; Dafny.ISet> _out663; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out660, out _out661, out _out662, out _out663); - _1232_recursiveGen = _out660; - _1233_recOwned = _out661; - _1234_recErased = _out662; - _1235_recIdents = _out663; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1232_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1233_recOwned; - isErased = _1234_recErased; - readIdents = _1235_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out660, out _out661, out _out662, out _out663); + _1231_recursiveGen = _out660; + _1232_recOwned = _out661; + _1233_recErased = _out662; + _1234_recIdents = _out663; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1231_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1232_recOwned; + isErased = _1233_recErased; + readIdents = _1234_recIdents; } } else if (_source41.is_Primitive) { - DAST._IPrimitive _1236___mcc_h667 = _source41.dtor_Primitive_a0; + DAST._IPrimitive _1235___mcc_h667 = _source41.dtor_Primitive_a0; { - Dafny.ISequence _1237_recursiveGen; - bool _1238_recOwned; - bool _1239_recErased; - Dafny.ISet> _1240_recIdents; + Dafny.ISequence _1236_recursiveGen; + bool _1237_recOwned; + bool _1238_recErased; + Dafny.ISet> _1239_recIdents; Dafny.ISequence _out664; bool _out665; bool _out666; Dafny.ISet> _out667; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out664, out _out665, out _out666, out _out667); - _1237_recursiveGen = _out664; - _1238_recOwned = _out665; - _1239_recErased = _out666; - _1240_recIdents = _out667; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1237_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1238_recOwned; - isErased = _1239_recErased; - readIdents = _1240_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out664, out _out665, out _out666, out _out667); + _1236_recursiveGen = _out664; + _1237_recOwned = _out665; + _1238_recErased = _out666; + _1239_recIdents = _out667; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1236_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1237_recOwned; + isErased = _1238_recErased; + readIdents = _1239_recIdents; } } else if (_source41.is_Passthrough) { - Dafny.ISequence _1241___mcc_h669 = _source41.dtor_Passthrough_a0; + Dafny.ISequence _1240___mcc_h669 = _source41.dtor_Passthrough_a0; { - Dafny.ISequence _1242_recursiveGen; - bool _1243_recOwned; - bool _1244_recErased; - Dafny.ISet> _1245_recIdents; + Dafny.ISequence _1241_recursiveGen; + bool _1242_recOwned; + bool _1243_recErased; + Dafny.ISet> _1244_recIdents; Dafny.ISequence _out668; bool _out669; bool _out670; Dafny.ISet> _out671; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out668, out _out669, out _out670, out _out671); - _1242_recursiveGen = _out668; - _1243_recOwned = _out669; - _1244_recErased = _out670; - _1245_recIdents = _out671; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1242_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1243_recOwned; - isErased = _1244_recErased; - readIdents = _1245_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out668, out _out669, out _out670, out _out671); + _1241_recursiveGen = _out668; + _1242_recOwned = _out669; + _1243_recErased = _out670; + _1244_recIdents = _out671; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1241_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1242_recOwned; + isErased = _1243_recErased; + readIdents = _1244_recIdents; } } else { - Dafny.ISequence _1246___mcc_h671 = _source41.dtor_TypeArg_a0; + Dafny.ISequence _1245___mcc_h671 = _source41.dtor_TypeArg_a0; { - Dafny.ISequence _1247_recursiveGen; - bool _1248_recOwned; - bool _1249_recErased; - Dafny.ISet> _1250_recIdents; + Dafny.ISequence _1246_recursiveGen; + bool _1247_recOwned; + bool _1248_recErased; + Dafny.ISet> _1249_recIdents; Dafny.ISequence _out672; bool _out673; bool _out674; Dafny.ISet> _out675; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out672, out _out673, out _out674, out _out675); - _1247_recursiveGen = _out672; - _1248_recOwned = _out673; - _1249_recErased = _out674; - _1250_recIdents = _out675; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1247_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1248_recOwned; - isErased = _1249_recErased; - readIdents = _1250_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out672, out _out673, out _out674, out _out675); + _1246_recursiveGen = _out672; + _1247_recOwned = _out673; + _1248_recErased = _out674; + _1249_recIdents = _out675; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1246_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1247_recOwned; + isErased = _1248_recErased; + readIdents = _1249_recIdents; } } } else if (_source27.is_Set) { - DAST._IType _1251___mcc_h673 = _source27.dtor_element; - DAST._IType _source43 = _665___mcc_h306; + DAST._IType _1250___mcc_h673 = _source27.dtor_element; + DAST._IType _source43 = _664___mcc_h306; if (_source43.is_Path) { - Dafny.ISequence> _1252___mcc_h677 = _source43.dtor_Path_a0; - Dafny.ISequence _1253___mcc_h678 = _source43.dtor_typeArgs; - DAST._IResolvedType _1254___mcc_h679 = _source43.dtor_resolved; - DAST._IResolvedType _source44 = _1254___mcc_h679; + Dafny.ISequence> _1251___mcc_h677 = _source43.dtor_Path_a0; + Dafny.ISequence _1252___mcc_h678 = _source43.dtor_typeArgs; + DAST._IResolvedType _1253___mcc_h679 = _source43.dtor_resolved; + DAST._IResolvedType _source44 = _1253___mcc_h679; if (_source44.is_Datatype) { - Dafny.ISequence> _1255___mcc_h683 = _source44.dtor_path; + Dafny.ISequence> _1254___mcc_h683 = _source44.dtor_path; { - Dafny.ISequence _1256_recursiveGen; - bool _1257_recOwned; - bool _1258_recErased; - Dafny.ISet> _1259_recIdents; + Dafny.ISequence _1255_recursiveGen; + bool _1256_recOwned; + bool _1257_recErased; + Dafny.ISet> _1258_recIdents; Dafny.ISequence _out676; bool _out677; bool _out678; Dafny.ISet> _out679; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out676, out _out677, out _out678, out _out679); - _1256_recursiveGen = _out676; - _1257_recOwned = _out677; - _1258_recErased = _out678; - _1259_recIdents = _out679; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1256_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1257_recOwned; - isErased = _1258_recErased; - readIdents = _1259_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out676, out _out677, out _out678, out _out679); + _1255_recursiveGen = _out676; + _1256_recOwned = _out677; + _1257_recErased = _out678; + _1258_recIdents = _out679; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1255_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1256_recOwned; + isErased = _1257_recErased; + readIdents = _1258_recIdents; } } else if (_source44.is_Trait) { - Dafny.ISequence> _1260___mcc_h685 = _source44.dtor_path; + Dafny.ISequence> _1259___mcc_h685 = _source44.dtor_path; { - Dafny.ISequence _1261_recursiveGen; - bool _1262_recOwned; - bool _1263_recErased; - Dafny.ISet> _1264_recIdents; + Dafny.ISequence _1260_recursiveGen; + bool _1261_recOwned; + bool _1262_recErased; + Dafny.ISet> _1263_recIdents; Dafny.ISequence _out680; bool _out681; bool _out682; Dafny.ISet> _out683; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out680, out _out681, out _out682, out _out683); - _1261_recursiveGen = _out680; - _1262_recOwned = _out681; - _1263_recErased = _out682; - _1264_recIdents = _out683; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1261_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1262_recOwned; - isErased = _1263_recErased; - readIdents = _1264_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out680, out _out681, out _out682, out _out683); + _1260_recursiveGen = _out680; + _1261_recOwned = _out681; + _1262_recErased = _out682; + _1263_recIdents = _out683; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1260_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1261_recOwned; + isErased = _1262_recErased; + readIdents = _1263_recIdents; } } else { - DAST._IType _1265___mcc_h687 = _source44.dtor_Newtype_a0; - DAST._IType _1266_b = _1265___mcc_h687; + DAST._IType _1264___mcc_h687 = _source44.dtor_Newtype_a0; + DAST._IType _1265_b = _1264___mcc_h687; { - if (object.Equals(_658_fromTpe, _1266_b)) { - Dafny.ISequence _1267_recursiveGen; - bool _1268_recOwned; - bool _1269_recErased; - Dafny.ISet> _1270_recIdents; + if (object.Equals(_657_fromTpe, _1265_b)) { + Dafny.ISequence _1266_recursiveGen; + bool _1267_recOwned; + bool _1268_recErased; + Dafny.ISet> _1269_recIdents; Dafny.ISequence _out684; bool _out685; bool _out686; Dafny.ISet> _out687; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out684, out _out685, out _out686, out _out687); - _1267_recursiveGen = _out684; - _1268_recOwned = _out685; - _1269_recErased = _out686; - _1270_recIdents = _out687; - Dafny.ISequence _1271_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out684, out _out685, out _out686, out _out687); + _1266_recursiveGen = _out684; + _1267_recOwned = _out685; + _1268_recErased = _out686; + _1269_recIdents = _out687; + Dafny.ISequence _1270_rhsType; Dafny.ISequence _out688; - _out688 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _1271_rhsType = _out688; - Dafny.ISequence _1272_uneraseFn; - _1272_uneraseFn = ((_1268_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1271_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1272_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1267_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _1268_recOwned; + _out688 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _1270_rhsType = _out688; + Dafny.ISequence _1271_uneraseFn; + _1271_uneraseFn = ((_1267_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1270_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1271_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1266_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _1267_recOwned; isErased = false; - readIdents = _1270_recIdents; + readIdents = _1269_recIdents; } else { Dafny.ISequence _out689; bool _out690; bool _out691; Dafny.ISet> _out692; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _1266_b), _1266_b, _657_toTpe), selfIdent, @params, mustOwn, out _out689, out _out690, out _out691, out _out692); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _1265_b), _1265_b, _656_toTpe), selfIdent, @params, mustOwn, out _out689, out _out690, out _out691, out _out692); s = _out689; isOwned = _out690; isErased = _out691; @@ -10644,327 +10613,327 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _1274_recursiveGen; - bool _1275_recOwned; - bool _1276_recErased; - Dafny.ISet> _1277_recIdents; + Dafny.ISequence _1273_recursiveGen; + bool _1274_recOwned; + bool _1275_recErased; + Dafny.ISet> _1276_recIdents; Dafny.ISequence _out693; bool _out694; bool _out695; Dafny.ISet> _out696; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out693, out _out694, out _out695, out _out696); - _1274_recursiveGen = _out693; - _1275_recOwned = _out694; - _1276_recErased = _out695; - _1277_recIdents = _out696; - if (!(_1275_recOwned)) { - _1274_recursiveGen = Dafny.Sequence.Concat(_1274_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out693, out _out694, out _out695, out _out696); + _1273_recursiveGen = _out693; + _1274_recOwned = _out694; + _1275_recErased = _out695; + _1276_recIdents = _out696; + if (!(_1274_recOwned)) { + _1273_recursiveGen = Dafny.Sequence.Concat(_1273_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1274_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1273_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _1276_recErased; - readIdents = _1277_recIdents; + isErased = _1275_recErased; + readIdents = _1276_recIdents; } } else if (_source43.is_Tuple) { - Dafny.ISequence _1278___mcc_h691 = _source43.dtor_Tuple_a0; + Dafny.ISequence _1277___mcc_h691 = _source43.dtor_Tuple_a0; { - Dafny.ISequence _1279_recursiveGen; - bool _1280_recOwned; - bool _1281_recErased; - Dafny.ISet> _1282_recIdents; + Dafny.ISequence _1278_recursiveGen; + bool _1279_recOwned; + bool _1280_recErased; + Dafny.ISet> _1281_recIdents; Dafny.ISequence _out697; bool _out698; bool _out699; Dafny.ISet> _out700; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out697, out _out698, out _out699, out _out700); - _1279_recursiveGen = _out697; - _1280_recOwned = _out698; - _1281_recErased = _out699; - _1282_recIdents = _out700; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1279_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1280_recOwned; - isErased = _1281_recErased; - readIdents = _1282_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out697, out _out698, out _out699, out _out700); + _1278_recursiveGen = _out697; + _1279_recOwned = _out698; + _1280_recErased = _out699; + _1281_recIdents = _out700; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1278_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1279_recOwned; + isErased = _1280_recErased; + readIdents = _1281_recIdents; } } else if (_source43.is_Array) { - DAST._IType _1283___mcc_h693 = _source43.dtor_element; - BigInteger _1284___mcc_h694 = _source43.dtor_dims; + DAST._IType _1282___mcc_h693 = _source43.dtor_element; + BigInteger _1283___mcc_h694 = _source43.dtor_dims; { - Dafny.ISequence _1285_recursiveGen; - bool _1286_recOwned; - bool _1287_recErased; - Dafny.ISet> _1288_recIdents; + Dafny.ISequence _1284_recursiveGen; + bool _1285_recOwned; + bool _1286_recErased; + Dafny.ISet> _1287_recIdents; Dafny.ISequence _out701; bool _out702; bool _out703; Dafny.ISet> _out704; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out701, out _out702, out _out703, out _out704); - _1285_recursiveGen = _out701; - _1286_recOwned = _out702; - _1287_recErased = _out703; - _1288_recIdents = _out704; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1285_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1286_recOwned; - isErased = _1287_recErased; - readIdents = _1288_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out701, out _out702, out _out703, out _out704); + _1284_recursiveGen = _out701; + _1285_recOwned = _out702; + _1286_recErased = _out703; + _1287_recIdents = _out704; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1284_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1285_recOwned; + isErased = _1286_recErased; + readIdents = _1287_recIdents; } } else if (_source43.is_Seq) { - DAST._IType _1289___mcc_h697 = _source43.dtor_element; + DAST._IType _1288___mcc_h697 = _source43.dtor_element; { - Dafny.ISequence _1290_recursiveGen; - bool _1291_recOwned; - bool _1292_recErased; - Dafny.ISet> _1293_recIdents; + Dafny.ISequence _1289_recursiveGen; + bool _1290_recOwned; + bool _1291_recErased; + Dafny.ISet> _1292_recIdents; Dafny.ISequence _out705; bool _out706; bool _out707; Dafny.ISet> _out708; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out705, out _out706, out _out707, out _out708); - _1290_recursiveGen = _out705; - _1291_recOwned = _out706; - _1292_recErased = _out707; - _1293_recIdents = _out708; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1290_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1291_recOwned; - isErased = _1292_recErased; - readIdents = _1293_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out705, out _out706, out _out707, out _out708); + _1289_recursiveGen = _out705; + _1290_recOwned = _out706; + _1291_recErased = _out707; + _1292_recIdents = _out708; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1289_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1290_recOwned; + isErased = _1291_recErased; + readIdents = _1292_recIdents; } } else if (_source43.is_Set) { - DAST._IType _1294___mcc_h699 = _source43.dtor_element; + DAST._IType _1293___mcc_h699 = _source43.dtor_element; { - Dafny.ISequence _1295_recursiveGen; - bool _1296_recOwned; - bool _1297_recErased; - Dafny.ISet> _1298_recIdents; + Dafny.ISequence _1294_recursiveGen; + bool _1295_recOwned; + bool _1296_recErased; + Dafny.ISet> _1297_recIdents; Dafny.ISequence _out709; bool _out710; bool _out711; Dafny.ISet> _out712; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out709, out _out710, out _out711, out _out712); - _1295_recursiveGen = _out709; - _1296_recOwned = _out710; - _1297_recErased = _out711; - _1298_recIdents = _out712; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1295_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1296_recOwned; - isErased = _1297_recErased; - readIdents = _1298_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out709, out _out710, out _out711, out _out712); + _1294_recursiveGen = _out709; + _1295_recOwned = _out710; + _1296_recErased = _out711; + _1297_recIdents = _out712; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1294_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1295_recOwned; + isErased = _1296_recErased; + readIdents = _1297_recIdents; } } else if (_source43.is_Multiset) { - DAST._IType _1299___mcc_h701 = _source43.dtor_element; + DAST._IType _1298___mcc_h701 = _source43.dtor_element; { - Dafny.ISequence _1300_recursiveGen; - bool _1301_recOwned; - bool _1302_recErased; - Dafny.ISet> _1303_recIdents; + Dafny.ISequence _1299_recursiveGen; + bool _1300_recOwned; + bool _1301_recErased; + Dafny.ISet> _1302_recIdents; Dafny.ISequence _out713; bool _out714; bool _out715; Dafny.ISet> _out716; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out713, out _out714, out _out715, out _out716); - _1300_recursiveGen = _out713; - _1301_recOwned = _out714; - _1302_recErased = _out715; - _1303_recIdents = _out716; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1300_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1301_recOwned; - isErased = _1302_recErased; - readIdents = _1303_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out713, out _out714, out _out715, out _out716); + _1299_recursiveGen = _out713; + _1300_recOwned = _out714; + _1301_recErased = _out715; + _1302_recIdents = _out716; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1299_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1300_recOwned; + isErased = _1301_recErased; + readIdents = _1302_recIdents; } } else if (_source43.is_Map) { - DAST._IType _1304___mcc_h703 = _source43.dtor_key; - DAST._IType _1305___mcc_h704 = _source43.dtor_value; + DAST._IType _1303___mcc_h703 = _source43.dtor_key; + DAST._IType _1304___mcc_h704 = _source43.dtor_value; { - Dafny.ISequence _1306_recursiveGen; - bool _1307_recOwned; - bool _1308_recErased; - Dafny.ISet> _1309_recIdents; + Dafny.ISequence _1305_recursiveGen; + bool _1306_recOwned; + bool _1307_recErased; + Dafny.ISet> _1308_recIdents; Dafny.ISequence _out717; bool _out718; bool _out719; Dafny.ISet> _out720; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out717, out _out718, out _out719, out _out720); - _1306_recursiveGen = _out717; - _1307_recOwned = _out718; - _1308_recErased = _out719; - _1309_recIdents = _out720; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1306_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1307_recOwned; - isErased = _1308_recErased; - readIdents = _1309_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out717, out _out718, out _out719, out _out720); + _1305_recursiveGen = _out717; + _1306_recOwned = _out718; + _1307_recErased = _out719; + _1308_recIdents = _out720; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1305_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1306_recOwned; + isErased = _1307_recErased; + readIdents = _1308_recIdents; } } else if (_source43.is_Arrow) { - Dafny.ISequence _1310___mcc_h707 = _source43.dtor_args; - DAST._IType _1311___mcc_h708 = _source43.dtor_result; + Dafny.ISequence _1309___mcc_h707 = _source43.dtor_args; + DAST._IType _1310___mcc_h708 = _source43.dtor_result; { - Dafny.ISequence _1312_recursiveGen; - bool _1313_recOwned; - bool _1314_recErased; - Dafny.ISet> _1315_recIdents; + Dafny.ISequence _1311_recursiveGen; + bool _1312_recOwned; + bool _1313_recErased; + Dafny.ISet> _1314_recIdents; Dafny.ISequence _out721; bool _out722; bool _out723; Dafny.ISet> _out724; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out721, out _out722, out _out723, out _out724); - _1312_recursiveGen = _out721; - _1313_recOwned = _out722; - _1314_recErased = _out723; - _1315_recIdents = _out724; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1312_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1313_recOwned; - isErased = _1314_recErased; - readIdents = _1315_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out721, out _out722, out _out723, out _out724); + _1311_recursiveGen = _out721; + _1312_recOwned = _out722; + _1313_recErased = _out723; + _1314_recIdents = _out724; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1311_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1312_recOwned; + isErased = _1313_recErased; + readIdents = _1314_recIdents; } } else if (_source43.is_Primitive) { - DAST._IPrimitive _1316___mcc_h711 = _source43.dtor_Primitive_a0; + DAST._IPrimitive _1315___mcc_h711 = _source43.dtor_Primitive_a0; { - Dafny.ISequence _1317_recursiveGen; - bool _1318_recOwned; - bool _1319_recErased; - Dafny.ISet> _1320_recIdents; + Dafny.ISequence _1316_recursiveGen; + bool _1317_recOwned; + bool _1318_recErased; + Dafny.ISet> _1319_recIdents; Dafny.ISequence _out725; bool _out726; bool _out727; Dafny.ISet> _out728; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out725, out _out726, out _out727, out _out728); - _1317_recursiveGen = _out725; - _1318_recOwned = _out726; - _1319_recErased = _out727; - _1320_recIdents = _out728; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1317_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1318_recOwned; - isErased = _1319_recErased; - readIdents = _1320_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out725, out _out726, out _out727, out _out728); + _1316_recursiveGen = _out725; + _1317_recOwned = _out726; + _1318_recErased = _out727; + _1319_recIdents = _out728; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1316_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1317_recOwned; + isErased = _1318_recErased; + readIdents = _1319_recIdents; } } else if (_source43.is_Passthrough) { - Dafny.ISequence _1321___mcc_h713 = _source43.dtor_Passthrough_a0; + Dafny.ISequence _1320___mcc_h713 = _source43.dtor_Passthrough_a0; { - Dafny.ISequence _1322_recursiveGen; - bool _1323_recOwned; - bool _1324_recErased; - Dafny.ISet> _1325_recIdents; + Dafny.ISequence _1321_recursiveGen; + bool _1322_recOwned; + bool _1323_recErased; + Dafny.ISet> _1324_recIdents; Dafny.ISequence _out729; bool _out730; bool _out731; Dafny.ISet> _out732; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out729, out _out730, out _out731, out _out732); - _1322_recursiveGen = _out729; - _1323_recOwned = _out730; - _1324_recErased = _out731; - _1325_recIdents = _out732; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1322_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1323_recOwned; - isErased = _1324_recErased; - readIdents = _1325_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out729, out _out730, out _out731, out _out732); + _1321_recursiveGen = _out729; + _1322_recOwned = _out730; + _1323_recErased = _out731; + _1324_recIdents = _out732; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1321_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1322_recOwned; + isErased = _1323_recErased; + readIdents = _1324_recIdents; } } else { - Dafny.ISequence _1326___mcc_h715 = _source43.dtor_TypeArg_a0; + Dafny.ISequence _1325___mcc_h715 = _source43.dtor_TypeArg_a0; { - Dafny.ISequence _1327_recursiveGen; - bool _1328_recOwned; - bool _1329_recErased; - Dafny.ISet> _1330_recIdents; + Dafny.ISequence _1326_recursiveGen; + bool _1327_recOwned; + bool _1328_recErased; + Dafny.ISet> _1329_recIdents; Dafny.ISequence _out733; bool _out734; bool _out735; Dafny.ISet> _out736; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out733, out _out734, out _out735, out _out736); - _1327_recursiveGen = _out733; - _1328_recOwned = _out734; - _1329_recErased = _out735; - _1330_recIdents = _out736; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1327_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1328_recOwned; - isErased = _1329_recErased; - readIdents = _1330_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out733, out _out734, out _out735, out _out736); + _1326_recursiveGen = _out733; + _1327_recOwned = _out734; + _1328_recErased = _out735; + _1329_recIdents = _out736; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1326_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1327_recOwned; + isErased = _1328_recErased; + readIdents = _1329_recIdents; } } } else if (_source27.is_Multiset) { - DAST._IType _1331___mcc_h717 = _source27.dtor_element; - DAST._IType _source45 = _665___mcc_h306; + DAST._IType _1330___mcc_h717 = _source27.dtor_element; + DAST._IType _source45 = _664___mcc_h306; if (_source45.is_Path) { - Dafny.ISequence> _1332___mcc_h721 = _source45.dtor_Path_a0; - Dafny.ISequence _1333___mcc_h722 = _source45.dtor_typeArgs; - DAST._IResolvedType _1334___mcc_h723 = _source45.dtor_resolved; - DAST._IResolvedType _source46 = _1334___mcc_h723; + Dafny.ISequence> _1331___mcc_h721 = _source45.dtor_Path_a0; + Dafny.ISequence _1332___mcc_h722 = _source45.dtor_typeArgs; + DAST._IResolvedType _1333___mcc_h723 = _source45.dtor_resolved; + DAST._IResolvedType _source46 = _1333___mcc_h723; if (_source46.is_Datatype) { - Dafny.ISequence> _1335___mcc_h727 = _source46.dtor_path; + Dafny.ISequence> _1334___mcc_h727 = _source46.dtor_path; { - Dafny.ISequence _1336_recursiveGen; - bool _1337_recOwned; - bool _1338_recErased; - Dafny.ISet> _1339_recIdents; + Dafny.ISequence _1335_recursiveGen; + bool _1336_recOwned; + bool _1337_recErased; + Dafny.ISet> _1338_recIdents; Dafny.ISequence _out737; bool _out738; bool _out739; Dafny.ISet> _out740; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out737, out _out738, out _out739, out _out740); - _1336_recursiveGen = _out737; - _1337_recOwned = _out738; - _1338_recErased = _out739; - _1339_recIdents = _out740; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1336_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1337_recOwned; - isErased = _1338_recErased; - readIdents = _1339_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out737, out _out738, out _out739, out _out740); + _1335_recursiveGen = _out737; + _1336_recOwned = _out738; + _1337_recErased = _out739; + _1338_recIdents = _out740; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1335_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1336_recOwned; + isErased = _1337_recErased; + readIdents = _1338_recIdents; } } else if (_source46.is_Trait) { - Dafny.ISequence> _1340___mcc_h729 = _source46.dtor_path; + Dafny.ISequence> _1339___mcc_h729 = _source46.dtor_path; { - Dafny.ISequence _1341_recursiveGen; - bool _1342_recOwned; - bool _1343_recErased; - Dafny.ISet> _1344_recIdents; + Dafny.ISequence _1340_recursiveGen; + bool _1341_recOwned; + bool _1342_recErased; + Dafny.ISet> _1343_recIdents; Dafny.ISequence _out741; bool _out742; bool _out743; Dafny.ISet> _out744; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out741, out _out742, out _out743, out _out744); - _1341_recursiveGen = _out741; - _1342_recOwned = _out742; - _1343_recErased = _out743; - _1344_recIdents = _out744; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1341_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1342_recOwned; - isErased = _1343_recErased; - readIdents = _1344_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out741, out _out742, out _out743, out _out744); + _1340_recursiveGen = _out741; + _1341_recOwned = _out742; + _1342_recErased = _out743; + _1343_recIdents = _out744; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1340_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1341_recOwned; + isErased = _1342_recErased; + readIdents = _1343_recIdents; } } else { - DAST._IType _1345___mcc_h731 = _source46.dtor_Newtype_a0; - DAST._IType _1346_b = _1345___mcc_h731; + DAST._IType _1344___mcc_h731 = _source46.dtor_Newtype_a0; + DAST._IType _1345_b = _1344___mcc_h731; { - if (object.Equals(_658_fromTpe, _1346_b)) { - Dafny.ISequence _1347_recursiveGen; - bool _1348_recOwned; - bool _1349_recErased; - Dafny.ISet> _1350_recIdents; + if (object.Equals(_657_fromTpe, _1345_b)) { + Dafny.ISequence _1346_recursiveGen; + bool _1347_recOwned; + bool _1348_recErased; + Dafny.ISet> _1349_recIdents; Dafny.ISequence _out745; bool _out746; bool _out747; Dafny.ISet> _out748; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out745, out _out746, out _out747, out _out748); - _1347_recursiveGen = _out745; - _1348_recOwned = _out746; - _1349_recErased = _out747; - _1350_recIdents = _out748; - Dafny.ISequence _1351_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out745, out _out746, out _out747, out _out748); + _1346_recursiveGen = _out745; + _1347_recOwned = _out746; + _1348_recErased = _out747; + _1349_recIdents = _out748; + Dafny.ISequence _1350_rhsType; Dafny.ISequence _out749; - _out749 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _1351_rhsType = _out749; - Dafny.ISequence _1352_uneraseFn; - _1352_uneraseFn = ((_1348_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1351_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1352_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1347_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _1348_recOwned; + _out749 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _1350_rhsType = _out749; + Dafny.ISequence _1351_uneraseFn; + _1351_uneraseFn = ((_1347_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1350_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1351_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1346_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _1347_recOwned; isErased = false; - readIdents = _1350_recIdents; + readIdents = _1349_recIdents; } else { Dafny.ISequence _out750; bool _out751; bool _out752; Dafny.ISet> _out753; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _1346_b), _1346_b, _657_toTpe), selfIdent, @params, mustOwn, out _out750, out _out751, out _out752, out _out753); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _1345_b), _1345_b, _656_toTpe), selfIdent, @params, mustOwn, out _out750, out _out751, out _out752, out _out753); s = _out750; isOwned = _out751; isErased = _out752; @@ -10973,328 +10942,328 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _1354_recursiveGen; - bool _1355_recOwned; - bool _1356_recErased; - Dafny.ISet> _1357_recIdents; + Dafny.ISequence _1353_recursiveGen; + bool _1354_recOwned; + bool _1355_recErased; + Dafny.ISet> _1356_recIdents; Dafny.ISequence _out754; bool _out755; bool _out756; Dafny.ISet> _out757; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out754, out _out755, out _out756, out _out757); - _1354_recursiveGen = _out754; - _1355_recOwned = _out755; - _1356_recErased = _out756; - _1357_recIdents = _out757; - if (!(_1355_recOwned)) { - _1354_recursiveGen = Dafny.Sequence.Concat(_1354_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out754, out _out755, out _out756, out _out757); + _1353_recursiveGen = _out754; + _1354_recOwned = _out755; + _1355_recErased = _out756; + _1356_recIdents = _out757; + if (!(_1354_recOwned)) { + _1353_recursiveGen = Dafny.Sequence.Concat(_1353_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1354_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1353_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _1356_recErased; - readIdents = _1357_recIdents; + isErased = _1355_recErased; + readIdents = _1356_recIdents; } } else if (_source45.is_Tuple) { - Dafny.ISequence _1358___mcc_h735 = _source45.dtor_Tuple_a0; + Dafny.ISequence _1357___mcc_h735 = _source45.dtor_Tuple_a0; { - Dafny.ISequence _1359_recursiveGen; - bool _1360_recOwned; - bool _1361_recErased; - Dafny.ISet> _1362_recIdents; + Dafny.ISequence _1358_recursiveGen; + bool _1359_recOwned; + bool _1360_recErased; + Dafny.ISet> _1361_recIdents; Dafny.ISequence _out758; bool _out759; bool _out760; Dafny.ISet> _out761; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out758, out _out759, out _out760, out _out761); - _1359_recursiveGen = _out758; - _1360_recOwned = _out759; - _1361_recErased = _out760; - _1362_recIdents = _out761; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1359_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1360_recOwned; - isErased = _1361_recErased; - readIdents = _1362_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out758, out _out759, out _out760, out _out761); + _1358_recursiveGen = _out758; + _1359_recOwned = _out759; + _1360_recErased = _out760; + _1361_recIdents = _out761; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1358_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1359_recOwned; + isErased = _1360_recErased; + readIdents = _1361_recIdents; } } else if (_source45.is_Array) { - DAST._IType _1363___mcc_h737 = _source45.dtor_element; - BigInteger _1364___mcc_h738 = _source45.dtor_dims; + DAST._IType _1362___mcc_h737 = _source45.dtor_element; + BigInteger _1363___mcc_h738 = _source45.dtor_dims; { - Dafny.ISequence _1365_recursiveGen; - bool _1366_recOwned; - bool _1367_recErased; - Dafny.ISet> _1368_recIdents; + Dafny.ISequence _1364_recursiveGen; + bool _1365_recOwned; + bool _1366_recErased; + Dafny.ISet> _1367_recIdents; Dafny.ISequence _out762; bool _out763; bool _out764; Dafny.ISet> _out765; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out762, out _out763, out _out764, out _out765); - _1365_recursiveGen = _out762; - _1366_recOwned = _out763; - _1367_recErased = _out764; - _1368_recIdents = _out765; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1365_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1366_recOwned; - isErased = _1367_recErased; - readIdents = _1368_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out762, out _out763, out _out764, out _out765); + _1364_recursiveGen = _out762; + _1365_recOwned = _out763; + _1366_recErased = _out764; + _1367_recIdents = _out765; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1364_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1365_recOwned; + isErased = _1366_recErased; + readIdents = _1367_recIdents; } } else if (_source45.is_Seq) { - DAST._IType _1369___mcc_h741 = _source45.dtor_element; + DAST._IType _1368___mcc_h741 = _source45.dtor_element; { - Dafny.ISequence _1370_recursiveGen; - bool _1371_recOwned; - bool _1372_recErased; - Dafny.ISet> _1373_recIdents; + Dafny.ISequence _1369_recursiveGen; + bool _1370_recOwned; + bool _1371_recErased; + Dafny.ISet> _1372_recIdents; Dafny.ISequence _out766; bool _out767; bool _out768; Dafny.ISet> _out769; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out766, out _out767, out _out768, out _out769); - _1370_recursiveGen = _out766; - _1371_recOwned = _out767; - _1372_recErased = _out768; - _1373_recIdents = _out769; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1370_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1371_recOwned; - isErased = _1372_recErased; - readIdents = _1373_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out766, out _out767, out _out768, out _out769); + _1369_recursiveGen = _out766; + _1370_recOwned = _out767; + _1371_recErased = _out768; + _1372_recIdents = _out769; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1369_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1370_recOwned; + isErased = _1371_recErased; + readIdents = _1372_recIdents; } } else if (_source45.is_Set) { - DAST._IType _1374___mcc_h743 = _source45.dtor_element; + DAST._IType _1373___mcc_h743 = _source45.dtor_element; { - Dafny.ISequence _1375_recursiveGen; - bool _1376_recOwned; - bool _1377_recErased; - Dafny.ISet> _1378_recIdents; + Dafny.ISequence _1374_recursiveGen; + bool _1375_recOwned; + bool _1376_recErased; + Dafny.ISet> _1377_recIdents; Dafny.ISequence _out770; bool _out771; bool _out772; Dafny.ISet> _out773; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out770, out _out771, out _out772, out _out773); - _1375_recursiveGen = _out770; - _1376_recOwned = _out771; - _1377_recErased = _out772; - _1378_recIdents = _out773; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1375_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1376_recOwned; - isErased = _1377_recErased; - readIdents = _1378_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out770, out _out771, out _out772, out _out773); + _1374_recursiveGen = _out770; + _1375_recOwned = _out771; + _1376_recErased = _out772; + _1377_recIdents = _out773; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1374_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1375_recOwned; + isErased = _1376_recErased; + readIdents = _1377_recIdents; } } else if (_source45.is_Multiset) { - DAST._IType _1379___mcc_h745 = _source45.dtor_element; + DAST._IType _1378___mcc_h745 = _source45.dtor_element; { - Dafny.ISequence _1380_recursiveGen; - bool _1381_recOwned; - bool _1382_recErased; - Dafny.ISet> _1383_recIdents; + Dafny.ISequence _1379_recursiveGen; + bool _1380_recOwned; + bool _1381_recErased; + Dafny.ISet> _1382_recIdents; Dafny.ISequence _out774; bool _out775; bool _out776; Dafny.ISet> _out777; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out774, out _out775, out _out776, out _out777); - _1380_recursiveGen = _out774; - _1381_recOwned = _out775; - _1382_recErased = _out776; - _1383_recIdents = _out777; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1380_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1381_recOwned; - isErased = _1382_recErased; - readIdents = _1383_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out774, out _out775, out _out776, out _out777); + _1379_recursiveGen = _out774; + _1380_recOwned = _out775; + _1381_recErased = _out776; + _1382_recIdents = _out777; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1379_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1380_recOwned; + isErased = _1381_recErased; + readIdents = _1382_recIdents; } } else if (_source45.is_Map) { - DAST._IType _1384___mcc_h747 = _source45.dtor_key; - DAST._IType _1385___mcc_h748 = _source45.dtor_value; + DAST._IType _1383___mcc_h747 = _source45.dtor_key; + DAST._IType _1384___mcc_h748 = _source45.dtor_value; { - Dafny.ISequence _1386_recursiveGen; - bool _1387_recOwned; - bool _1388_recErased; - Dafny.ISet> _1389_recIdents; + Dafny.ISequence _1385_recursiveGen; + bool _1386_recOwned; + bool _1387_recErased; + Dafny.ISet> _1388_recIdents; Dafny.ISequence _out778; bool _out779; bool _out780; Dafny.ISet> _out781; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out778, out _out779, out _out780, out _out781); - _1386_recursiveGen = _out778; - _1387_recOwned = _out779; - _1388_recErased = _out780; - _1389_recIdents = _out781; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1386_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1387_recOwned; - isErased = _1388_recErased; - readIdents = _1389_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out778, out _out779, out _out780, out _out781); + _1385_recursiveGen = _out778; + _1386_recOwned = _out779; + _1387_recErased = _out780; + _1388_recIdents = _out781; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1385_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1386_recOwned; + isErased = _1387_recErased; + readIdents = _1388_recIdents; } } else if (_source45.is_Arrow) { - Dafny.ISequence _1390___mcc_h751 = _source45.dtor_args; - DAST._IType _1391___mcc_h752 = _source45.dtor_result; + Dafny.ISequence _1389___mcc_h751 = _source45.dtor_args; + DAST._IType _1390___mcc_h752 = _source45.dtor_result; { - Dafny.ISequence _1392_recursiveGen; - bool _1393_recOwned; - bool _1394_recErased; - Dafny.ISet> _1395_recIdents; + Dafny.ISequence _1391_recursiveGen; + bool _1392_recOwned; + bool _1393_recErased; + Dafny.ISet> _1394_recIdents; Dafny.ISequence _out782; bool _out783; bool _out784; Dafny.ISet> _out785; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out782, out _out783, out _out784, out _out785); - _1392_recursiveGen = _out782; - _1393_recOwned = _out783; - _1394_recErased = _out784; - _1395_recIdents = _out785; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1392_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1393_recOwned; - isErased = _1394_recErased; - readIdents = _1395_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out782, out _out783, out _out784, out _out785); + _1391_recursiveGen = _out782; + _1392_recOwned = _out783; + _1393_recErased = _out784; + _1394_recIdents = _out785; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1391_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1392_recOwned; + isErased = _1393_recErased; + readIdents = _1394_recIdents; } } else if (_source45.is_Primitive) { - DAST._IPrimitive _1396___mcc_h755 = _source45.dtor_Primitive_a0; + DAST._IPrimitive _1395___mcc_h755 = _source45.dtor_Primitive_a0; { - Dafny.ISequence _1397_recursiveGen; - bool _1398_recOwned; - bool _1399_recErased; - Dafny.ISet> _1400_recIdents; + Dafny.ISequence _1396_recursiveGen; + bool _1397_recOwned; + bool _1398_recErased; + Dafny.ISet> _1399_recIdents; Dafny.ISequence _out786; bool _out787; bool _out788; Dafny.ISet> _out789; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out786, out _out787, out _out788, out _out789); - _1397_recursiveGen = _out786; - _1398_recOwned = _out787; - _1399_recErased = _out788; - _1400_recIdents = _out789; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1397_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1398_recOwned; - isErased = _1399_recErased; - readIdents = _1400_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out786, out _out787, out _out788, out _out789); + _1396_recursiveGen = _out786; + _1397_recOwned = _out787; + _1398_recErased = _out788; + _1399_recIdents = _out789; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1396_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1397_recOwned; + isErased = _1398_recErased; + readIdents = _1399_recIdents; } } else if (_source45.is_Passthrough) { - Dafny.ISequence _1401___mcc_h757 = _source45.dtor_Passthrough_a0; + Dafny.ISequence _1400___mcc_h757 = _source45.dtor_Passthrough_a0; { - Dafny.ISequence _1402_recursiveGen; - bool _1403_recOwned; - bool _1404_recErased; - Dafny.ISet> _1405_recIdents; + Dafny.ISequence _1401_recursiveGen; + bool _1402_recOwned; + bool _1403_recErased; + Dafny.ISet> _1404_recIdents; Dafny.ISequence _out790; bool _out791; bool _out792; Dafny.ISet> _out793; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out790, out _out791, out _out792, out _out793); - _1402_recursiveGen = _out790; - _1403_recOwned = _out791; - _1404_recErased = _out792; - _1405_recIdents = _out793; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1402_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1403_recOwned; - isErased = _1404_recErased; - readIdents = _1405_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out790, out _out791, out _out792, out _out793); + _1401_recursiveGen = _out790; + _1402_recOwned = _out791; + _1403_recErased = _out792; + _1404_recIdents = _out793; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1401_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1402_recOwned; + isErased = _1403_recErased; + readIdents = _1404_recIdents; } } else { - Dafny.ISequence _1406___mcc_h759 = _source45.dtor_TypeArg_a0; + Dafny.ISequence _1405___mcc_h759 = _source45.dtor_TypeArg_a0; { - Dafny.ISequence _1407_recursiveGen; - bool _1408_recOwned; - bool _1409_recErased; - Dafny.ISet> _1410_recIdents; + Dafny.ISequence _1406_recursiveGen; + bool _1407_recOwned; + bool _1408_recErased; + Dafny.ISet> _1409_recIdents; Dafny.ISequence _out794; bool _out795; bool _out796; Dafny.ISet> _out797; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out794, out _out795, out _out796, out _out797); - _1407_recursiveGen = _out794; - _1408_recOwned = _out795; - _1409_recErased = _out796; - _1410_recIdents = _out797; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1407_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1408_recOwned; - isErased = _1409_recErased; - readIdents = _1410_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out794, out _out795, out _out796, out _out797); + _1406_recursiveGen = _out794; + _1407_recOwned = _out795; + _1408_recErased = _out796; + _1409_recIdents = _out797; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1406_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1407_recOwned; + isErased = _1408_recErased; + readIdents = _1409_recIdents; } } } else if (_source27.is_Map) { - DAST._IType _1411___mcc_h761 = _source27.dtor_key; - DAST._IType _1412___mcc_h762 = _source27.dtor_value; - DAST._IType _source47 = _665___mcc_h306; + DAST._IType _1410___mcc_h761 = _source27.dtor_key; + DAST._IType _1411___mcc_h762 = _source27.dtor_value; + DAST._IType _source47 = _664___mcc_h306; if (_source47.is_Path) { - Dafny.ISequence> _1413___mcc_h769 = _source47.dtor_Path_a0; - Dafny.ISequence _1414___mcc_h770 = _source47.dtor_typeArgs; - DAST._IResolvedType _1415___mcc_h771 = _source47.dtor_resolved; - DAST._IResolvedType _source48 = _1415___mcc_h771; + Dafny.ISequence> _1412___mcc_h769 = _source47.dtor_Path_a0; + Dafny.ISequence _1413___mcc_h770 = _source47.dtor_typeArgs; + DAST._IResolvedType _1414___mcc_h771 = _source47.dtor_resolved; + DAST._IResolvedType _source48 = _1414___mcc_h771; if (_source48.is_Datatype) { - Dafny.ISequence> _1416___mcc_h775 = _source48.dtor_path; + Dafny.ISequence> _1415___mcc_h775 = _source48.dtor_path; { - Dafny.ISequence _1417_recursiveGen; - bool _1418_recOwned; - bool _1419_recErased; - Dafny.ISet> _1420_recIdents; + Dafny.ISequence _1416_recursiveGen; + bool _1417_recOwned; + bool _1418_recErased; + Dafny.ISet> _1419_recIdents; Dafny.ISequence _out798; bool _out799; bool _out800; Dafny.ISet> _out801; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out798, out _out799, out _out800, out _out801); - _1417_recursiveGen = _out798; - _1418_recOwned = _out799; - _1419_recErased = _out800; - _1420_recIdents = _out801; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1417_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1418_recOwned; - isErased = _1419_recErased; - readIdents = _1420_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out798, out _out799, out _out800, out _out801); + _1416_recursiveGen = _out798; + _1417_recOwned = _out799; + _1418_recErased = _out800; + _1419_recIdents = _out801; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1416_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1417_recOwned; + isErased = _1418_recErased; + readIdents = _1419_recIdents; } } else if (_source48.is_Trait) { - Dafny.ISequence> _1421___mcc_h777 = _source48.dtor_path; + Dafny.ISequence> _1420___mcc_h777 = _source48.dtor_path; { - Dafny.ISequence _1422_recursiveGen; - bool _1423_recOwned; - bool _1424_recErased; - Dafny.ISet> _1425_recIdents; + Dafny.ISequence _1421_recursiveGen; + bool _1422_recOwned; + bool _1423_recErased; + Dafny.ISet> _1424_recIdents; Dafny.ISequence _out802; bool _out803; bool _out804; Dafny.ISet> _out805; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out802, out _out803, out _out804, out _out805); - _1422_recursiveGen = _out802; - _1423_recOwned = _out803; - _1424_recErased = _out804; - _1425_recIdents = _out805; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1422_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1423_recOwned; - isErased = _1424_recErased; - readIdents = _1425_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out802, out _out803, out _out804, out _out805); + _1421_recursiveGen = _out802; + _1422_recOwned = _out803; + _1423_recErased = _out804; + _1424_recIdents = _out805; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1421_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1422_recOwned; + isErased = _1423_recErased; + readIdents = _1424_recIdents; } } else { - DAST._IType _1426___mcc_h779 = _source48.dtor_Newtype_a0; - DAST._IType _1427_b = _1426___mcc_h779; + DAST._IType _1425___mcc_h779 = _source48.dtor_Newtype_a0; + DAST._IType _1426_b = _1425___mcc_h779; { - if (object.Equals(_658_fromTpe, _1427_b)) { - Dafny.ISequence _1428_recursiveGen; - bool _1429_recOwned; - bool _1430_recErased; - Dafny.ISet> _1431_recIdents; + if (object.Equals(_657_fromTpe, _1426_b)) { + Dafny.ISequence _1427_recursiveGen; + bool _1428_recOwned; + bool _1429_recErased; + Dafny.ISet> _1430_recIdents; Dafny.ISequence _out806; bool _out807; bool _out808; Dafny.ISet> _out809; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out806, out _out807, out _out808, out _out809); - _1428_recursiveGen = _out806; - _1429_recOwned = _out807; - _1430_recErased = _out808; - _1431_recIdents = _out809; - Dafny.ISequence _1432_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out806, out _out807, out _out808, out _out809); + _1427_recursiveGen = _out806; + _1428_recOwned = _out807; + _1429_recErased = _out808; + _1430_recIdents = _out809; + Dafny.ISequence _1431_rhsType; Dafny.ISequence _out810; - _out810 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _1432_rhsType = _out810; - Dafny.ISequence _1433_uneraseFn; - _1433_uneraseFn = ((_1429_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1432_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1433_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1428_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _1429_recOwned; + _out810 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _1431_rhsType = _out810; + Dafny.ISequence _1432_uneraseFn; + _1432_uneraseFn = ((_1428_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1431_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1432_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1427_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _1428_recOwned; isErased = false; - readIdents = _1431_recIdents; + readIdents = _1430_recIdents; } else { Dafny.ISequence _out811; bool _out812; bool _out813; Dafny.ISet> _out814; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _1427_b), _1427_b, _657_toTpe), selfIdent, @params, mustOwn, out _out811, out _out812, out _out813, out _out814); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _1426_b), _1426_b, _656_toTpe), selfIdent, @params, mustOwn, out _out811, out _out812, out _out813, out _out814); s = _out811; isOwned = _out812; isErased = _out813; @@ -11303,328 +11272,328 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _1435_recursiveGen; - bool _1436_recOwned; - bool _1437_recErased; - Dafny.ISet> _1438_recIdents; + Dafny.ISequence _1434_recursiveGen; + bool _1435_recOwned; + bool _1436_recErased; + Dafny.ISet> _1437_recIdents; Dafny.ISequence _out815; bool _out816; bool _out817; Dafny.ISet> _out818; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out815, out _out816, out _out817, out _out818); - _1435_recursiveGen = _out815; - _1436_recOwned = _out816; - _1437_recErased = _out817; - _1438_recIdents = _out818; - if (!(_1436_recOwned)) { - _1435_recursiveGen = Dafny.Sequence.Concat(_1435_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out815, out _out816, out _out817, out _out818); + _1434_recursiveGen = _out815; + _1435_recOwned = _out816; + _1436_recErased = _out817; + _1437_recIdents = _out818; + if (!(_1435_recOwned)) { + _1434_recursiveGen = Dafny.Sequence.Concat(_1434_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1435_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1434_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _1437_recErased; - readIdents = _1438_recIdents; + isErased = _1436_recErased; + readIdents = _1437_recIdents; } } else if (_source47.is_Tuple) { - Dafny.ISequence _1439___mcc_h783 = _source47.dtor_Tuple_a0; + Dafny.ISequence _1438___mcc_h783 = _source47.dtor_Tuple_a0; { - Dafny.ISequence _1440_recursiveGen; - bool _1441_recOwned; - bool _1442_recErased; - Dafny.ISet> _1443_recIdents; + Dafny.ISequence _1439_recursiveGen; + bool _1440_recOwned; + bool _1441_recErased; + Dafny.ISet> _1442_recIdents; Dafny.ISequence _out819; bool _out820; bool _out821; Dafny.ISet> _out822; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out819, out _out820, out _out821, out _out822); - _1440_recursiveGen = _out819; - _1441_recOwned = _out820; - _1442_recErased = _out821; - _1443_recIdents = _out822; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1440_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1441_recOwned; - isErased = _1442_recErased; - readIdents = _1443_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out819, out _out820, out _out821, out _out822); + _1439_recursiveGen = _out819; + _1440_recOwned = _out820; + _1441_recErased = _out821; + _1442_recIdents = _out822; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1439_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1440_recOwned; + isErased = _1441_recErased; + readIdents = _1442_recIdents; } } else if (_source47.is_Array) { - DAST._IType _1444___mcc_h785 = _source47.dtor_element; - BigInteger _1445___mcc_h786 = _source47.dtor_dims; + DAST._IType _1443___mcc_h785 = _source47.dtor_element; + BigInteger _1444___mcc_h786 = _source47.dtor_dims; { - Dafny.ISequence _1446_recursiveGen; - bool _1447_recOwned; - bool _1448_recErased; - Dafny.ISet> _1449_recIdents; + Dafny.ISequence _1445_recursiveGen; + bool _1446_recOwned; + bool _1447_recErased; + Dafny.ISet> _1448_recIdents; Dafny.ISequence _out823; bool _out824; bool _out825; Dafny.ISet> _out826; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out823, out _out824, out _out825, out _out826); - _1446_recursiveGen = _out823; - _1447_recOwned = _out824; - _1448_recErased = _out825; - _1449_recIdents = _out826; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1446_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1447_recOwned; - isErased = _1448_recErased; - readIdents = _1449_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out823, out _out824, out _out825, out _out826); + _1445_recursiveGen = _out823; + _1446_recOwned = _out824; + _1447_recErased = _out825; + _1448_recIdents = _out826; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1445_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1446_recOwned; + isErased = _1447_recErased; + readIdents = _1448_recIdents; } } else if (_source47.is_Seq) { - DAST._IType _1450___mcc_h789 = _source47.dtor_element; + DAST._IType _1449___mcc_h789 = _source47.dtor_element; { - Dafny.ISequence _1451_recursiveGen; - bool _1452_recOwned; - bool _1453_recErased; - Dafny.ISet> _1454_recIdents; + Dafny.ISequence _1450_recursiveGen; + bool _1451_recOwned; + bool _1452_recErased; + Dafny.ISet> _1453_recIdents; Dafny.ISequence _out827; bool _out828; bool _out829; Dafny.ISet> _out830; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out827, out _out828, out _out829, out _out830); - _1451_recursiveGen = _out827; - _1452_recOwned = _out828; - _1453_recErased = _out829; - _1454_recIdents = _out830; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1451_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1452_recOwned; - isErased = _1453_recErased; - readIdents = _1454_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out827, out _out828, out _out829, out _out830); + _1450_recursiveGen = _out827; + _1451_recOwned = _out828; + _1452_recErased = _out829; + _1453_recIdents = _out830; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1450_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1451_recOwned; + isErased = _1452_recErased; + readIdents = _1453_recIdents; } } else if (_source47.is_Set) { - DAST._IType _1455___mcc_h791 = _source47.dtor_element; + DAST._IType _1454___mcc_h791 = _source47.dtor_element; { - Dafny.ISequence _1456_recursiveGen; - bool _1457_recOwned; - bool _1458_recErased; - Dafny.ISet> _1459_recIdents; + Dafny.ISequence _1455_recursiveGen; + bool _1456_recOwned; + bool _1457_recErased; + Dafny.ISet> _1458_recIdents; Dafny.ISequence _out831; bool _out832; bool _out833; Dafny.ISet> _out834; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out831, out _out832, out _out833, out _out834); - _1456_recursiveGen = _out831; - _1457_recOwned = _out832; - _1458_recErased = _out833; - _1459_recIdents = _out834; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1456_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1457_recOwned; - isErased = _1458_recErased; - readIdents = _1459_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out831, out _out832, out _out833, out _out834); + _1455_recursiveGen = _out831; + _1456_recOwned = _out832; + _1457_recErased = _out833; + _1458_recIdents = _out834; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1455_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1456_recOwned; + isErased = _1457_recErased; + readIdents = _1458_recIdents; } } else if (_source47.is_Multiset) { - DAST._IType _1460___mcc_h793 = _source47.dtor_element; + DAST._IType _1459___mcc_h793 = _source47.dtor_element; { - Dafny.ISequence _1461_recursiveGen; - bool _1462_recOwned; - bool _1463_recErased; - Dafny.ISet> _1464_recIdents; + Dafny.ISequence _1460_recursiveGen; + bool _1461_recOwned; + bool _1462_recErased; + Dafny.ISet> _1463_recIdents; Dafny.ISequence _out835; bool _out836; bool _out837; Dafny.ISet> _out838; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out835, out _out836, out _out837, out _out838); - _1461_recursiveGen = _out835; - _1462_recOwned = _out836; - _1463_recErased = _out837; - _1464_recIdents = _out838; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1461_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1462_recOwned; - isErased = _1463_recErased; - readIdents = _1464_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out835, out _out836, out _out837, out _out838); + _1460_recursiveGen = _out835; + _1461_recOwned = _out836; + _1462_recErased = _out837; + _1463_recIdents = _out838; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1460_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1461_recOwned; + isErased = _1462_recErased; + readIdents = _1463_recIdents; } } else if (_source47.is_Map) { - DAST._IType _1465___mcc_h795 = _source47.dtor_key; - DAST._IType _1466___mcc_h796 = _source47.dtor_value; + DAST._IType _1464___mcc_h795 = _source47.dtor_key; + DAST._IType _1465___mcc_h796 = _source47.dtor_value; { - Dafny.ISequence _1467_recursiveGen; - bool _1468_recOwned; - bool _1469_recErased; - Dafny.ISet> _1470_recIdents; + Dafny.ISequence _1466_recursiveGen; + bool _1467_recOwned; + bool _1468_recErased; + Dafny.ISet> _1469_recIdents; Dafny.ISequence _out839; bool _out840; bool _out841; Dafny.ISet> _out842; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out839, out _out840, out _out841, out _out842); - _1467_recursiveGen = _out839; - _1468_recOwned = _out840; - _1469_recErased = _out841; - _1470_recIdents = _out842; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1467_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1468_recOwned; - isErased = _1469_recErased; - readIdents = _1470_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out839, out _out840, out _out841, out _out842); + _1466_recursiveGen = _out839; + _1467_recOwned = _out840; + _1468_recErased = _out841; + _1469_recIdents = _out842; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1466_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1467_recOwned; + isErased = _1468_recErased; + readIdents = _1469_recIdents; } } else if (_source47.is_Arrow) { - Dafny.ISequence _1471___mcc_h799 = _source47.dtor_args; - DAST._IType _1472___mcc_h800 = _source47.dtor_result; + Dafny.ISequence _1470___mcc_h799 = _source47.dtor_args; + DAST._IType _1471___mcc_h800 = _source47.dtor_result; { - Dafny.ISequence _1473_recursiveGen; - bool _1474_recOwned; - bool _1475_recErased; - Dafny.ISet> _1476_recIdents; + Dafny.ISequence _1472_recursiveGen; + bool _1473_recOwned; + bool _1474_recErased; + Dafny.ISet> _1475_recIdents; Dafny.ISequence _out843; bool _out844; bool _out845; Dafny.ISet> _out846; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out843, out _out844, out _out845, out _out846); - _1473_recursiveGen = _out843; - _1474_recOwned = _out844; - _1475_recErased = _out845; - _1476_recIdents = _out846; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1473_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1474_recOwned; - isErased = _1475_recErased; - readIdents = _1476_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out843, out _out844, out _out845, out _out846); + _1472_recursiveGen = _out843; + _1473_recOwned = _out844; + _1474_recErased = _out845; + _1475_recIdents = _out846; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1472_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1473_recOwned; + isErased = _1474_recErased; + readIdents = _1475_recIdents; } } else if (_source47.is_Primitive) { - DAST._IPrimitive _1477___mcc_h803 = _source47.dtor_Primitive_a0; + DAST._IPrimitive _1476___mcc_h803 = _source47.dtor_Primitive_a0; { - Dafny.ISequence _1478_recursiveGen; - bool _1479_recOwned; - bool _1480_recErased; - Dafny.ISet> _1481_recIdents; + Dafny.ISequence _1477_recursiveGen; + bool _1478_recOwned; + bool _1479_recErased; + Dafny.ISet> _1480_recIdents; Dafny.ISequence _out847; bool _out848; bool _out849; Dafny.ISet> _out850; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out847, out _out848, out _out849, out _out850); - _1478_recursiveGen = _out847; - _1479_recOwned = _out848; - _1480_recErased = _out849; - _1481_recIdents = _out850; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1478_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1479_recOwned; - isErased = _1480_recErased; - readIdents = _1481_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out847, out _out848, out _out849, out _out850); + _1477_recursiveGen = _out847; + _1478_recOwned = _out848; + _1479_recErased = _out849; + _1480_recIdents = _out850; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1477_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1478_recOwned; + isErased = _1479_recErased; + readIdents = _1480_recIdents; } } else if (_source47.is_Passthrough) { - Dafny.ISequence _1482___mcc_h805 = _source47.dtor_Passthrough_a0; + Dafny.ISequence _1481___mcc_h805 = _source47.dtor_Passthrough_a0; { - Dafny.ISequence _1483_recursiveGen; - bool _1484_recOwned; - bool _1485_recErased; - Dafny.ISet> _1486_recIdents; + Dafny.ISequence _1482_recursiveGen; + bool _1483_recOwned; + bool _1484_recErased; + Dafny.ISet> _1485_recIdents; Dafny.ISequence _out851; bool _out852; bool _out853; Dafny.ISet> _out854; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out851, out _out852, out _out853, out _out854); - _1483_recursiveGen = _out851; - _1484_recOwned = _out852; - _1485_recErased = _out853; - _1486_recIdents = _out854; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1483_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1484_recOwned; - isErased = _1485_recErased; - readIdents = _1486_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out851, out _out852, out _out853, out _out854); + _1482_recursiveGen = _out851; + _1483_recOwned = _out852; + _1484_recErased = _out853; + _1485_recIdents = _out854; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1482_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1483_recOwned; + isErased = _1484_recErased; + readIdents = _1485_recIdents; } } else { - Dafny.ISequence _1487___mcc_h807 = _source47.dtor_TypeArg_a0; + Dafny.ISequence _1486___mcc_h807 = _source47.dtor_TypeArg_a0; { - Dafny.ISequence _1488_recursiveGen; - bool _1489_recOwned; - bool _1490_recErased; - Dafny.ISet> _1491_recIdents; + Dafny.ISequence _1487_recursiveGen; + bool _1488_recOwned; + bool _1489_recErased; + Dafny.ISet> _1490_recIdents; Dafny.ISequence _out855; bool _out856; bool _out857; Dafny.ISet> _out858; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out855, out _out856, out _out857, out _out858); - _1488_recursiveGen = _out855; - _1489_recOwned = _out856; - _1490_recErased = _out857; - _1491_recIdents = _out858; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1488_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1489_recOwned; - isErased = _1490_recErased; - readIdents = _1491_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out855, out _out856, out _out857, out _out858); + _1487_recursiveGen = _out855; + _1488_recOwned = _out856; + _1489_recErased = _out857; + _1490_recIdents = _out858; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1487_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1488_recOwned; + isErased = _1489_recErased; + readIdents = _1490_recIdents; } } } else if (_source27.is_Arrow) { - Dafny.ISequence _1492___mcc_h809 = _source27.dtor_args; - DAST._IType _1493___mcc_h810 = _source27.dtor_result; - DAST._IType _source49 = _665___mcc_h306; + Dafny.ISequence _1491___mcc_h809 = _source27.dtor_args; + DAST._IType _1492___mcc_h810 = _source27.dtor_result; + DAST._IType _source49 = _664___mcc_h306; if (_source49.is_Path) { - Dafny.ISequence> _1494___mcc_h817 = _source49.dtor_Path_a0; - Dafny.ISequence _1495___mcc_h818 = _source49.dtor_typeArgs; - DAST._IResolvedType _1496___mcc_h819 = _source49.dtor_resolved; - DAST._IResolvedType _source50 = _1496___mcc_h819; + Dafny.ISequence> _1493___mcc_h817 = _source49.dtor_Path_a0; + Dafny.ISequence _1494___mcc_h818 = _source49.dtor_typeArgs; + DAST._IResolvedType _1495___mcc_h819 = _source49.dtor_resolved; + DAST._IResolvedType _source50 = _1495___mcc_h819; if (_source50.is_Datatype) { - Dafny.ISequence> _1497___mcc_h823 = _source50.dtor_path; + Dafny.ISequence> _1496___mcc_h823 = _source50.dtor_path; { - Dafny.ISequence _1498_recursiveGen; - bool _1499_recOwned; - bool _1500_recErased; - Dafny.ISet> _1501_recIdents; + Dafny.ISequence _1497_recursiveGen; + bool _1498_recOwned; + bool _1499_recErased; + Dafny.ISet> _1500_recIdents; Dafny.ISequence _out859; bool _out860; bool _out861; Dafny.ISet> _out862; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out859, out _out860, out _out861, out _out862); - _1498_recursiveGen = _out859; - _1499_recOwned = _out860; - _1500_recErased = _out861; - _1501_recIdents = _out862; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1498_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1499_recOwned; - isErased = _1500_recErased; - readIdents = _1501_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out859, out _out860, out _out861, out _out862); + _1497_recursiveGen = _out859; + _1498_recOwned = _out860; + _1499_recErased = _out861; + _1500_recIdents = _out862; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1497_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1498_recOwned; + isErased = _1499_recErased; + readIdents = _1500_recIdents; } } else if (_source50.is_Trait) { - Dafny.ISequence> _1502___mcc_h825 = _source50.dtor_path; + Dafny.ISequence> _1501___mcc_h825 = _source50.dtor_path; { - Dafny.ISequence _1503_recursiveGen; - bool _1504_recOwned; - bool _1505_recErased; - Dafny.ISet> _1506_recIdents; + Dafny.ISequence _1502_recursiveGen; + bool _1503_recOwned; + bool _1504_recErased; + Dafny.ISet> _1505_recIdents; Dafny.ISequence _out863; bool _out864; bool _out865; Dafny.ISet> _out866; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out863, out _out864, out _out865, out _out866); - _1503_recursiveGen = _out863; - _1504_recOwned = _out864; - _1505_recErased = _out865; - _1506_recIdents = _out866; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1503_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1504_recOwned; - isErased = _1505_recErased; - readIdents = _1506_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out863, out _out864, out _out865, out _out866); + _1502_recursiveGen = _out863; + _1503_recOwned = _out864; + _1504_recErased = _out865; + _1505_recIdents = _out866; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1502_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1503_recOwned; + isErased = _1504_recErased; + readIdents = _1505_recIdents; } } else { - DAST._IType _1507___mcc_h827 = _source50.dtor_Newtype_a0; - DAST._IType _1508_b = _1507___mcc_h827; + DAST._IType _1506___mcc_h827 = _source50.dtor_Newtype_a0; + DAST._IType _1507_b = _1506___mcc_h827; { - if (object.Equals(_658_fromTpe, _1508_b)) { - Dafny.ISequence _1509_recursiveGen; - bool _1510_recOwned; - bool _1511_recErased; - Dafny.ISet> _1512_recIdents; + if (object.Equals(_657_fromTpe, _1507_b)) { + Dafny.ISequence _1508_recursiveGen; + bool _1509_recOwned; + bool _1510_recErased; + Dafny.ISet> _1511_recIdents; Dafny.ISequence _out867; bool _out868; bool _out869; Dafny.ISet> _out870; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out867, out _out868, out _out869, out _out870); - _1509_recursiveGen = _out867; - _1510_recOwned = _out868; - _1511_recErased = _out869; - _1512_recIdents = _out870; - Dafny.ISequence _1513_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out867, out _out868, out _out869, out _out870); + _1508_recursiveGen = _out867; + _1509_recOwned = _out868; + _1510_recErased = _out869; + _1511_recIdents = _out870; + Dafny.ISequence _1512_rhsType; Dafny.ISequence _out871; - _out871 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _1513_rhsType = _out871; - Dafny.ISequence _1514_uneraseFn; - _1514_uneraseFn = ((_1510_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1513_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1514_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1509_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _1510_recOwned; + _out871 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _1512_rhsType = _out871; + Dafny.ISequence _1513_uneraseFn; + _1513_uneraseFn = ((_1509_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1512_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1513_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1508_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _1509_recOwned; isErased = false; - readIdents = _1512_recIdents; + readIdents = _1511_recIdents; } else { Dafny.ISequence _out872; bool _out873; bool _out874; Dafny.ISet> _out875; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _1508_b), _1508_b, _657_toTpe), selfIdent, @params, mustOwn, out _out872, out _out873, out _out874, out _out875); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _1507_b), _1507_b, _656_toTpe), selfIdent, @params, mustOwn, out _out872, out _out873, out _out874, out _out875); s = _out872; isOwned = _out873; isErased = _out874; @@ -11633,329 +11602,329 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _1516_recursiveGen; - bool _1517_recOwned; - bool _1518_recErased; - Dafny.ISet> _1519_recIdents; + Dafny.ISequence _1515_recursiveGen; + bool _1516_recOwned; + bool _1517_recErased; + Dafny.ISet> _1518_recIdents; Dafny.ISequence _out876; bool _out877; bool _out878; Dafny.ISet> _out879; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out876, out _out877, out _out878, out _out879); - _1516_recursiveGen = _out876; - _1517_recOwned = _out877; - _1518_recErased = _out878; - _1519_recIdents = _out879; - if (!(_1517_recOwned)) { - _1516_recursiveGen = Dafny.Sequence.Concat(_1516_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out876, out _out877, out _out878, out _out879); + _1515_recursiveGen = _out876; + _1516_recOwned = _out877; + _1517_recErased = _out878; + _1518_recIdents = _out879; + if (!(_1516_recOwned)) { + _1515_recursiveGen = Dafny.Sequence.Concat(_1515_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1516_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1515_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _1518_recErased; - readIdents = _1519_recIdents; + isErased = _1517_recErased; + readIdents = _1518_recIdents; } } else if (_source49.is_Tuple) { - Dafny.ISequence _1520___mcc_h831 = _source49.dtor_Tuple_a0; + Dafny.ISequence _1519___mcc_h831 = _source49.dtor_Tuple_a0; { - Dafny.ISequence _1521_recursiveGen; - bool _1522_recOwned; - bool _1523_recErased; - Dafny.ISet> _1524_recIdents; + Dafny.ISequence _1520_recursiveGen; + bool _1521_recOwned; + bool _1522_recErased; + Dafny.ISet> _1523_recIdents; Dafny.ISequence _out880; bool _out881; bool _out882; Dafny.ISet> _out883; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out880, out _out881, out _out882, out _out883); - _1521_recursiveGen = _out880; - _1522_recOwned = _out881; - _1523_recErased = _out882; - _1524_recIdents = _out883; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1521_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1522_recOwned; - isErased = _1523_recErased; - readIdents = _1524_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out880, out _out881, out _out882, out _out883); + _1520_recursiveGen = _out880; + _1521_recOwned = _out881; + _1522_recErased = _out882; + _1523_recIdents = _out883; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1520_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1521_recOwned; + isErased = _1522_recErased; + readIdents = _1523_recIdents; } } else if (_source49.is_Array) { - DAST._IType _1525___mcc_h833 = _source49.dtor_element; - BigInteger _1526___mcc_h834 = _source49.dtor_dims; + DAST._IType _1524___mcc_h833 = _source49.dtor_element; + BigInteger _1525___mcc_h834 = _source49.dtor_dims; { - Dafny.ISequence _1527_recursiveGen; - bool _1528_recOwned; - bool _1529_recErased; - Dafny.ISet> _1530_recIdents; + Dafny.ISequence _1526_recursiveGen; + bool _1527_recOwned; + bool _1528_recErased; + Dafny.ISet> _1529_recIdents; Dafny.ISequence _out884; bool _out885; bool _out886; Dafny.ISet> _out887; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out884, out _out885, out _out886, out _out887); - _1527_recursiveGen = _out884; - _1528_recOwned = _out885; - _1529_recErased = _out886; - _1530_recIdents = _out887; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1527_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1528_recOwned; - isErased = _1529_recErased; - readIdents = _1530_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out884, out _out885, out _out886, out _out887); + _1526_recursiveGen = _out884; + _1527_recOwned = _out885; + _1528_recErased = _out886; + _1529_recIdents = _out887; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1526_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1527_recOwned; + isErased = _1528_recErased; + readIdents = _1529_recIdents; } } else if (_source49.is_Seq) { - DAST._IType _1531___mcc_h837 = _source49.dtor_element; + DAST._IType _1530___mcc_h837 = _source49.dtor_element; { - Dafny.ISequence _1532_recursiveGen; - bool _1533_recOwned; - bool _1534_recErased; - Dafny.ISet> _1535_recIdents; + Dafny.ISequence _1531_recursiveGen; + bool _1532_recOwned; + bool _1533_recErased; + Dafny.ISet> _1534_recIdents; Dafny.ISequence _out888; bool _out889; bool _out890; Dafny.ISet> _out891; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out888, out _out889, out _out890, out _out891); - _1532_recursiveGen = _out888; - _1533_recOwned = _out889; - _1534_recErased = _out890; - _1535_recIdents = _out891; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1532_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1533_recOwned; - isErased = _1534_recErased; - readIdents = _1535_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out888, out _out889, out _out890, out _out891); + _1531_recursiveGen = _out888; + _1532_recOwned = _out889; + _1533_recErased = _out890; + _1534_recIdents = _out891; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1531_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1532_recOwned; + isErased = _1533_recErased; + readIdents = _1534_recIdents; } } else if (_source49.is_Set) { - DAST._IType _1536___mcc_h839 = _source49.dtor_element; + DAST._IType _1535___mcc_h839 = _source49.dtor_element; { - Dafny.ISequence _1537_recursiveGen; - bool _1538_recOwned; - bool _1539_recErased; - Dafny.ISet> _1540_recIdents; + Dafny.ISequence _1536_recursiveGen; + bool _1537_recOwned; + bool _1538_recErased; + Dafny.ISet> _1539_recIdents; Dafny.ISequence _out892; bool _out893; bool _out894; Dafny.ISet> _out895; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out892, out _out893, out _out894, out _out895); - _1537_recursiveGen = _out892; - _1538_recOwned = _out893; - _1539_recErased = _out894; - _1540_recIdents = _out895; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1537_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1538_recOwned; - isErased = _1539_recErased; - readIdents = _1540_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out892, out _out893, out _out894, out _out895); + _1536_recursiveGen = _out892; + _1537_recOwned = _out893; + _1538_recErased = _out894; + _1539_recIdents = _out895; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1536_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1537_recOwned; + isErased = _1538_recErased; + readIdents = _1539_recIdents; } } else if (_source49.is_Multiset) { - DAST._IType _1541___mcc_h841 = _source49.dtor_element; + DAST._IType _1540___mcc_h841 = _source49.dtor_element; { - Dafny.ISequence _1542_recursiveGen; - bool _1543_recOwned; - bool _1544_recErased; - Dafny.ISet> _1545_recIdents; + Dafny.ISequence _1541_recursiveGen; + bool _1542_recOwned; + bool _1543_recErased; + Dafny.ISet> _1544_recIdents; Dafny.ISequence _out896; bool _out897; bool _out898; Dafny.ISet> _out899; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out896, out _out897, out _out898, out _out899); - _1542_recursiveGen = _out896; - _1543_recOwned = _out897; - _1544_recErased = _out898; - _1545_recIdents = _out899; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1542_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1543_recOwned; - isErased = _1544_recErased; - readIdents = _1545_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out896, out _out897, out _out898, out _out899); + _1541_recursiveGen = _out896; + _1542_recOwned = _out897; + _1543_recErased = _out898; + _1544_recIdents = _out899; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1541_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1542_recOwned; + isErased = _1543_recErased; + readIdents = _1544_recIdents; } } else if (_source49.is_Map) { - DAST._IType _1546___mcc_h843 = _source49.dtor_key; - DAST._IType _1547___mcc_h844 = _source49.dtor_value; + DAST._IType _1545___mcc_h843 = _source49.dtor_key; + DAST._IType _1546___mcc_h844 = _source49.dtor_value; { - Dafny.ISequence _1548_recursiveGen; - bool _1549_recOwned; - bool _1550_recErased; - Dafny.ISet> _1551_recIdents; + Dafny.ISequence _1547_recursiveGen; + bool _1548_recOwned; + bool _1549_recErased; + Dafny.ISet> _1550_recIdents; Dafny.ISequence _out900; bool _out901; bool _out902; Dafny.ISet> _out903; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out900, out _out901, out _out902, out _out903); - _1548_recursiveGen = _out900; - _1549_recOwned = _out901; - _1550_recErased = _out902; - _1551_recIdents = _out903; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1548_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1549_recOwned; - isErased = _1550_recErased; - readIdents = _1551_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out900, out _out901, out _out902, out _out903); + _1547_recursiveGen = _out900; + _1548_recOwned = _out901; + _1549_recErased = _out902; + _1550_recIdents = _out903; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1547_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1548_recOwned; + isErased = _1549_recErased; + readIdents = _1550_recIdents; } } else if (_source49.is_Arrow) { - Dafny.ISequence _1552___mcc_h847 = _source49.dtor_args; - DAST._IType _1553___mcc_h848 = _source49.dtor_result; + Dafny.ISequence _1551___mcc_h847 = _source49.dtor_args; + DAST._IType _1552___mcc_h848 = _source49.dtor_result; { - Dafny.ISequence _1554_recursiveGen; - bool _1555_recOwned; - bool _1556_recErased; - Dafny.ISet> _1557_recIdents; + Dafny.ISequence _1553_recursiveGen; + bool _1554_recOwned; + bool _1555_recErased; + Dafny.ISet> _1556_recIdents; Dafny.ISequence _out904; bool _out905; bool _out906; Dafny.ISet> _out907; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out904, out _out905, out _out906, out _out907); - _1554_recursiveGen = _out904; - _1555_recOwned = _out905; - _1556_recErased = _out906; - _1557_recIdents = _out907; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1554_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1555_recOwned; - isErased = _1556_recErased; - readIdents = _1557_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out904, out _out905, out _out906, out _out907); + _1553_recursiveGen = _out904; + _1554_recOwned = _out905; + _1555_recErased = _out906; + _1556_recIdents = _out907; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1553_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1554_recOwned; + isErased = _1555_recErased; + readIdents = _1556_recIdents; } } else if (_source49.is_Primitive) { - DAST._IPrimitive _1558___mcc_h851 = _source49.dtor_Primitive_a0; + DAST._IPrimitive _1557___mcc_h851 = _source49.dtor_Primitive_a0; { - Dafny.ISequence _1559_recursiveGen; - bool _1560_recOwned; - bool _1561_recErased; - Dafny.ISet> _1562_recIdents; + Dafny.ISequence _1558_recursiveGen; + bool _1559_recOwned; + bool _1560_recErased; + Dafny.ISet> _1561_recIdents; Dafny.ISequence _out908; bool _out909; bool _out910; Dafny.ISet> _out911; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out908, out _out909, out _out910, out _out911); - _1559_recursiveGen = _out908; - _1560_recOwned = _out909; - _1561_recErased = _out910; - _1562_recIdents = _out911; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1559_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1560_recOwned; - isErased = _1561_recErased; - readIdents = _1562_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out908, out _out909, out _out910, out _out911); + _1558_recursiveGen = _out908; + _1559_recOwned = _out909; + _1560_recErased = _out910; + _1561_recIdents = _out911; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1558_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1559_recOwned; + isErased = _1560_recErased; + readIdents = _1561_recIdents; } } else if (_source49.is_Passthrough) { - Dafny.ISequence _1563___mcc_h853 = _source49.dtor_Passthrough_a0; + Dafny.ISequence _1562___mcc_h853 = _source49.dtor_Passthrough_a0; { - Dafny.ISequence _1564_recursiveGen; - bool _1565_recOwned; - bool _1566_recErased; - Dafny.ISet> _1567_recIdents; + Dafny.ISequence _1563_recursiveGen; + bool _1564_recOwned; + bool _1565_recErased; + Dafny.ISet> _1566_recIdents; Dafny.ISequence _out912; bool _out913; bool _out914; Dafny.ISet> _out915; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out912, out _out913, out _out914, out _out915); - _1564_recursiveGen = _out912; - _1565_recOwned = _out913; - _1566_recErased = _out914; - _1567_recIdents = _out915; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1564_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1565_recOwned; - isErased = _1566_recErased; - readIdents = _1567_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out912, out _out913, out _out914, out _out915); + _1563_recursiveGen = _out912; + _1564_recOwned = _out913; + _1565_recErased = _out914; + _1566_recIdents = _out915; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1563_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1564_recOwned; + isErased = _1565_recErased; + readIdents = _1566_recIdents; } } else { - Dafny.ISequence _1568___mcc_h855 = _source49.dtor_TypeArg_a0; + Dafny.ISequence _1567___mcc_h855 = _source49.dtor_TypeArg_a0; { - Dafny.ISequence _1569_recursiveGen; - bool _1570_recOwned; - bool _1571_recErased; - Dafny.ISet> _1572_recIdents; + Dafny.ISequence _1568_recursiveGen; + bool _1569_recOwned; + bool _1570_recErased; + Dafny.ISet> _1571_recIdents; Dafny.ISequence _out916; bool _out917; bool _out918; Dafny.ISet> _out919; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out916, out _out917, out _out918, out _out919); - _1569_recursiveGen = _out916; - _1570_recOwned = _out917; - _1571_recErased = _out918; - _1572_recIdents = _out919; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1569_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1570_recOwned; - isErased = _1571_recErased; - readIdents = _1572_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out916, out _out917, out _out918, out _out919); + _1568_recursiveGen = _out916; + _1569_recOwned = _out917; + _1570_recErased = _out918; + _1571_recIdents = _out919; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1568_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1569_recOwned; + isErased = _1570_recErased; + readIdents = _1571_recIdents; } } } else if (_source27.is_Primitive) { - DAST._IPrimitive _1573___mcc_h857 = _source27.dtor_Primitive_a0; - DAST._IPrimitive _source51 = _1573___mcc_h857; + DAST._IPrimitive _1572___mcc_h857 = _source27.dtor_Primitive_a0; + DAST._IPrimitive _source51 = _1572___mcc_h857; if (_source51.is_Int) { - DAST._IType _source52 = _665___mcc_h306; + DAST._IType _source52 = _664___mcc_h306; if (_source52.is_Path) { - Dafny.ISequence> _1574___mcc_h861 = _source52.dtor_Path_a0; - Dafny.ISequence _1575___mcc_h862 = _source52.dtor_typeArgs; - DAST._IResolvedType _1576___mcc_h863 = _source52.dtor_resolved; - DAST._IResolvedType _source53 = _1576___mcc_h863; + Dafny.ISequence> _1573___mcc_h861 = _source52.dtor_Path_a0; + Dafny.ISequence _1574___mcc_h862 = _source52.dtor_typeArgs; + DAST._IResolvedType _1575___mcc_h863 = _source52.dtor_resolved; + DAST._IResolvedType _source53 = _1575___mcc_h863; if (_source53.is_Datatype) { - Dafny.ISequence> _1577___mcc_h867 = _source53.dtor_path; + Dafny.ISequence> _1576___mcc_h867 = _source53.dtor_path; { - Dafny.ISequence _1578_recursiveGen; - bool _1579_recOwned; - bool _1580_recErased; - Dafny.ISet> _1581_recIdents; + Dafny.ISequence _1577_recursiveGen; + bool _1578_recOwned; + bool _1579_recErased; + Dafny.ISet> _1580_recIdents; Dafny.ISequence _out920; bool _out921; bool _out922; Dafny.ISet> _out923; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out920, out _out921, out _out922, out _out923); - _1578_recursiveGen = _out920; - _1579_recOwned = _out921; - _1580_recErased = _out922; - _1581_recIdents = _out923; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1578_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1579_recOwned; - isErased = _1580_recErased; - readIdents = _1581_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out920, out _out921, out _out922, out _out923); + _1577_recursiveGen = _out920; + _1578_recOwned = _out921; + _1579_recErased = _out922; + _1580_recIdents = _out923; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1577_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1578_recOwned; + isErased = _1579_recErased; + readIdents = _1580_recIdents; } } else if (_source53.is_Trait) { - Dafny.ISequence> _1582___mcc_h869 = _source53.dtor_path; + Dafny.ISequence> _1581___mcc_h869 = _source53.dtor_path; { - Dafny.ISequence _1583_recursiveGen; - bool _1584_recOwned; - bool _1585_recErased; - Dafny.ISet> _1586_recIdents; + Dafny.ISequence _1582_recursiveGen; + bool _1583_recOwned; + bool _1584_recErased; + Dafny.ISet> _1585_recIdents; Dafny.ISequence _out924; bool _out925; bool _out926; Dafny.ISet> _out927; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out924, out _out925, out _out926, out _out927); - _1583_recursiveGen = _out924; - _1584_recOwned = _out925; - _1585_recErased = _out926; - _1586_recIdents = _out927; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1583_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1584_recOwned; - isErased = _1585_recErased; - readIdents = _1586_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out924, out _out925, out _out926, out _out927); + _1582_recursiveGen = _out924; + _1583_recOwned = _out925; + _1584_recErased = _out926; + _1585_recIdents = _out927; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1582_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1583_recOwned; + isErased = _1584_recErased; + readIdents = _1585_recIdents; } } else { - DAST._IType _1587___mcc_h871 = _source53.dtor_Newtype_a0; - DAST._IType _1588_b = _1587___mcc_h871; + DAST._IType _1586___mcc_h871 = _source53.dtor_Newtype_a0; + DAST._IType _1587_b = _1586___mcc_h871; { - if (object.Equals(_658_fromTpe, _1588_b)) { - Dafny.ISequence _1589_recursiveGen; - bool _1590_recOwned; - bool _1591_recErased; - Dafny.ISet> _1592_recIdents; + if (object.Equals(_657_fromTpe, _1587_b)) { + Dafny.ISequence _1588_recursiveGen; + bool _1589_recOwned; + bool _1590_recErased; + Dafny.ISet> _1591_recIdents; Dafny.ISequence _out928; bool _out929; bool _out930; Dafny.ISet> _out931; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out928, out _out929, out _out930, out _out931); - _1589_recursiveGen = _out928; - _1590_recOwned = _out929; - _1591_recErased = _out930; - _1592_recIdents = _out931; - Dafny.ISequence _1593_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out928, out _out929, out _out930, out _out931); + _1588_recursiveGen = _out928; + _1589_recOwned = _out929; + _1590_recErased = _out930; + _1591_recIdents = _out931; + Dafny.ISequence _1592_rhsType; Dafny.ISequence _out932; - _out932 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _1593_rhsType = _out932; - Dafny.ISequence _1594_uneraseFn; - _1594_uneraseFn = ((_1590_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1593_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1594_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1589_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _1590_recOwned; + _out932 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _1592_rhsType = _out932; + Dafny.ISequence _1593_uneraseFn; + _1593_uneraseFn = ((_1589_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1592_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1593_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1588_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _1589_recOwned; isErased = false; - readIdents = _1592_recIdents; + readIdents = _1591_recIdents; } else { Dafny.ISequence _out933; bool _out934; bool _out935; Dafny.ISet> _out936; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _1588_b), _1588_b, _657_toTpe), selfIdent, @params, mustOwn, out _out933, out _out934, out _out935, out _out936); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _1587_b), _1587_b, _656_toTpe), selfIdent, @params, mustOwn, out _out933, out _out934, out _out935, out _out936); s = _out933; isOwned = _out934; isErased = _out935; @@ -11964,417 +11933,417 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _1596_recursiveGen; - bool _1597_recOwned; - bool _1598_recErased; - Dafny.ISet> _1599_recIdents; + Dafny.ISequence _1595_recursiveGen; + bool _1596_recOwned; + bool _1597_recErased; + Dafny.ISet> _1598_recIdents; Dafny.ISequence _out937; bool _out938; bool _out939; Dafny.ISet> _out940; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out937, out _out938, out _out939, out _out940); - _1596_recursiveGen = _out937; - _1597_recOwned = _out938; - _1598_recErased = _out939; - _1599_recIdents = _out940; - if (!(_1597_recOwned)) { - _1596_recursiveGen = Dafny.Sequence.Concat(_1596_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out937, out _out938, out _out939, out _out940); + _1595_recursiveGen = _out937; + _1596_recOwned = _out938; + _1597_recErased = _out939; + _1598_recIdents = _out940; + if (!(_1596_recOwned)) { + _1595_recursiveGen = Dafny.Sequence.Concat(_1595_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1596_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1595_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _1598_recErased; - readIdents = _1599_recIdents; + isErased = _1597_recErased; + readIdents = _1598_recIdents; } } else if (_source52.is_Tuple) { - Dafny.ISequence _1600___mcc_h875 = _source52.dtor_Tuple_a0; + Dafny.ISequence _1599___mcc_h875 = _source52.dtor_Tuple_a0; { - Dafny.ISequence _1601_recursiveGen; - bool _1602_recOwned; - bool _1603_recErased; - Dafny.ISet> _1604_recIdents; + Dafny.ISequence _1600_recursiveGen; + bool _1601_recOwned; + bool _1602_recErased; + Dafny.ISet> _1603_recIdents; Dafny.ISequence _out941; bool _out942; bool _out943; Dafny.ISet> _out944; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out941, out _out942, out _out943, out _out944); - _1601_recursiveGen = _out941; - _1602_recOwned = _out942; - _1603_recErased = _out943; - _1604_recIdents = _out944; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1601_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1602_recOwned; - isErased = _1603_recErased; - readIdents = _1604_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out941, out _out942, out _out943, out _out944); + _1600_recursiveGen = _out941; + _1601_recOwned = _out942; + _1602_recErased = _out943; + _1603_recIdents = _out944; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1600_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1601_recOwned; + isErased = _1602_recErased; + readIdents = _1603_recIdents; } } else if (_source52.is_Array) { - DAST._IType _1605___mcc_h877 = _source52.dtor_element; - BigInteger _1606___mcc_h878 = _source52.dtor_dims; + DAST._IType _1604___mcc_h877 = _source52.dtor_element; + BigInteger _1605___mcc_h878 = _source52.dtor_dims; { - Dafny.ISequence _1607_recursiveGen; - bool _1608_recOwned; - bool _1609_recErased; - Dafny.ISet> _1610_recIdents; + Dafny.ISequence _1606_recursiveGen; + bool _1607_recOwned; + bool _1608_recErased; + Dafny.ISet> _1609_recIdents; Dafny.ISequence _out945; bool _out946; bool _out947; Dafny.ISet> _out948; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out945, out _out946, out _out947, out _out948); - _1607_recursiveGen = _out945; - _1608_recOwned = _out946; - _1609_recErased = _out947; - _1610_recIdents = _out948; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1607_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1608_recOwned; - isErased = _1609_recErased; - readIdents = _1610_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out945, out _out946, out _out947, out _out948); + _1606_recursiveGen = _out945; + _1607_recOwned = _out946; + _1608_recErased = _out947; + _1609_recIdents = _out948; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1606_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1607_recOwned; + isErased = _1608_recErased; + readIdents = _1609_recIdents; } } else if (_source52.is_Seq) { - DAST._IType _1611___mcc_h881 = _source52.dtor_element; + DAST._IType _1610___mcc_h881 = _source52.dtor_element; { - Dafny.ISequence _1612_recursiveGen; - bool _1613_recOwned; - bool _1614_recErased; - Dafny.ISet> _1615_recIdents; + Dafny.ISequence _1611_recursiveGen; + bool _1612_recOwned; + bool _1613_recErased; + Dafny.ISet> _1614_recIdents; Dafny.ISequence _out949; bool _out950; bool _out951; Dafny.ISet> _out952; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out949, out _out950, out _out951, out _out952); - _1612_recursiveGen = _out949; - _1613_recOwned = _out950; - _1614_recErased = _out951; - _1615_recIdents = _out952; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1612_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1613_recOwned; - isErased = _1614_recErased; - readIdents = _1615_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out949, out _out950, out _out951, out _out952); + _1611_recursiveGen = _out949; + _1612_recOwned = _out950; + _1613_recErased = _out951; + _1614_recIdents = _out952; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1611_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1612_recOwned; + isErased = _1613_recErased; + readIdents = _1614_recIdents; } } else if (_source52.is_Set) { - DAST._IType _1616___mcc_h883 = _source52.dtor_element; + DAST._IType _1615___mcc_h883 = _source52.dtor_element; { - Dafny.ISequence _1617_recursiveGen; - bool _1618_recOwned; - bool _1619_recErased; - Dafny.ISet> _1620_recIdents; + Dafny.ISequence _1616_recursiveGen; + bool _1617_recOwned; + bool _1618_recErased; + Dafny.ISet> _1619_recIdents; Dafny.ISequence _out953; bool _out954; bool _out955; Dafny.ISet> _out956; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out953, out _out954, out _out955, out _out956); - _1617_recursiveGen = _out953; - _1618_recOwned = _out954; - _1619_recErased = _out955; - _1620_recIdents = _out956; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1617_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1618_recOwned; - isErased = _1619_recErased; - readIdents = _1620_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out953, out _out954, out _out955, out _out956); + _1616_recursiveGen = _out953; + _1617_recOwned = _out954; + _1618_recErased = _out955; + _1619_recIdents = _out956; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1616_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1617_recOwned; + isErased = _1618_recErased; + readIdents = _1619_recIdents; } } else if (_source52.is_Multiset) { - DAST._IType _1621___mcc_h885 = _source52.dtor_element; + DAST._IType _1620___mcc_h885 = _source52.dtor_element; { - Dafny.ISequence _1622_recursiveGen; - bool _1623_recOwned; - bool _1624_recErased; - Dafny.ISet> _1625_recIdents; + Dafny.ISequence _1621_recursiveGen; + bool _1622_recOwned; + bool _1623_recErased; + Dafny.ISet> _1624_recIdents; Dafny.ISequence _out957; bool _out958; bool _out959; Dafny.ISet> _out960; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out957, out _out958, out _out959, out _out960); - _1622_recursiveGen = _out957; - _1623_recOwned = _out958; - _1624_recErased = _out959; - _1625_recIdents = _out960; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1622_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1623_recOwned; - isErased = _1624_recErased; - readIdents = _1625_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out957, out _out958, out _out959, out _out960); + _1621_recursiveGen = _out957; + _1622_recOwned = _out958; + _1623_recErased = _out959; + _1624_recIdents = _out960; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1621_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1622_recOwned; + isErased = _1623_recErased; + readIdents = _1624_recIdents; } } else if (_source52.is_Map) { - DAST._IType _1626___mcc_h887 = _source52.dtor_key; - DAST._IType _1627___mcc_h888 = _source52.dtor_value; + DAST._IType _1625___mcc_h887 = _source52.dtor_key; + DAST._IType _1626___mcc_h888 = _source52.dtor_value; { - Dafny.ISequence _1628_recursiveGen; - bool _1629_recOwned; - bool _1630_recErased; - Dafny.ISet> _1631_recIdents; + Dafny.ISequence _1627_recursiveGen; + bool _1628_recOwned; + bool _1629_recErased; + Dafny.ISet> _1630_recIdents; Dafny.ISequence _out961; bool _out962; bool _out963; Dafny.ISet> _out964; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out961, out _out962, out _out963, out _out964); - _1628_recursiveGen = _out961; - _1629_recOwned = _out962; - _1630_recErased = _out963; - _1631_recIdents = _out964; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1628_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1629_recOwned; - isErased = _1630_recErased; - readIdents = _1631_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out961, out _out962, out _out963, out _out964); + _1627_recursiveGen = _out961; + _1628_recOwned = _out962; + _1629_recErased = _out963; + _1630_recIdents = _out964; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1627_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1628_recOwned; + isErased = _1629_recErased; + readIdents = _1630_recIdents; } } else if (_source52.is_Arrow) { - Dafny.ISequence _1632___mcc_h891 = _source52.dtor_args; - DAST._IType _1633___mcc_h892 = _source52.dtor_result; + Dafny.ISequence _1631___mcc_h891 = _source52.dtor_args; + DAST._IType _1632___mcc_h892 = _source52.dtor_result; { - Dafny.ISequence _1634_recursiveGen; - bool _1635_recOwned; - bool _1636_recErased; - Dafny.ISet> _1637_recIdents; + Dafny.ISequence _1633_recursiveGen; + bool _1634_recOwned; + bool _1635_recErased; + Dafny.ISet> _1636_recIdents; Dafny.ISequence _out965; bool _out966; bool _out967; Dafny.ISet> _out968; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out965, out _out966, out _out967, out _out968); - _1634_recursiveGen = _out965; - _1635_recOwned = _out966; - _1636_recErased = _out967; - _1637_recIdents = _out968; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1634_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1635_recOwned; - isErased = _1636_recErased; - readIdents = _1637_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out965, out _out966, out _out967, out _out968); + _1633_recursiveGen = _out965; + _1634_recOwned = _out966; + _1635_recErased = _out967; + _1636_recIdents = _out968; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1633_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1634_recOwned; + isErased = _1635_recErased; + readIdents = _1636_recIdents; } } else if (_source52.is_Primitive) { - DAST._IPrimitive _1638___mcc_h895 = _source52.dtor_Primitive_a0; - DAST._IPrimitive _source54 = _1638___mcc_h895; + DAST._IPrimitive _1637___mcc_h895 = _source52.dtor_Primitive_a0; + DAST._IPrimitive _source54 = _1637___mcc_h895; if (_source54.is_Int) { { - Dafny.ISequence _1639_recursiveGen; - bool _1640_recOwned; - bool _1641_recErased; - Dafny.ISet> _1642_recIdents; + Dafny.ISequence _1638_recursiveGen; + bool _1639_recOwned; + bool _1640_recErased; + Dafny.ISet> _1641_recIdents; Dafny.ISequence _out969; bool _out970; bool _out971; Dafny.ISet> _out972; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out969, out _out970, out _out971, out _out972); - _1639_recursiveGen = _out969; - _1640_recOwned = _out970; - _1641_recErased = _out971; - _1642_recIdents = _out972; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1639_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1640_recOwned; - isErased = _1641_recErased; - readIdents = _1642_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out969, out _out970, out _out971, out _out972); + _1638_recursiveGen = _out969; + _1639_recOwned = _out970; + _1640_recErased = _out971; + _1641_recIdents = _out972; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1638_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1639_recOwned; + isErased = _1640_recErased; + readIdents = _1641_recIdents; } } else if (_source54.is_Real) { { - Dafny.ISequence _1643_recursiveGen; - bool _1644___v46; - bool _1645___v47; - Dafny.ISet> _1646_recIdents; + Dafny.ISequence _1642_recursiveGen; + bool _1643___v46; + bool _1644___v47; + Dafny.ISet> _1645_recIdents; Dafny.ISequence _out973; bool _out974; bool _out975; Dafny.ISet> _out976; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, true, out _out973, out _out974, out _out975, out _out976); - _1643_recursiveGen = _out973; - _1644___v46 = _out974; - _1645___v47 = _out975; - _1646_recIdents = _out976; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigRational::from_integer("), _1643_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, true, out _out973, out _out974, out _out975, out _out976); + _1642_recursiveGen = _out973; + _1643___v46 = _out974; + _1644___v47 = _out975; + _1645_recIdents = _out976; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigRational::from_integer("), _1642_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; isErased = true; - readIdents = _1646_recIdents; + readIdents = _1645_recIdents; } } else if (_source54.is_String) { { - Dafny.ISequence _1647_recursiveGen; - bool _1648_recOwned; - bool _1649_recErased; - Dafny.ISet> _1650_recIdents; + Dafny.ISequence _1646_recursiveGen; + bool _1647_recOwned; + bool _1648_recErased; + Dafny.ISet> _1649_recIdents; Dafny.ISequence _out977; bool _out978; bool _out979; Dafny.ISet> _out980; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out977, out _out978, out _out979, out _out980); - _1647_recursiveGen = _out977; - _1648_recOwned = _out978; - _1649_recErased = _out979; - _1650_recIdents = _out980; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1647_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1648_recOwned; - isErased = _1649_recErased; - readIdents = _1650_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out977, out _out978, out _out979, out _out980); + _1646_recursiveGen = _out977; + _1647_recOwned = _out978; + _1648_recErased = _out979; + _1649_recIdents = _out980; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1646_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1647_recOwned; + isErased = _1648_recErased; + readIdents = _1649_recIdents; } } else if (_source54.is_Bool) { { - Dafny.ISequence _1651_recursiveGen; - bool _1652_recOwned; - bool _1653_recErased; - Dafny.ISet> _1654_recIdents; + Dafny.ISequence _1650_recursiveGen; + bool _1651_recOwned; + bool _1652_recErased; + Dafny.ISet> _1653_recIdents; Dafny.ISequence _out981; bool _out982; bool _out983; Dafny.ISet> _out984; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out981, out _out982, out _out983, out _out984); - _1651_recursiveGen = _out981; - _1652_recOwned = _out982; - _1653_recErased = _out983; - _1654_recIdents = _out984; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1651_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1652_recOwned; - isErased = _1653_recErased; - readIdents = _1654_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out981, out _out982, out _out983, out _out984); + _1650_recursiveGen = _out981; + _1651_recOwned = _out982; + _1652_recErased = _out983; + _1653_recIdents = _out984; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1650_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1651_recOwned; + isErased = _1652_recErased; + readIdents = _1653_recIdents; } } else { { - Dafny.ISequence _1655_rhsType; + Dafny.ISequence _1654_rhsType; Dafny.ISequence _out985; - _out985 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _1655_rhsType = _out985; - Dafny.ISequence _1656_recursiveGen; - bool _1657___v56; - bool _1658___v57; - Dafny.ISet> _1659_recIdents; + _out985 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _1654_rhsType = _out985; + Dafny.ISequence _1655_recursiveGen; + bool _1656___v56; + bool _1657___v57; + Dafny.ISet> _1658_recIdents; Dafny.ISequence _out986; bool _out987; bool _out988; Dafny.ISet> _out989; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, true, out _out986, out _out987, out _out988, out _out989); - _1656_recursiveGen = _out986; - _1657___v56 = _out987; - _1658___v57 = _out988; - _1659_recIdents = _out989; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("char::from_u32(::from("), _1656_recursiveGen), Dafny.Sequence.UnicodeFromString(").unwrap()).unwrap()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, true, out _out986, out _out987, out _out988, out _out989); + _1655_recursiveGen = _out986; + _1656___v56 = _out987; + _1657___v57 = _out988; + _1658_recIdents = _out989; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("char::from_u32(::from("), _1655_recursiveGen), Dafny.Sequence.UnicodeFromString(").unwrap()).unwrap()")); isOwned = true; isErased = true; - readIdents = _1659_recIdents; + readIdents = _1658_recIdents; } } } else if (_source52.is_Passthrough) { - Dafny.ISequence _1660___mcc_h897 = _source52.dtor_Passthrough_a0; + Dafny.ISequence _1659___mcc_h897 = _source52.dtor_Passthrough_a0; { - Dafny.ISequence _1661_rhsType; + Dafny.ISequence _1660_rhsType; Dafny.ISequence _out990; - _out990 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _1661_rhsType = _out990; - Dafny.ISequence _1662_recursiveGen; - bool _1663___v51; - bool _1664___v52; - Dafny.ISet> _1665_recIdents; + _out990 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _1660_rhsType = _out990; + Dafny.ISequence _1661_recursiveGen; + bool _1662___v51; + bool _1663___v52; + Dafny.ISet> _1664_recIdents; Dafny.ISequence _out991; bool _out992; bool _out993; Dafny.ISet> _out994; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, true, out _out991, out _out992, out _out993, out _out994); - _1662_recursiveGen = _out991; - _1663___v51 = _out992; - _1664___v52 = _out993; - _1665_recIdents = _out994; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1661_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::NumCast>::from(")), _1662_recursiveGen), Dafny.Sequence.UnicodeFromString(").unwrap()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, true, out _out991, out _out992, out _out993, out _out994); + _1661_recursiveGen = _out991; + _1662___v51 = _out992; + _1663___v52 = _out993; + _1664_recIdents = _out994; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1660_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::NumCast>::from(")), _1661_recursiveGen), Dafny.Sequence.UnicodeFromString(").unwrap()")); isOwned = true; isErased = true; - readIdents = _1665_recIdents; + readIdents = _1664_recIdents; } } else { - Dafny.ISequence _1666___mcc_h899 = _source52.dtor_TypeArg_a0; + Dafny.ISequence _1665___mcc_h899 = _source52.dtor_TypeArg_a0; { - Dafny.ISequence _1667_recursiveGen; - bool _1668_recOwned; - bool _1669_recErased; - Dafny.ISet> _1670_recIdents; + Dafny.ISequence _1666_recursiveGen; + bool _1667_recOwned; + bool _1668_recErased; + Dafny.ISet> _1669_recIdents; Dafny.ISequence _out995; bool _out996; bool _out997; Dafny.ISet> _out998; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out995, out _out996, out _out997, out _out998); - _1667_recursiveGen = _out995; - _1668_recOwned = _out996; - _1669_recErased = _out997; - _1670_recIdents = _out998; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1667_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1668_recOwned; - isErased = _1669_recErased; - readIdents = _1670_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out995, out _out996, out _out997, out _out998); + _1666_recursiveGen = _out995; + _1667_recOwned = _out996; + _1668_recErased = _out997; + _1669_recIdents = _out998; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1666_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1667_recOwned; + isErased = _1668_recErased; + readIdents = _1669_recIdents; } } } else if (_source51.is_Real) { - DAST._IType _source55 = _665___mcc_h306; + DAST._IType _source55 = _664___mcc_h306; if (_source55.is_Path) { - Dafny.ISequence> _1671___mcc_h901 = _source55.dtor_Path_a0; - Dafny.ISequence _1672___mcc_h902 = _source55.dtor_typeArgs; - DAST._IResolvedType _1673___mcc_h903 = _source55.dtor_resolved; - DAST._IResolvedType _source56 = _1673___mcc_h903; + Dafny.ISequence> _1670___mcc_h901 = _source55.dtor_Path_a0; + Dafny.ISequence _1671___mcc_h902 = _source55.dtor_typeArgs; + DAST._IResolvedType _1672___mcc_h903 = _source55.dtor_resolved; + DAST._IResolvedType _source56 = _1672___mcc_h903; if (_source56.is_Datatype) { - Dafny.ISequence> _1674___mcc_h907 = _source56.dtor_path; + Dafny.ISequence> _1673___mcc_h907 = _source56.dtor_path; { - Dafny.ISequence _1675_recursiveGen; - bool _1676_recOwned; - bool _1677_recErased; - Dafny.ISet> _1678_recIdents; + Dafny.ISequence _1674_recursiveGen; + bool _1675_recOwned; + bool _1676_recErased; + Dafny.ISet> _1677_recIdents; Dafny.ISequence _out999; bool _out1000; bool _out1001; Dafny.ISet> _out1002; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out999, out _out1000, out _out1001, out _out1002); - _1675_recursiveGen = _out999; - _1676_recOwned = _out1000; - _1677_recErased = _out1001; - _1678_recIdents = _out1002; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1675_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1676_recOwned; - isErased = _1677_recErased; - readIdents = _1678_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out999, out _out1000, out _out1001, out _out1002); + _1674_recursiveGen = _out999; + _1675_recOwned = _out1000; + _1676_recErased = _out1001; + _1677_recIdents = _out1002; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1674_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1675_recOwned; + isErased = _1676_recErased; + readIdents = _1677_recIdents; } } else if (_source56.is_Trait) { - Dafny.ISequence> _1679___mcc_h909 = _source56.dtor_path; + Dafny.ISequence> _1678___mcc_h909 = _source56.dtor_path; { - Dafny.ISequence _1680_recursiveGen; - bool _1681_recOwned; - bool _1682_recErased; - Dafny.ISet> _1683_recIdents; + Dafny.ISequence _1679_recursiveGen; + bool _1680_recOwned; + bool _1681_recErased; + Dafny.ISet> _1682_recIdents; Dafny.ISequence _out1003; bool _out1004; bool _out1005; Dafny.ISet> _out1006; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1003, out _out1004, out _out1005, out _out1006); - _1680_recursiveGen = _out1003; - _1681_recOwned = _out1004; - _1682_recErased = _out1005; - _1683_recIdents = _out1006; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1680_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1681_recOwned; - isErased = _1682_recErased; - readIdents = _1683_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1003, out _out1004, out _out1005, out _out1006); + _1679_recursiveGen = _out1003; + _1680_recOwned = _out1004; + _1681_recErased = _out1005; + _1682_recIdents = _out1006; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1679_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1680_recOwned; + isErased = _1681_recErased; + readIdents = _1682_recIdents; } } else { - DAST._IType _1684___mcc_h911 = _source56.dtor_Newtype_a0; - DAST._IType _1685_b = _1684___mcc_h911; + DAST._IType _1683___mcc_h911 = _source56.dtor_Newtype_a0; + DAST._IType _1684_b = _1683___mcc_h911; { - if (object.Equals(_658_fromTpe, _1685_b)) { - Dafny.ISequence _1686_recursiveGen; - bool _1687_recOwned; - bool _1688_recErased; - Dafny.ISet> _1689_recIdents; + if (object.Equals(_657_fromTpe, _1684_b)) { + Dafny.ISequence _1685_recursiveGen; + bool _1686_recOwned; + bool _1687_recErased; + Dafny.ISet> _1688_recIdents; Dafny.ISequence _out1007; bool _out1008; bool _out1009; Dafny.ISet> _out1010; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1007, out _out1008, out _out1009, out _out1010); - _1686_recursiveGen = _out1007; - _1687_recOwned = _out1008; - _1688_recErased = _out1009; - _1689_recIdents = _out1010; - Dafny.ISequence _1690_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1007, out _out1008, out _out1009, out _out1010); + _1685_recursiveGen = _out1007; + _1686_recOwned = _out1008; + _1687_recErased = _out1009; + _1688_recIdents = _out1010; + Dafny.ISequence _1689_rhsType; Dafny.ISequence _out1011; - _out1011 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _1690_rhsType = _out1011; - Dafny.ISequence _1691_uneraseFn; - _1691_uneraseFn = ((_1687_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1690_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1691_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1686_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _1687_recOwned; + _out1011 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _1689_rhsType = _out1011; + Dafny.ISequence _1690_uneraseFn; + _1690_uneraseFn = ((_1686_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1689_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1690_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1685_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _1686_recOwned; isErased = false; - readIdents = _1689_recIdents; + readIdents = _1688_recIdents; } else { Dafny.ISequence _out1012; bool _out1013; bool _out1014; Dafny.ISet> _out1015; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _1685_b), _1685_b, _657_toTpe), selfIdent, @params, mustOwn, out _out1012, out _out1013, out _out1014, out _out1015); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _1684_b), _1684_b, _656_toTpe), selfIdent, @params, mustOwn, out _out1012, out _out1013, out _out1014, out _out1015); s = _out1012; isOwned = _out1013; isErased = _out1014; @@ -12383,409 +12352,409 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _1693_recursiveGen; - bool _1694_recOwned; - bool _1695_recErased; - Dafny.ISet> _1696_recIdents; + Dafny.ISequence _1692_recursiveGen; + bool _1693_recOwned; + bool _1694_recErased; + Dafny.ISet> _1695_recIdents; Dafny.ISequence _out1016; bool _out1017; bool _out1018; Dafny.ISet> _out1019; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1016, out _out1017, out _out1018, out _out1019); - _1693_recursiveGen = _out1016; - _1694_recOwned = _out1017; - _1695_recErased = _out1018; - _1696_recIdents = _out1019; - if (!(_1694_recOwned)) { - _1693_recursiveGen = Dafny.Sequence.Concat(_1693_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1016, out _out1017, out _out1018, out _out1019); + _1692_recursiveGen = _out1016; + _1693_recOwned = _out1017; + _1694_recErased = _out1018; + _1695_recIdents = _out1019; + if (!(_1693_recOwned)) { + _1692_recursiveGen = Dafny.Sequence.Concat(_1692_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1693_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1692_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _1695_recErased; - readIdents = _1696_recIdents; + isErased = _1694_recErased; + readIdents = _1695_recIdents; } } else if (_source55.is_Tuple) { - Dafny.ISequence _1697___mcc_h915 = _source55.dtor_Tuple_a0; + Dafny.ISequence _1696___mcc_h915 = _source55.dtor_Tuple_a0; { - Dafny.ISequence _1698_recursiveGen; - bool _1699_recOwned; - bool _1700_recErased; - Dafny.ISet> _1701_recIdents; + Dafny.ISequence _1697_recursiveGen; + bool _1698_recOwned; + bool _1699_recErased; + Dafny.ISet> _1700_recIdents; Dafny.ISequence _out1020; bool _out1021; bool _out1022; Dafny.ISet> _out1023; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1020, out _out1021, out _out1022, out _out1023); - _1698_recursiveGen = _out1020; - _1699_recOwned = _out1021; - _1700_recErased = _out1022; - _1701_recIdents = _out1023; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1698_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1699_recOwned; - isErased = _1700_recErased; - readIdents = _1701_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1020, out _out1021, out _out1022, out _out1023); + _1697_recursiveGen = _out1020; + _1698_recOwned = _out1021; + _1699_recErased = _out1022; + _1700_recIdents = _out1023; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1697_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1698_recOwned; + isErased = _1699_recErased; + readIdents = _1700_recIdents; } } else if (_source55.is_Array) { - DAST._IType _1702___mcc_h917 = _source55.dtor_element; - BigInteger _1703___mcc_h918 = _source55.dtor_dims; + DAST._IType _1701___mcc_h917 = _source55.dtor_element; + BigInteger _1702___mcc_h918 = _source55.dtor_dims; { - Dafny.ISequence _1704_recursiveGen; - bool _1705_recOwned; - bool _1706_recErased; - Dafny.ISet> _1707_recIdents; + Dafny.ISequence _1703_recursiveGen; + bool _1704_recOwned; + bool _1705_recErased; + Dafny.ISet> _1706_recIdents; Dafny.ISequence _out1024; bool _out1025; bool _out1026; Dafny.ISet> _out1027; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1024, out _out1025, out _out1026, out _out1027); - _1704_recursiveGen = _out1024; - _1705_recOwned = _out1025; - _1706_recErased = _out1026; - _1707_recIdents = _out1027; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1704_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1705_recOwned; - isErased = _1706_recErased; - readIdents = _1707_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1024, out _out1025, out _out1026, out _out1027); + _1703_recursiveGen = _out1024; + _1704_recOwned = _out1025; + _1705_recErased = _out1026; + _1706_recIdents = _out1027; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1703_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1704_recOwned; + isErased = _1705_recErased; + readIdents = _1706_recIdents; } } else if (_source55.is_Seq) { - DAST._IType _1708___mcc_h921 = _source55.dtor_element; + DAST._IType _1707___mcc_h921 = _source55.dtor_element; { - Dafny.ISequence _1709_recursiveGen; - bool _1710_recOwned; - bool _1711_recErased; - Dafny.ISet> _1712_recIdents; + Dafny.ISequence _1708_recursiveGen; + bool _1709_recOwned; + bool _1710_recErased; + Dafny.ISet> _1711_recIdents; Dafny.ISequence _out1028; bool _out1029; bool _out1030; Dafny.ISet> _out1031; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1028, out _out1029, out _out1030, out _out1031); - _1709_recursiveGen = _out1028; - _1710_recOwned = _out1029; - _1711_recErased = _out1030; - _1712_recIdents = _out1031; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1709_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1710_recOwned; - isErased = _1711_recErased; - readIdents = _1712_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1028, out _out1029, out _out1030, out _out1031); + _1708_recursiveGen = _out1028; + _1709_recOwned = _out1029; + _1710_recErased = _out1030; + _1711_recIdents = _out1031; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1708_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1709_recOwned; + isErased = _1710_recErased; + readIdents = _1711_recIdents; } } else if (_source55.is_Set) { - DAST._IType _1713___mcc_h923 = _source55.dtor_element; + DAST._IType _1712___mcc_h923 = _source55.dtor_element; { - Dafny.ISequence _1714_recursiveGen; - bool _1715_recOwned; - bool _1716_recErased; - Dafny.ISet> _1717_recIdents; + Dafny.ISequence _1713_recursiveGen; + bool _1714_recOwned; + bool _1715_recErased; + Dafny.ISet> _1716_recIdents; Dafny.ISequence _out1032; bool _out1033; bool _out1034; Dafny.ISet> _out1035; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1032, out _out1033, out _out1034, out _out1035); - _1714_recursiveGen = _out1032; - _1715_recOwned = _out1033; - _1716_recErased = _out1034; - _1717_recIdents = _out1035; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1714_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1715_recOwned; - isErased = _1716_recErased; - readIdents = _1717_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1032, out _out1033, out _out1034, out _out1035); + _1713_recursiveGen = _out1032; + _1714_recOwned = _out1033; + _1715_recErased = _out1034; + _1716_recIdents = _out1035; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1713_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1714_recOwned; + isErased = _1715_recErased; + readIdents = _1716_recIdents; } } else if (_source55.is_Multiset) { - DAST._IType _1718___mcc_h925 = _source55.dtor_element; + DAST._IType _1717___mcc_h925 = _source55.dtor_element; { - Dafny.ISequence _1719_recursiveGen; - bool _1720_recOwned; - bool _1721_recErased; - Dafny.ISet> _1722_recIdents; + Dafny.ISequence _1718_recursiveGen; + bool _1719_recOwned; + bool _1720_recErased; + Dafny.ISet> _1721_recIdents; Dafny.ISequence _out1036; bool _out1037; bool _out1038; Dafny.ISet> _out1039; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1036, out _out1037, out _out1038, out _out1039); - _1719_recursiveGen = _out1036; - _1720_recOwned = _out1037; - _1721_recErased = _out1038; - _1722_recIdents = _out1039; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1719_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1720_recOwned; - isErased = _1721_recErased; - readIdents = _1722_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1036, out _out1037, out _out1038, out _out1039); + _1718_recursiveGen = _out1036; + _1719_recOwned = _out1037; + _1720_recErased = _out1038; + _1721_recIdents = _out1039; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1718_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1719_recOwned; + isErased = _1720_recErased; + readIdents = _1721_recIdents; } } else if (_source55.is_Map) { - DAST._IType _1723___mcc_h927 = _source55.dtor_key; - DAST._IType _1724___mcc_h928 = _source55.dtor_value; + DAST._IType _1722___mcc_h927 = _source55.dtor_key; + DAST._IType _1723___mcc_h928 = _source55.dtor_value; { - Dafny.ISequence _1725_recursiveGen; - bool _1726_recOwned; - bool _1727_recErased; - Dafny.ISet> _1728_recIdents; + Dafny.ISequence _1724_recursiveGen; + bool _1725_recOwned; + bool _1726_recErased; + Dafny.ISet> _1727_recIdents; Dafny.ISequence _out1040; bool _out1041; bool _out1042; Dafny.ISet> _out1043; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1040, out _out1041, out _out1042, out _out1043); - _1725_recursiveGen = _out1040; - _1726_recOwned = _out1041; - _1727_recErased = _out1042; - _1728_recIdents = _out1043; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1725_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1726_recOwned; - isErased = _1727_recErased; - readIdents = _1728_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1040, out _out1041, out _out1042, out _out1043); + _1724_recursiveGen = _out1040; + _1725_recOwned = _out1041; + _1726_recErased = _out1042; + _1727_recIdents = _out1043; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1724_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1725_recOwned; + isErased = _1726_recErased; + readIdents = _1727_recIdents; } } else if (_source55.is_Arrow) { - Dafny.ISequence _1729___mcc_h931 = _source55.dtor_args; - DAST._IType _1730___mcc_h932 = _source55.dtor_result; + Dafny.ISequence _1728___mcc_h931 = _source55.dtor_args; + DAST._IType _1729___mcc_h932 = _source55.dtor_result; { - Dafny.ISequence _1731_recursiveGen; - bool _1732_recOwned; - bool _1733_recErased; - Dafny.ISet> _1734_recIdents; + Dafny.ISequence _1730_recursiveGen; + bool _1731_recOwned; + bool _1732_recErased; + Dafny.ISet> _1733_recIdents; Dafny.ISequence _out1044; bool _out1045; bool _out1046; Dafny.ISet> _out1047; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1044, out _out1045, out _out1046, out _out1047); - _1731_recursiveGen = _out1044; - _1732_recOwned = _out1045; - _1733_recErased = _out1046; - _1734_recIdents = _out1047; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1731_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1732_recOwned; - isErased = _1733_recErased; - readIdents = _1734_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1044, out _out1045, out _out1046, out _out1047); + _1730_recursiveGen = _out1044; + _1731_recOwned = _out1045; + _1732_recErased = _out1046; + _1733_recIdents = _out1047; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1730_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1731_recOwned; + isErased = _1732_recErased; + readIdents = _1733_recIdents; } } else if (_source55.is_Primitive) { - DAST._IPrimitive _1735___mcc_h935 = _source55.dtor_Primitive_a0; - DAST._IPrimitive _source57 = _1735___mcc_h935; + DAST._IPrimitive _1734___mcc_h935 = _source55.dtor_Primitive_a0; + DAST._IPrimitive _source57 = _1734___mcc_h935; if (_source57.is_Int) { { - Dafny.ISequence _1736_recursiveGen; - bool _1737___v48; - bool _1738___v49; - Dafny.ISet> _1739_recIdents; + Dafny.ISequence _1735_recursiveGen; + bool _1736___v48; + bool _1737___v49; + Dafny.ISet> _1738_recIdents; Dafny.ISequence _out1048; bool _out1049; bool _out1050; Dafny.ISet> _out1051; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, false, out _out1048, out _out1049, out _out1050, out _out1051); - _1736_recursiveGen = _out1048; - _1737___v48 = _out1049; - _1738___v49 = _out1050; - _1739_recIdents = _out1051; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::dafny_rational_to_int("), _1736_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, false, out _out1048, out _out1049, out _out1050, out _out1051); + _1735_recursiveGen = _out1048; + _1736___v48 = _out1049; + _1737___v49 = _out1050; + _1738_recIdents = _out1051; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::dafny_rational_to_int("), _1735_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; isErased = true; - readIdents = _1739_recIdents; + readIdents = _1738_recIdents; } } else if (_source57.is_Real) { { - Dafny.ISequence _1740_recursiveGen; - bool _1741_recOwned; - bool _1742_recErased; - Dafny.ISet> _1743_recIdents; + Dafny.ISequence _1739_recursiveGen; + bool _1740_recOwned; + bool _1741_recErased; + Dafny.ISet> _1742_recIdents; Dafny.ISequence _out1052; bool _out1053; bool _out1054; Dafny.ISet> _out1055; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1052, out _out1053, out _out1054, out _out1055); - _1740_recursiveGen = _out1052; - _1741_recOwned = _out1053; - _1742_recErased = _out1054; - _1743_recIdents = _out1055; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1740_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1741_recOwned; - isErased = _1742_recErased; - readIdents = _1743_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1052, out _out1053, out _out1054, out _out1055); + _1739_recursiveGen = _out1052; + _1740_recOwned = _out1053; + _1741_recErased = _out1054; + _1742_recIdents = _out1055; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1739_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1740_recOwned; + isErased = _1741_recErased; + readIdents = _1742_recIdents; } } else if (_source57.is_String) { { - Dafny.ISequence _1744_recursiveGen; - bool _1745_recOwned; - bool _1746_recErased; - Dafny.ISet> _1747_recIdents; + Dafny.ISequence _1743_recursiveGen; + bool _1744_recOwned; + bool _1745_recErased; + Dafny.ISet> _1746_recIdents; Dafny.ISequence _out1056; bool _out1057; bool _out1058; Dafny.ISet> _out1059; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1056, out _out1057, out _out1058, out _out1059); - _1744_recursiveGen = _out1056; - _1745_recOwned = _out1057; - _1746_recErased = _out1058; - _1747_recIdents = _out1059; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1744_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1745_recOwned; - isErased = _1746_recErased; - readIdents = _1747_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1056, out _out1057, out _out1058, out _out1059); + _1743_recursiveGen = _out1056; + _1744_recOwned = _out1057; + _1745_recErased = _out1058; + _1746_recIdents = _out1059; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1743_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1744_recOwned; + isErased = _1745_recErased; + readIdents = _1746_recIdents; } } else if (_source57.is_Bool) { { - Dafny.ISequence _1748_recursiveGen; - bool _1749_recOwned; - bool _1750_recErased; - Dafny.ISet> _1751_recIdents; + Dafny.ISequence _1747_recursiveGen; + bool _1748_recOwned; + bool _1749_recErased; + Dafny.ISet> _1750_recIdents; Dafny.ISequence _out1060; bool _out1061; bool _out1062; Dafny.ISet> _out1063; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1060, out _out1061, out _out1062, out _out1063); - _1748_recursiveGen = _out1060; - _1749_recOwned = _out1061; - _1750_recErased = _out1062; - _1751_recIdents = _out1063; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1748_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1749_recOwned; - isErased = _1750_recErased; - readIdents = _1751_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1060, out _out1061, out _out1062, out _out1063); + _1747_recursiveGen = _out1060; + _1748_recOwned = _out1061; + _1749_recErased = _out1062; + _1750_recIdents = _out1063; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1747_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1748_recOwned; + isErased = _1749_recErased; + readIdents = _1750_recIdents; } } else { { - Dafny.ISequence _1752_recursiveGen; - bool _1753_recOwned; - bool _1754_recErased; - Dafny.ISet> _1755_recIdents; + Dafny.ISequence _1751_recursiveGen; + bool _1752_recOwned; + bool _1753_recErased; + Dafny.ISet> _1754_recIdents; Dafny.ISequence _out1064; bool _out1065; bool _out1066; Dafny.ISet> _out1067; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1064, out _out1065, out _out1066, out _out1067); - _1752_recursiveGen = _out1064; - _1753_recOwned = _out1065; - _1754_recErased = _out1066; - _1755_recIdents = _out1067; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1752_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1753_recOwned; - isErased = _1754_recErased; - readIdents = _1755_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1064, out _out1065, out _out1066, out _out1067); + _1751_recursiveGen = _out1064; + _1752_recOwned = _out1065; + _1753_recErased = _out1066; + _1754_recIdents = _out1067; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1751_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1752_recOwned; + isErased = _1753_recErased; + readIdents = _1754_recIdents; } } } else if (_source55.is_Passthrough) { - Dafny.ISequence _1756___mcc_h937 = _source55.dtor_Passthrough_a0; + Dafny.ISequence _1755___mcc_h937 = _source55.dtor_Passthrough_a0; { - Dafny.ISequence _1757_recursiveGen; - bool _1758_recOwned; - bool _1759_recErased; - Dafny.ISet> _1760_recIdents; + Dafny.ISequence _1756_recursiveGen; + bool _1757_recOwned; + bool _1758_recErased; + Dafny.ISet> _1759_recIdents; Dafny.ISequence _out1068; bool _out1069; bool _out1070; Dafny.ISet> _out1071; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1068, out _out1069, out _out1070, out _out1071); - _1757_recursiveGen = _out1068; - _1758_recOwned = _out1069; - _1759_recErased = _out1070; - _1760_recIdents = _out1071; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1757_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1758_recOwned; - isErased = _1759_recErased; - readIdents = _1760_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1068, out _out1069, out _out1070, out _out1071); + _1756_recursiveGen = _out1068; + _1757_recOwned = _out1069; + _1758_recErased = _out1070; + _1759_recIdents = _out1071; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1756_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1757_recOwned; + isErased = _1758_recErased; + readIdents = _1759_recIdents; } } else { - Dafny.ISequence _1761___mcc_h939 = _source55.dtor_TypeArg_a0; + Dafny.ISequence _1760___mcc_h939 = _source55.dtor_TypeArg_a0; { - Dafny.ISequence _1762_recursiveGen; - bool _1763_recOwned; - bool _1764_recErased; - Dafny.ISet> _1765_recIdents; + Dafny.ISequence _1761_recursiveGen; + bool _1762_recOwned; + bool _1763_recErased; + Dafny.ISet> _1764_recIdents; Dafny.ISequence _out1072; bool _out1073; bool _out1074; Dafny.ISet> _out1075; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1072, out _out1073, out _out1074, out _out1075); - _1762_recursiveGen = _out1072; - _1763_recOwned = _out1073; - _1764_recErased = _out1074; - _1765_recIdents = _out1075; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1762_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1763_recOwned; - isErased = _1764_recErased; - readIdents = _1765_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1072, out _out1073, out _out1074, out _out1075); + _1761_recursiveGen = _out1072; + _1762_recOwned = _out1073; + _1763_recErased = _out1074; + _1764_recIdents = _out1075; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1761_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1762_recOwned; + isErased = _1763_recErased; + readIdents = _1764_recIdents; } } } else if (_source51.is_String) { - DAST._IType _source58 = _665___mcc_h306; + DAST._IType _source58 = _664___mcc_h306; if (_source58.is_Path) { - Dafny.ISequence> _1766___mcc_h941 = _source58.dtor_Path_a0; - Dafny.ISequence _1767___mcc_h942 = _source58.dtor_typeArgs; - DAST._IResolvedType _1768___mcc_h943 = _source58.dtor_resolved; - DAST._IResolvedType _source59 = _1768___mcc_h943; + Dafny.ISequence> _1765___mcc_h941 = _source58.dtor_Path_a0; + Dafny.ISequence _1766___mcc_h942 = _source58.dtor_typeArgs; + DAST._IResolvedType _1767___mcc_h943 = _source58.dtor_resolved; + DAST._IResolvedType _source59 = _1767___mcc_h943; if (_source59.is_Datatype) { - Dafny.ISequence> _1769___mcc_h947 = _source59.dtor_path; + Dafny.ISequence> _1768___mcc_h947 = _source59.dtor_path; { - Dafny.ISequence _1770_recursiveGen; - bool _1771_recOwned; - bool _1772_recErased; - Dafny.ISet> _1773_recIdents; + Dafny.ISequence _1769_recursiveGen; + bool _1770_recOwned; + bool _1771_recErased; + Dafny.ISet> _1772_recIdents; Dafny.ISequence _out1076; bool _out1077; bool _out1078; Dafny.ISet> _out1079; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1076, out _out1077, out _out1078, out _out1079); - _1770_recursiveGen = _out1076; - _1771_recOwned = _out1077; - _1772_recErased = _out1078; - _1773_recIdents = _out1079; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1770_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1771_recOwned; - isErased = _1772_recErased; - readIdents = _1773_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1076, out _out1077, out _out1078, out _out1079); + _1769_recursiveGen = _out1076; + _1770_recOwned = _out1077; + _1771_recErased = _out1078; + _1772_recIdents = _out1079; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1769_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1770_recOwned; + isErased = _1771_recErased; + readIdents = _1772_recIdents; } } else if (_source59.is_Trait) { - Dafny.ISequence> _1774___mcc_h949 = _source59.dtor_path; + Dafny.ISequence> _1773___mcc_h949 = _source59.dtor_path; { - Dafny.ISequence _1775_recursiveGen; - bool _1776_recOwned; - bool _1777_recErased; - Dafny.ISet> _1778_recIdents; + Dafny.ISequence _1774_recursiveGen; + bool _1775_recOwned; + bool _1776_recErased; + Dafny.ISet> _1777_recIdents; Dafny.ISequence _out1080; bool _out1081; bool _out1082; Dafny.ISet> _out1083; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1080, out _out1081, out _out1082, out _out1083); - _1775_recursiveGen = _out1080; - _1776_recOwned = _out1081; - _1777_recErased = _out1082; - _1778_recIdents = _out1083; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1775_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1776_recOwned; - isErased = _1777_recErased; - readIdents = _1778_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1080, out _out1081, out _out1082, out _out1083); + _1774_recursiveGen = _out1080; + _1775_recOwned = _out1081; + _1776_recErased = _out1082; + _1777_recIdents = _out1083; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1774_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1775_recOwned; + isErased = _1776_recErased; + readIdents = _1777_recIdents; } } else { - DAST._IType _1779___mcc_h951 = _source59.dtor_Newtype_a0; - DAST._IType _1780_b = _1779___mcc_h951; + DAST._IType _1778___mcc_h951 = _source59.dtor_Newtype_a0; + DAST._IType _1779_b = _1778___mcc_h951; { - if (object.Equals(_658_fromTpe, _1780_b)) { - Dafny.ISequence _1781_recursiveGen; - bool _1782_recOwned; - bool _1783_recErased; - Dafny.ISet> _1784_recIdents; + if (object.Equals(_657_fromTpe, _1779_b)) { + Dafny.ISequence _1780_recursiveGen; + bool _1781_recOwned; + bool _1782_recErased; + Dafny.ISet> _1783_recIdents; Dafny.ISequence _out1084; bool _out1085; bool _out1086; Dafny.ISet> _out1087; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1084, out _out1085, out _out1086, out _out1087); - _1781_recursiveGen = _out1084; - _1782_recOwned = _out1085; - _1783_recErased = _out1086; - _1784_recIdents = _out1087; - Dafny.ISequence _1785_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1084, out _out1085, out _out1086, out _out1087); + _1780_recursiveGen = _out1084; + _1781_recOwned = _out1085; + _1782_recErased = _out1086; + _1783_recIdents = _out1087; + Dafny.ISequence _1784_rhsType; Dafny.ISequence _out1088; - _out1088 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _1785_rhsType = _out1088; - Dafny.ISequence _1786_uneraseFn; - _1786_uneraseFn = ((_1782_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1785_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1786_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1781_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _1782_recOwned; + _out1088 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _1784_rhsType = _out1088; + Dafny.ISequence _1785_uneraseFn; + _1785_uneraseFn = ((_1781_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1784_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1785_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1780_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _1781_recOwned; isErased = false; - readIdents = _1784_recIdents; + readIdents = _1783_recIdents; } else { Dafny.ISequence _out1089; bool _out1090; bool _out1091; Dafny.ISet> _out1092; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _1780_b), _1780_b, _657_toTpe), selfIdent, @params, mustOwn, out _out1089, out _out1090, out _out1091, out _out1092); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _1779_b), _1779_b, _656_toTpe), selfIdent, @params, mustOwn, out _out1089, out _out1090, out _out1091, out _out1092); s = _out1089; isOwned = _out1090; isErased = _out1091; @@ -12794,326 +12763,326 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _1788_recursiveGen; - bool _1789_recOwned; - bool _1790_recErased; - Dafny.ISet> _1791_recIdents; + Dafny.ISequence _1787_recursiveGen; + bool _1788_recOwned; + bool _1789_recErased; + Dafny.ISet> _1790_recIdents; Dafny.ISequence _out1093; bool _out1094; bool _out1095; Dafny.ISet> _out1096; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1093, out _out1094, out _out1095, out _out1096); - _1788_recursiveGen = _out1093; - _1789_recOwned = _out1094; - _1790_recErased = _out1095; - _1791_recIdents = _out1096; - if (!(_1789_recOwned)) { - _1788_recursiveGen = Dafny.Sequence.Concat(_1788_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1093, out _out1094, out _out1095, out _out1096); + _1787_recursiveGen = _out1093; + _1788_recOwned = _out1094; + _1789_recErased = _out1095; + _1790_recIdents = _out1096; + if (!(_1788_recOwned)) { + _1787_recursiveGen = Dafny.Sequence.Concat(_1787_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1788_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1787_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _1790_recErased; - readIdents = _1791_recIdents; + isErased = _1789_recErased; + readIdents = _1790_recIdents; } } else if (_source58.is_Tuple) { - Dafny.ISequence _1792___mcc_h955 = _source58.dtor_Tuple_a0; + Dafny.ISequence _1791___mcc_h955 = _source58.dtor_Tuple_a0; { - Dafny.ISequence _1793_recursiveGen; - bool _1794_recOwned; - bool _1795_recErased; - Dafny.ISet> _1796_recIdents; + Dafny.ISequence _1792_recursiveGen; + bool _1793_recOwned; + bool _1794_recErased; + Dafny.ISet> _1795_recIdents; Dafny.ISequence _out1097; bool _out1098; bool _out1099; Dafny.ISet> _out1100; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1097, out _out1098, out _out1099, out _out1100); - _1793_recursiveGen = _out1097; - _1794_recOwned = _out1098; - _1795_recErased = _out1099; - _1796_recIdents = _out1100; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1793_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1794_recOwned; - isErased = _1795_recErased; - readIdents = _1796_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1097, out _out1098, out _out1099, out _out1100); + _1792_recursiveGen = _out1097; + _1793_recOwned = _out1098; + _1794_recErased = _out1099; + _1795_recIdents = _out1100; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1792_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1793_recOwned; + isErased = _1794_recErased; + readIdents = _1795_recIdents; } } else if (_source58.is_Array) { - DAST._IType _1797___mcc_h957 = _source58.dtor_element; - BigInteger _1798___mcc_h958 = _source58.dtor_dims; + DAST._IType _1796___mcc_h957 = _source58.dtor_element; + BigInteger _1797___mcc_h958 = _source58.dtor_dims; { - Dafny.ISequence _1799_recursiveGen; - bool _1800_recOwned; - bool _1801_recErased; - Dafny.ISet> _1802_recIdents; + Dafny.ISequence _1798_recursiveGen; + bool _1799_recOwned; + bool _1800_recErased; + Dafny.ISet> _1801_recIdents; Dafny.ISequence _out1101; bool _out1102; bool _out1103; Dafny.ISet> _out1104; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1101, out _out1102, out _out1103, out _out1104); - _1799_recursiveGen = _out1101; - _1800_recOwned = _out1102; - _1801_recErased = _out1103; - _1802_recIdents = _out1104; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1799_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1800_recOwned; - isErased = _1801_recErased; - readIdents = _1802_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1101, out _out1102, out _out1103, out _out1104); + _1798_recursiveGen = _out1101; + _1799_recOwned = _out1102; + _1800_recErased = _out1103; + _1801_recIdents = _out1104; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1798_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1799_recOwned; + isErased = _1800_recErased; + readIdents = _1801_recIdents; } } else if (_source58.is_Seq) { - DAST._IType _1803___mcc_h961 = _source58.dtor_element; + DAST._IType _1802___mcc_h961 = _source58.dtor_element; { - Dafny.ISequence _1804_recursiveGen; - bool _1805_recOwned; - bool _1806_recErased; - Dafny.ISet> _1807_recIdents; + Dafny.ISequence _1803_recursiveGen; + bool _1804_recOwned; + bool _1805_recErased; + Dafny.ISet> _1806_recIdents; Dafny.ISequence _out1105; bool _out1106; bool _out1107; Dafny.ISet> _out1108; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1105, out _out1106, out _out1107, out _out1108); - _1804_recursiveGen = _out1105; - _1805_recOwned = _out1106; - _1806_recErased = _out1107; - _1807_recIdents = _out1108; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1804_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1805_recOwned; - isErased = _1806_recErased; - readIdents = _1807_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1105, out _out1106, out _out1107, out _out1108); + _1803_recursiveGen = _out1105; + _1804_recOwned = _out1106; + _1805_recErased = _out1107; + _1806_recIdents = _out1108; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1803_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1804_recOwned; + isErased = _1805_recErased; + readIdents = _1806_recIdents; } } else if (_source58.is_Set) { - DAST._IType _1808___mcc_h963 = _source58.dtor_element; + DAST._IType _1807___mcc_h963 = _source58.dtor_element; { - Dafny.ISequence _1809_recursiveGen; - bool _1810_recOwned; - bool _1811_recErased; - Dafny.ISet> _1812_recIdents; + Dafny.ISequence _1808_recursiveGen; + bool _1809_recOwned; + bool _1810_recErased; + Dafny.ISet> _1811_recIdents; Dafny.ISequence _out1109; bool _out1110; bool _out1111; Dafny.ISet> _out1112; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1109, out _out1110, out _out1111, out _out1112); - _1809_recursiveGen = _out1109; - _1810_recOwned = _out1110; - _1811_recErased = _out1111; - _1812_recIdents = _out1112; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1809_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1810_recOwned; - isErased = _1811_recErased; - readIdents = _1812_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1109, out _out1110, out _out1111, out _out1112); + _1808_recursiveGen = _out1109; + _1809_recOwned = _out1110; + _1810_recErased = _out1111; + _1811_recIdents = _out1112; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1808_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1809_recOwned; + isErased = _1810_recErased; + readIdents = _1811_recIdents; } } else if (_source58.is_Multiset) { - DAST._IType _1813___mcc_h965 = _source58.dtor_element; + DAST._IType _1812___mcc_h965 = _source58.dtor_element; { - Dafny.ISequence _1814_recursiveGen; - bool _1815_recOwned; - bool _1816_recErased; - Dafny.ISet> _1817_recIdents; + Dafny.ISequence _1813_recursiveGen; + bool _1814_recOwned; + bool _1815_recErased; + Dafny.ISet> _1816_recIdents; Dafny.ISequence _out1113; bool _out1114; bool _out1115; Dafny.ISet> _out1116; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1113, out _out1114, out _out1115, out _out1116); - _1814_recursiveGen = _out1113; - _1815_recOwned = _out1114; - _1816_recErased = _out1115; - _1817_recIdents = _out1116; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1814_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1815_recOwned; - isErased = _1816_recErased; - readIdents = _1817_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1113, out _out1114, out _out1115, out _out1116); + _1813_recursiveGen = _out1113; + _1814_recOwned = _out1114; + _1815_recErased = _out1115; + _1816_recIdents = _out1116; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1813_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1814_recOwned; + isErased = _1815_recErased; + readIdents = _1816_recIdents; } } else if (_source58.is_Map) { - DAST._IType _1818___mcc_h967 = _source58.dtor_key; - DAST._IType _1819___mcc_h968 = _source58.dtor_value; + DAST._IType _1817___mcc_h967 = _source58.dtor_key; + DAST._IType _1818___mcc_h968 = _source58.dtor_value; { - Dafny.ISequence _1820_recursiveGen; - bool _1821_recOwned; - bool _1822_recErased; - Dafny.ISet> _1823_recIdents; + Dafny.ISequence _1819_recursiveGen; + bool _1820_recOwned; + bool _1821_recErased; + Dafny.ISet> _1822_recIdents; Dafny.ISequence _out1117; bool _out1118; bool _out1119; Dafny.ISet> _out1120; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1117, out _out1118, out _out1119, out _out1120); - _1820_recursiveGen = _out1117; - _1821_recOwned = _out1118; - _1822_recErased = _out1119; - _1823_recIdents = _out1120; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1820_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1821_recOwned; - isErased = _1822_recErased; - readIdents = _1823_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1117, out _out1118, out _out1119, out _out1120); + _1819_recursiveGen = _out1117; + _1820_recOwned = _out1118; + _1821_recErased = _out1119; + _1822_recIdents = _out1120; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1819_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1820_recOwned; + isErased = _1821_recErased; + readIdents = _1822_recIdents; } } else if (_source58.is_Arrow) { - Dafny.ISequence _1824___mcc_h971 = _source58.dtor_args; - DAST._IType _1825___mcc_h972 = _source58.dtor_result; + Dafny.ISequence _1823___mcc_h971 = _source58.dtor_args; + DAST._IType _1824___mcc_h972 = _source58.dtor_result; { - Dafny.ISequence _1826_recursiveGen; - bool _1827_recOwned; - bool _1828_recErased; - Dafny.ISet> _1829_recIdents; + Dafny.ISequence _1825_recursiveGen; + bool _1826_recOwned; + bool _1827_recErased; + Dafny.ISet> _1828_recIdents; Dafny.ISequence _out1121; bool _out1122; bool _out1123; Dafny.ISet> _out1124; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1121, out _out1122, out _out1123, out _out1124); - _1826_recursiveGen = _out1121; - _1827_recOwned = _out1122; - _1828_recErased = _out1123; - _1829_recIdents = _out1124; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1826_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1827_recOwned; - isErased = _1828_recErased; - readIdents = _1829_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1121, out _out1122, out _out1123, out _out1124); + _1825_recursiveGen = _out1121; + _1826_recOwned = _out1122; + _1827_recErased = _out1123; + _1828_recIdents = _out1124; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1825_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1826_recOwned; + isErased = _1827_recErased; + readIdents = _1828_recIdents; } } else if (_source58.is_Primitive) { - DAST._IPrimitive _1830___mcc_h975 = _source58.dtor_Primitive_a0; + DAST._IPrimitive _1829___mcc_h975 = _source58.dtor_Primitive_a0; { - Dafny.ISequence _1831_recursiveGen; - bool _1832_recOwned; - bool _1833_recErased; - Dafny.ISet> _1834_recIdents; + Dafny.ISequence _1830_recursiveGen; + bool _1831_recOwned; + bool _1832_recErased; + Dafny.ISet> _1833_recIdents; Dafny.ISequence _out1125; bool _out1126; bool _out1127; Dafny.ISet> _out1128; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1125, out _out1126, out _out1127, out _out1128); - _1831_recursiveGen = _out1125; - _1832_recOwned = _out1126; - _1833_recErased = _out1127; - _1834_recIdents = _out1128; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1831_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1832_recOwned; - isErased = _1833_recErased; - readIdents = _1834_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1125, out _out1126, out _out1127, out _out1128); + _1830_recursiveGen = _out1125; + _1831_recOwned = _out1126; + _1832_recErased = _out1127; + _1833_recIdents = _out1128; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1830_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1831_recOwned; + isErased = _1832_recErased; + readIdents = _1833_recIdents; } } else if (_source58.is_Passthrough) { - Dafny.ISequence _1835___mcc_h977 = _source58.dtor_Passthrough_a0; + Dafny.ISequence _1834___mcc_h977 = _source58.dtor_Passthrough_a0; { - Dafny.ISequence _1836_recursiveGen; - bool _1837_recOwned; - bool _1838_recErased; - Dafny.ISet> _1839_recIdents; + Dafny.ISequence _1835_recursiveGen; + bool _1836_recOwned; + bool _1837_recErased; + Dafny.ISet> _1838_recIdents; Dafny.ISequence _out1129; bool _out1130; bool _out1131; Dafny.ISet> _out1132; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1129, out _out1130, out _out1131, out _out1132); - _1836_recursiveGen = _out1129; - _1837_recOwned = _out1130; - _1838_recErased = _out1131; - _1839_recIdents = _out1132; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1836_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1837_recOwned; - isErased = _1838_recErased; - readIdents = _1839_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1129, out _out1130, out _out1131, out _out1132); + _1835_recursiveGen = _out1129; + _1836_recOwned = _out1130; + _1837_recErased = _out1131; + _1838_recIdents = _out1132; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1835_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1836_recOwned; + isErased = _1837_recErased; + readIdents = _1838_recIdents; } } else { - Dafny.ISequence _1840___mcc_h979 = _source58.dtor_TypeArg_a0; + Dafny.ISequence _1839___mcc_h979 = _source58.dtor_TypeArg_a0; { - Dafny.ISequence _1841_recursiveGen; - bool _1842_recOwned; - bool _1843_recErased; - Dafny.ISet> _1844_recIdents; + Dafny.ISequence _1840_recursiveGen; + bool _1841_recOwned; + bool _1842_recErased; + Dafny.ISet> _1843_recIdents; Dafny.ISequence _out1133; bool _out1134; bool _out1135; Dafny.ISet> _out1136; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1133, out _out1134, out _out1135, out _out1136); - _1841_recursiveGen = _out1133; - _1842_recOwned = _out1134; - _1843_recErased = _out1135; - _1844_recIdents = _out1136; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1841_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1842_recOwned; - isErased = _1843_recErased; - readIdents = _1844_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1133, out _out1134, out _out1135, out _out1136); + _1840_recursiveGen = _out1133; + _1841_recOwned = _out1134; + _1842_recErased = _out1135; + _1843_recIdents = _out1136; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1840_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1841_recOwned; + isErased = _1842_recErased; + readIdents = _1843_recIdents; } } } else if (_source51.is_Bool) { - DAST._IType _source60 = _665___mcc_h306; + DAST._IType _source60 = _664___mcc_h306; if (_source60.is_Path) { - Dafny.ISequence> _1845___mcc_h981 = _source60.dtor_Path_a0; - Dafny.ISequence _1846___mcc_h982 = _source60.dtor_typeArgs; - DAST._IResolvedType _1847___mcc_h983 = _source60.dtor_resolved; - DAST._IResolvedType _source61 = _1847___mcc_h983; + Dafny.ISequence> _1844___mcc_h981 = _source60.dtor_Path_a0; + Dafny.ISequence _1845___mcc_h982 = _source60.dtor_typeArgs; + DAST._IResolvedType _1846___mcc_h983 = _source60.dtor_resolved; + DAST._IResolvedType _source61 = _1846___mcc_h983; if (_source61.is_Datatype) { - Dafny.ISequence> _1848___mcc_h987 = _source61.dtor_path; + Dafny.ISequence> _1847___mcc_h987 = _source61.dtor_path; { - Dafny.ISequence _1849_recursiveGen; - bool _1850_recOwned; - bool _1851_recErased; - Dafny.ISet> _1852_recIdents; + Dafny.ISequence _1848_recursiveGen; + bool _1849_recOwned; + bool _1850_recErased; + Dafny.ISet> _1851_recIdents; Dafny.ISequence _out1137; bool _out1138; bool _out1139; Dafny.ISet> _out1140; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1137, out _out1138, out _out1139, out _out1140); - _1849_recursiveGen = _out1137; - _1850_recOwned = _out1138; - _1851_recErased = _out1139; - _1852_recIdents = _out1140; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1849_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1850_recOwned; - isErased = _1851_recErased; - readIdents = _1852_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1137, out _out1138, out _out1139, out _out1140); + _1848_recursiveGen = _out1137; + _1849_recOwned = _out1138; + _1850_recErased = _out1139; + _1851_recIdents = _out1140; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1848_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1849_recOwned; + isErased = _1850_recErased; + readIdents = _1851_recIdents; } } else if (_source61.is_Trait) { - Dafny.ISequence> _1853___mcc_h989 = _source61.dtor_path; + Dafny.ISequence> _1852___mcc_h989 = _source61.dtor_path; { - Dafny.ISequence _1854_recursiveGen; - bool _1855_recOwned; - bool _1856_recErased; - Dafny.ISet> _1857_recIdents; + Dafny.ISequence _1853_recursiveGen; + bool _1854_recOwned; + bool _1855_recErased; + Dafny.ISet> _1856_recIdents; Dafny.ISequence _out1141; bool _out1142; bool _out1143; Dafny.ISet> _out1144; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1141, out _out1142, out _out1143, out _out1144); - _1854_recursiveGen = _out1141; - _1855_recOwned = _out1142; - _1856_recErased = _out1143; - _1857_recIdents = _out1144; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1854_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1855_recOwned; - isErased = _1856_recErased; - readIdents = _1857_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1141, out _out1142, out _out1143, out _out1144); + _1853_recursiveGen = _out1141; + _1854_recOwned = _out1142; + _1855_recErased = _out1143; + _1856_recIdents = _out1144; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1853_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1854_recOwned; + isErased = _1855_recErased; + readIdents = _1856_recIdents; } } else { - DAST._IType _1858___mcc_h991 = _source61.dtor_Newtype_a0; - DAST._IType _1859_b = _1858___mcc_h991; + DAST._IType _1857___mcc_h991 = _source61.dtor_Newtype_a0; + DAST._IType _1858_b = _1857___mcc_h991; { - if (object.Equals(_658_fromTpe, _1859_b)) { - Dafny.ISequence _1860_recursiveGen; - bool _1861_recOwned; - bool _1862_recErased; - Dafny.ISet> _1863_recIdents; + if (object.Equals(_657_fromTpe, _1858_b)) { + Dafny.ISequence _1859_recursiveGen; + bool _1860_recOwned; + bool _1861_recErased; + Dafny.ISet> _1862_recIdents; Dafny.ISequence _out1145; bool _out1146; bool _out1147; Dafny.ISet> _out1148; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1145, out _out1146, out _out1147, out _out1148); - _1860_recursiveGen = _out1145; - _1861_recOwned = _out1146; - _1862_recErased = _out1147; - _1863_recIdents = _out1148; - Dafny.ISequence _1864_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1145, out _out1146, out _out1147, out _out1148); + _1859_recursiveGen = _out1145; + _1860_recOwned = _out1146; + _1861_recErased = _out1147; + _1862_recIdents = _out1148; + Dafny.ISequence _1863_rhsType; Dafny.ISequence _out1149; - _out1149 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _1864_rhsType = _out1149; - Dafny.ISequence _1865_uneraseFn; - _1865_uneraseFn = ((_1861_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1864_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1865_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1860_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _1861_recOwned; + _out1149 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _1863_rhsType = _out1149; + Dafny.ISequence _1864_uneraseFn; + _1864_uneraseFn = ((_1860_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1863_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1864_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1859_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _1860_recOwned; isErased = false; - readIdents = _1863_recIdents; + readIdents = _1862_recIdents; } else { Dafny.ISequence _out1150; bool _out1151; bool _out1152; Dafny.ISet> _out1153; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _1859_b), _1859_b, _657_toTpe), selfIdent, @params, mustOwn, out _out1150, out _out1151, out _out1152, out _out1153); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _1858_b), _1858_b, _656_toTpe), selfIdent, @params, mustOwn, out _out1150, out _out1151, out _out1152, out _out1153); s = _out1150; isOwned = _out1151; isErased = _out1152; @@ -13122,326 +13091,326 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _1867_recursiveGen; - bool _1868_recOwned; - bool _1869_recErased; - Dafny.ISet> _1870_recIdents; + Dafny.ISequence _1866_recursiveGen; + bool _1867_recOwned; + bool _1868_recErased; + Dafny.ISet> _1869_recIdents; Dafny.ISequence _out1154; bool _out1155; bool _out1156; Dafny.ISet> _out1157; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1154, out _out1155, out _out1156, out _out1157); - _1867_recursiveGen = _out1154; - _1868_recOwned = _out1155; - _1869_recErased = _out1156; - _1870_recIdents = _out1157; - if (!(_1868_recOwned)) { - _1867_recursiveGen = Dafny.Sequence.Concat(_1867_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1154, out _out1155, out _out1156, out _out1157); + _1866_recursiveGen = _out1154; + _1867_recOwned = _out1155; + _1868_recErased = _out1156; + _1869_recIdents = _out1157; + if (!(_1867_recOwned)) { + _1866_recursiveGen = Dafny.Sequence.Concat(_1866_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1867_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1866_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _1869_recErased; - readIdents = _1870_recIdents; + isErased = _1868_recErased; + readIdents = _1869_recIdents; } } else if (_source60.is_Tuple) { - Dafny.ISequence _1871___mcc_h995 = _source60.dtor_Tuple_a0; + Dafny.ISequence _1870___mcc_h995 = _source60.dtor_Tuple_a0; { - Dafny.ISequence _1872_recursiveGen; - bool _1873_recOwned; - bool _1874_recErased; - Dafny.ISet> _1875_recIdents; + Dafny.ISequence _1871_recursiveGen; + bool _1872_recOwned; + bool _1873_recErased; + Dafny.ISet> _1874_recIdents; Dafny.ISequence _out1158; bool _out1159; bool _out1160; Dafny.ISet> _out1161; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1158, out _out1159, out _out1160, out _out1161); - _1872_recursiveGen = _out1158; - _1873_recOwned = _out1159; - _1874_recErased = _out1160; - _1875_recIdents = _out1161; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1872_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1873_recOwned; - isErased = _1874_recErased; - readIdents = _1875_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1158, out _out1159, out _out1160, out _out1161); + _1871_recursiveGen = _out1158; + _1872_recOwned = _out1159; + _1873_recErased = _out1160; + _1874_recIdents = _out1161; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1871_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1872_recOwned; + isErased = _1873_recErased; + readIdents = _1874_recIdents; } } else if (_source60.is_Array) { - DAST._IType _1876___mcc_h997 = _source60.dtor_element; - BigInteger _1877___mcc_h998 = _source60.dtor_dims; + DAST._IType _1875___mcc_h997 = _source60.dtor_element; + BigInteger _1876___mcc_h998 = _source60.dtor_dims; { - Dafny.ISequence _1878_recursiveGen; - bool _1879_recOwned; - bool _1880_recErased; - Dafny.ISet> _1881_recIdents; + Dafny.ISequence _1877_recursiveGen; + bool _1878_recOwned; + bool _1879_recErased; + Dafny.ISet> _1880_recIdents; Dafny.ISequence _out1162; bool _out1163; bool _out1164; Dafny.ISet> _out1165; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1162, out _out1163, out _out1164, out _out1165); - _1878_recursiveGen = _out1162; - _1879_recOwned = _out1163; - _1880_recErased = _out1164; - _1881_recIdents = _out1165; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1878_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1879_recOwned; - isErased = _1880_recErased; - readIdents = _1881_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1162, out _out1163, out _out1164, out _out1165); + _1877_recursiveGen = _out1162; + _1878_recOwned = _out1163; + _1879_recErased = _out1164; + _1880_recIdents = _out1165; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1877_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1878_recOwned; + isErased = _1879_recErased; + readIdents = _1880_recIdents; } } else if (_source60.is_Seq) { - DAST._IType _1882___mcc_h1001 = _source60.dtor_element; + DAST._IType _1881___mcc_h1001 = _source60.dtor_element; { - Dafny.ISequence _1883_recursiveGen; - bool _1884_recOwned; - bool _1885_recErased; - Dafny.ISet> _1886_recIdents; + Dafny.ISequence _1882_recursiveGen; + bool _1883_recOwned; + bool _1884_recErased; + Dafny.ISet> _1885_recIdents; Dafny.ISequence _out1166; bool _out1167; bool _out1168; Dafny.ISet> _out1169; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1166, out _out1167, out _out1168, out _out1169); - _1883_recursiveGen = _out1166; - _1884_recOwned = _out1167; - _1885_recErased = _out1168; - _1886_recIdents = _out1169; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1883_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1884_recOwned; - isErased = _1885_recErased; - readIdents = _1886_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1166, out _out1167, out _out1168, out _out1169); + _1882_recursiveGen = _out1166; + _1883_recOwned = _out1167; + _1884_recErased = _out1168; + _1885_recIdents = _out1169; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1882_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1883_recOwned; + isErased = _1884_recErased; + readIdents = _1885_recIdents; } } else if (_source60.is_Set) { - DAST._IType _1887___mcc_h1003 = _source60.dtor_element; + DAST._IType _1886___mcc_h1003 = _source60.dtor_element; { - Dafny.ISequence _1888_recursiveGen; - bool _1889_recOwned; - bool _1890_recErased; - Dafny.ISet> _1891_recIdents; + Dafny.ISequence _1887_recursiveGen; + bool _1888_recOwned; + bool _1889_recErased; + Dafny.ISet> _1890_recIdents; Dafny.ISequence _out1170; bool _out1171; bool _out1172; Dafny.ISet> _out1173; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1170, out _out1171, out _out1172, out _out1173); - _1888_recursiveGen = _out1170; - _1889_recOwned = _out1171; - _1890_recErased = _out1172; - _1891_recIdents = _out1173; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1888_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1889_recOwned; - isErased = _1890_recErased; - readIdents = _1891_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1170, out _out1171, out _out1172, out _out1173); + _1887_recursiveGen = _out1170; + _1888_recOwned = _out1171; + _1889_recErased = _out1172; + _1890_recIdents = _out1173; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1887_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1888_recOwned; + isErased = _1889_recErased; + readIdents = _1890_recIdents; } } else if (_source60.is_Multiset) { - DAST._IType _1892___mcc_h1005 = _source60.dtor_element; + DAST._IType _1891___mcc_h1005 = _source60.dtor_element; { - Dafny.ISequence _1893_recursiveGen; - bool _1894_recOwned; - bool _1895_recErased; - Dafny.ISet> _1896_recIdents; + Dafny.ISequence _1892_recursiveGen; + bool _1893_recOwned; + bool _1894_recErased; + Dafny.ISet> _1895_recIdents; Dafny.ISequence _out1174; bool _out1175; bool _out1176; Dafny.ISet> _out1177; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1174, out _out1175, out _out1176, out _out1177); - _1893_recursiveGen = _out1174; - _1894_recOwned = _out1175; - _1895_recErased = _out1176; - _1896_recIdents = _out1177; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1893_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1894_recOwned; - isErased = _1895_recErased; - readIdents = _1896_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1174, out _out1175, out _out1176, out _out1177); + _1892_recursiveGen = _out1174; + _1893_recOwned = _out1175; + _1894_recErased = _out1176; + _1895_recIdents = _out1177; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1892_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1893_recOwned; + isErased = _1894_recErased; + readIdents = _1895_recIdents; } } else if (_source60.is_Map) { - DAST._IType _1897___mcc_h1007 = _source60.dtor_key; - DAST._IType _1898___mcc_h1008 = _source60.dtor_value; + DAST._IType _1896___mcc_h1007 = _source60.dtor_key; + DAST._IType _1897___mcc_h1008 = _source60.dtor_value; { - Dafny.ISequence _1899_recursiveGen; - bool _1900_recOwned; - bool _1901_recErased; - Dafny.ISet> _1902_recIdents; + Dafny.ISequence _1898_recursiveGen; + bool _1899_recOwned; + bool _1900_recErased; + Dafny.ISet> _1901_recIdents; Dafny.ISequence _out1178; bool _out1179; bool _out1180; Dafny.ISet> _out1181; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1178, out _out1179, out _out1180, out _out1181); - _1899_recursiveGen = _out1178; - _1900_recOwned = _out1179; - _1901_recErased = _out1180; - _1902_recIdents = _out1181; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1899_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1900_recOwned; - isErased = _1901_recErased; - readIdents = _1902_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1178, out _out1179, out _out1180, out _out1181); + _1898_recursiveGen = _out1178; + _1899_recOwned = _out1179; + _1900_recErased = _out1180; + _1901_recIdents = _out1181; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1898_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1899_recOwned; + isErased = _1900_recErased; + readIdents = _1901_recIdents; } } else if (_source60.is_Arrow) { - Dafny.ISequence _1903___mcc_h1011 = _source60.dtor_args; - DAST._IType _1904___mcc_h1012 = _source60.dtor_result; + Dafny.ISequence _1902___mcc_h1011 = _source60.dtor_args; + DAST._IType _1903___mcc_h1012 = _source60.dtor_result; { - Dafny.ISequence _1905_recursiveGen; - bool _1906_recOwned; - bool _1907_recErased; - Dafny.ISet> _1908_recIdents; + Dafny.ISequence _1904_recursiveGen; + bool _1905_recOwned; + bool _1906_recErased; + Dafny.ISet> _1907_recIdents; Dafny.ISequence _out1182; bool _out1183; bool _out1184; Dafny.ISet> _out1185; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1182, out _out1183, out _out1184, out _out1185); - _1905_recursiveGen = _out1182; - _1906_recOwned = _out1183; - _1907_recErased = _out1184; - _1908_recIdents = _out1185; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1905_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1906_recOwned; - isErased = _1907_recErased; - readIdents = _1908_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1182, out _out1183, out _out1184, out _out1185); + _1904_recursiveGen = _out1182; + _1905_recOwned = _out1183; + _1906_recErased = _out1184; + _1907_recIdents = _out1185; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1904_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1905_recOwned; + isErased = _1906_recErased; + readIdents = _1907_recIdents; } } else if (_source60.is_Primitive) { - DAST._IPrimitive _1909___mcc_h1015 = _source60.dtor_Primitive_a0; + DAST._IPrimitive _1908___mcc_h1015 = _source60.dtor_Primitive_a0; { - Dafny.ISequence _1910_recursiveGen; - bool _1911_recOwned; - bool _1912_recErased; - Dafny.ISet> _1913_recIdents; + Dafny.ISequence _1909_recursiveGen; + bool _1910_recOwned; + bool _1911_recErased; + Dafny.ISet> _1912_recIdents; Dafny.ISequence _out1186; bool _out1187; bool _out1188; Dafny.ISet> _out1189; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1186, out _out1187, out _out1188, out _out1189); - _1910_recursiveGen = _out1186; - _1911_recOwned = _out1187; - _1912_recErased = _out1188; - _1913_recIdents = _out1189; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1910_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1911_recOwned; - isErased = _1912_recErased; - readIdents = _1913_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1186, out _out1187, out _out1188, out _out1189); + _1909_recursiveGen = _out1186; + _1910_recOwned = _out1187; + _1911_recErased = _out1188; + _1912_recIdents = _out1189; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1909_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1910_recOwned; + isErased = _1911_recErased; + readIdents = _1912_recIdents; } } else if (_source60.is_Passthrough) { - Dafny.ISequence _1914___mcc_h1017 = _source60.dtor_Passthrough_a0; + Dafny.ISequence _1913___mcc_h1017 = _source60.dtor_Passthrough_a0; { - Dafny.ISequence _1915_recursiveGen; - bool _1916_recOwned; - bool _1917_recErased; - Dafny.ISet> _1918_recIdents; + Dafny.ISequence _1914_recursiveGen; + bool _1915_recOwned; + bool _1916_recErased; + Dafny.ISet> _1917_recIdents; Dafny.ISequence _out1190; bool _out1191; bool _out1192; Dafny.ISet> _out1193; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1190, out _out1191, out _out1192, out _out1193); - _1915_recursiveGen = _out1190; - _1916_recOwned = _out1191; - _1917_recErased = _out1192; - _1918_recIdents = _out1193; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1915_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1916_recOwned; - isErased = _1917_recErased; - readIdents = _1918_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1190, out _out1191, out _out1192, out _out1193); + _1914_recursiveGen = _out1190; + _1915_recOwned = _out1191; + _1916_recErased = _out1192; + _1917_recIdents = _out1193; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1914_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1915_recOwned; + isErased = _1916_recErased; + readIdents = _1917_recIdents; } } else { - Dafny.ISequence _1919___mcc_h1019 = _source60.dtor_TypeArg_a0; + Dafny.ISequence _1918___mcc_h1019 = _source60.dtor_TypeArg_a0; { - Dafny.ISequence _1920_recursiveGen; - bool _1921_recOwned; - bool _1922_recErased; - Dafny.ISet> _1923_recIdents; + Dafny.ISequence _1919_recursiveGen; + bool _1920_recOwned; + bool _1921_recErased; + Dafny.ISet> _1922_recIdents; Dafny.ISequence _out1194; bool _out1195; bool _out1196; Dafny.ISet> _out1197; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1194, out _out1195, out _out1196, out _out1197); - _1920_recursiveGen = _out1194; - _1921_recOwned = _out1195; - _1922_recErased = _out1196; - _1923_recIdents = _out1197; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1920_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1921_recOwned; - isErased = _1922_recErased; - readIdents = _1923_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1194, out _out1195, out _out1196, out _out1197); + _1919_recursiveGen = _out1194; + _1920_recOwned = _out1195; + _1921_recErased = _out1196; + _1922_recIdents = _out1197; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1919_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1920_recOwned; + isErased = _1921_recErased; + readIdents = _1922_recIdents; } } } else { - DAST._IType _source62 = _665___mcc_h306; + DAST._IType _source62 = _664___mcc_h306; if (_source62.is_Path) { - Dafny.ISequence> _1924___mcc_h1021 = _source62.dtor_Path_a0; - Dafny.ISequence _1925___mcc_h1022 = _source62.dtor_typeArgs; - DAST._IResolvedType _1926___mcc_h1023 = _source62.dtor_resolved; - DAST._IResolvedType _source63 = _1926___mcc_h1023; + Dafny.ISequence> _1923___mcc_h1021 = _source62.dtor_Path_a0; + Dafny.ISequence _1924___mcc_h1022 = _source62.dtor_typeArgs; + DAST._IResolvedType _1925___mcc_h1023 = _source62.dtor_resolved; + DAST._IResolvedType _source63 = _1925___mcc_h1023; if (_source63.is_Datatype) { - Dafny.ISequence> _1927___mcc_h1027 = _source63.dtor_path; + Dafny.ISequence> _1926___mcc_h1027 = _source63.dtor_path; { - Dafny.ISequence _1928_recursiveGen; - bool _1929_recOwned; - bool _1930_recErased; - Dafny.ISet> _1931_recIdents; + Dafny.ISequence _1927_recursiveGen; + bool _1928_recOwned; + bool _1929_recErased; + Dafny.ISet> _1930_recIdents; Dafny.ISequence _out1198; bool _out1199; bool _out1200; Dafny.ISet> _out1201; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1198, out _out1199, out _out1200, out _out1201); - _1928_recursiveGen = _out1198; - _1929_recOwned = _out1199; - _1930_recErased = _out1200; - _1931_recIdents = _out1201; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1928_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1929_recOwned; - isErased = _1930_recErased; - readIdents = _1931_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1198, out _out1199, out _out1200, out _out1201); + _1927_recursiveGen = _out1198; + _1928_recOwned = _out1199; + _1929_recErased = _out1200; + _1930_recIdents = _out1201; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1927_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1928_recOwned; + isErased = _1929_recErased; + readIdents = _1930_recIdents; } } else if (_source63.is_Trait) { - Dafny.ISequence> _1932___mcc_h1029 = _source63.dtor_path; + Dafny.ISequence> _1931___mcc_h1029 = _source63.dtor_path; { - Dafny.ISequence _1933_recursiveGen; - bool _1934_recOwned; - bool _1935_recErased; - Dafny.ISet> _1936_recIdents; + Dafny.ISequence _1932_recursiveGen; + bool _1933_recOwned; + bool _1934_recErased; + Dafny.ISet> _1935_recIdents; Dafny.ISequence _out1202; bool _out1203; bool _out1204; Dafny.ISet> _out1205; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1202, out _out1203, out _out1204, out _out1205); - _1933_recursiveGen = _out1202; - _1934_recOwned = _out1203; - _1935_recErased = _out1204; - _1936_recIdents = _out1205; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1933_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1934_recOwned; - isErased = _1935_recErased; - readIdents = _1936_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1202, out _out1203, out _out1204, out _out1205); + _1932_recursiveGen = _out1202; + _1933_recOwned = _out1203; + _1934_recErased = _out1204; + _1935_recIdents = _out1205; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1932_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1933_recOwned; + isErased = _1934_recErased; + readIdents = _1935_recIdents; } } else { - DAST._IType _1937___mcc_h1031 = _source63.dtor_Newtype_a0; - DAST._IType _1938_b = _1937___mcc_h1031; + DAST._IType _1936___mcc_h1031 = _source63.dtor_Newtype_a0; + DAST._IType _1937_b = _1936___mcc_h1031; { - if (object.Equals(_658_fromTpe, _1938_b)) { - Dafny.ISequence _1939_recursiveGen; - bool _1940_recOwned; - bool _1941_recErased; - Dafny.ISet> _1942_recIdents; + if (object.Equals(_657_fromTpe, _1937_b)) { + Dafny.ISequence _1938_recursiveGen; + bool _1939_recOwned; + bool _1940_recErased; + Dafny.ISet> _1941_recIdents; Dafny.ISequence _out1206; bool _out1207; bool _out1208; Dafny.ISet> _out1209; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1206, out _out1207, out _out1208, out _out1209); - _1939_recursiveGen = _out1206; - _1940_recOwned = _out1207; - _1941_recErased = _out1208; - _1942_recIdents = _out1209; - Dafny.ISequence _1943_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1206, out _out1207, out _out1208, out _out1209); + _1938_recursiveGen = _out1206; + _1939_recOwned = _out1207; + _1940_recErased = _out1208; + _1941_recIdents = _out1209; + Dafny.ISequence _1942_rhsType; Dafny.ISequence _out1210; - _out1210 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _1943_rhsType = _out1210; - Dafny.ISequence _1944_uneraseFn; - _1944_uneraseFn = ((_1940_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1943_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1944_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1939_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _1940_recOwned; + _out1210 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _1942_rhsType = _out1210; + Dafny.ISequence _1943_uneraseFn; + _1943_uneraseFn = ((_1939_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _1942_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _1943_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _1938_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _1939_recOwned; isErased = false; - readIdents = _1942_recIdents; + readIdents = _1941_recIdents; } else { Dafny.ISequence _out1211; bool _out1212; bool _out1213; Dafny.ISet> _out1214; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _1938_b), _1938_b, _657_toTpe), selfIdent, @params, mustOwn, out _out1211, out _out1212, out _out1213, out _out1214); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _1937_b), _1937_b, _656_toTpe), selfIdent, @params, mustOwn, out _out1211, out _out1212, out _out1213, out _out1214); s = _out1211; isOwned = _out1212; isErased = _out1213; @@ -13450,415 +13419,415 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _1946_recursiveGen; - bool _1947_recOwned; - bool _1948_recErased; - Dafny.ISet> _1949_recIdents; + Dafny.ISequence _1945_recursiveGen; + bool _1946_recOwned; + bool _1947_recErased; + Dafny.ISet> _1948_recIdents; Dafny.ISequence _out1215; bool _out1216; bool _out1217; Dafny.ISet> _out1218; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1215, out _out1216, out _out1217, out _out1218); - _1946_recursiveGen = _out1215; - _1947_recOwned = _out1216; - _1948_recErased = _out1217; - _1949_recIdents = _out1218; - if (!(_1947_recOwned)) { - _1946_recursiveGen = Dafny.Sequence.Concat(_1946_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1215, out _out1216, out _out1217, out _out1218); + _1945_recursiveGen = _out1215; + _1946_recOwned = _out1216; + _1947_recErased = _out1217; + _1948_recIdents = _out1218; + if (!(_1946_recOwned)) { + _1945_recursiveGen = Dafny.Sequence.Concat(_1945_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1946_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _1945_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _1948_recErased; - readIdents = _1949_recIdents; + isErased = _1947_recErased; + readIdents = _1948_recIdents; } } else if (_source62.is_Tuple) { - Dafny.ISequence _1950___mcc_h1035 = _source62.dtor_Tuple_a0; + Dafny.ISequence _1949___mcc_h1035 = _source62.dtor_Tuple_a0; { - Dafny.ISequence _1951_recursiveGen; - bool _1952_recOwned; - bool _1953_recErased; - Dafny.ISet> _1954_recIdents; + Dafny.ISequence _1950_recursiveGen; + bool _1951_recOwned; + bool _1952_recErased; + Dafny.ISet> _1953_recIdents; Dafny.ISequence _out1219; bool _out1220; bool _out1221; Dafny.ISet> _out1222; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1219, out _out1220, out _out1221, out _out1222); - _1951_recursiveGen = _out1219; - _1952_recOwned = _out1220; - _1953_recErased = _out1221; - _1954_recIdents = _out1222; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1951_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1952_recOwned; - isErased = _1953_recErased; - readIdents = _1954_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1219, out _out1220, out _out1221, out _out1222); + _1950_recursiveGen = _out1219; + _1951_recOwned = _out1220; + _1952_recErased = _out1221; + _1953_recIdents = _out1222; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1950_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1951_recOwned; + isErased = _1952_recErased; + readIdents = _1953_recIdents; } } else if (_source62.is_Array) { - DAST._IType _1955___mcc_h1037 = _source62.dtor_element; - BigInteger _1956___mcc_h1038 = _source62.dtor_dims; + DAST._IType _1954___mcc_h1037 = _source62.dtor_element; + BigInteger _1955___mcc_h1038 = _source62.dtor_dims; { - Dafny.ISequence _1957_recursiveGen; - bool _1958_recOwned; - bool _1959_recErased; - Dafny.ISet> _1960_recIdents; + Dafny.ISequence _1956_recursiveGen; + bool _1957_recOwned; + bool _1958_recErased; + Dafny.ISet> _1959_recIdents; Dafny.ISequence _out1223; bool _out1224; bool _out1225; Dafny.ISet> _out1226; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1223, out _out1224, out _out1225, out _out1226); - _1957_recursiveGen = _out1223; - _1958_recOwned = _out1224; - _1959_recErased = _out1225; - _1960_recIdents = _out1226; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1957_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1958_recOwned; - isErased = _1959_recErased; - readIdents = _1960_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1223, out _out1224, out _out1225, out _out1226); + _1956_recursiveGen = _out1223; + _1957_recOwned = _out1224; + _1958_recErased = _out1225; + _1959_recIdents = _out1226; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1956_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1957_recOwned; + isErased = _1958_recErased; + readIdents = _1959_recIdents; } } else if (_source62.is_Seq) { - DAST._IType _1961___mcc_h1041 = _source62.dtor_element; + DAST._IType _1960___mcc_h1041 = _source62.dtor_element; { - Dafny.ISequence _1962_recursiveGen; - bool _1963_recOwned; - bool _1964_recErased; - Dafny.ISet> _1965_recIdents; + Dafny.ISequence _1961_recursiveGen; + bool _1962_recOwned; + bool _1963_recErased; + Dafny.ISet> _1964_recIdents; Dafny.ISequence _out1227; bool _out1228; bool _out1229; Dafny.ISet> _out1230; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1227, out _out1228, out _out1229, out _out1230); - _1962_recursiveGen = _out1227; - _1963_recOwned = _out1228; - _1964_recErased = _out1229; - _1965_recIdents = _out1230; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1962_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1963_recOwned; - isErased = _1964_recErased; - readIdents = _1965_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1227, out _out1228, out _out1229, out _out1230); + _1961_recursiveGen = _out1227; + _1962_recOwned = _out1228; + _1963_recErased = _out1229; + _1964_recIdents = _out1230; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1961_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1962_recOwned; + isErased = _1963_recErased; + readIdents = _1964_recIdents; } } else if (_source62.is_Set) { - DAST._IType _1966___mcc_h1043 = _source62.dtor_element; + DAST._IType _1965___mcc_h1043 = _source62.dtor_element; { - Dafny.ISequence _1967_recursiveGen; - bool _1968_recOwned; - bool _1969_recErased; - Dafny.ISet> _1970_recIdents; + Dafny.ISequence _1966_recursiveGen; + bool _1967_recOwned; + bool _1968_recErased; + Dafny.ISet> _1969_recIdents; Dafny.ISequence _out1231; bool _out1232; bool _out1233; Dafny.ISet> _out1234; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1231, out _out1232, out _out1233, out _out1234); - _1967_recursiveGen = _out1231; - _1968_recOwned = _out1232; - _1969_recErased = _out1233; - _1970_recIdents = _out1234; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1967_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1968_recOwned; - isErased = _1969_recErased; - readIdents = _1970_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1231, out _out1232, out _out1233, out _out1234); + _1966_recursiveGen = _out1231; + _1967_recOwned = _out1232; + _1968_recErased = _out1233; + _1969_recIdents = _out1234; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1966_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1967_recOwned; + isErased = _1968_recErased; + readIdents = _1969_recIdents; } } else if (_source62.is_Multiset) { - DAST._IType _1971___mcc_h1045 = _source62.dtor_element; + DAST._IType _1970___mcc_h1045 = _source62.dtor_element; { - Dafny.ISequence _1972_recursiveGen; - bool _1973_recOwned; - bool _1974_recErased; - Dafny.ISet> _1975_recIdents; + Dafny.ISequence _1971_recursiveGen; + bool _1972_recOwned; + bool _1973_recErased; + Dafny.ISet> _1974_recIdents; Dafny.ISequence _out1235; bool _out1236; bool _out1237; Dafny.ISet> _out1238; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1235, out _out1236, out _out1237, out _out1238); - _1972_recursiveGen = _out1235; - _1973_recOwned = _out1236; - _1974_recErased = _out1237; - _1975_recIdents = _out1238; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1972_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1973_recOwned; - isErased = _1974_recErased; - readIdents = _1975_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1235, out _out1236, out _out1237, out _out1238); + _1971_recursiveGen = _out1235; + _1972_recOwned = _out1236; + _1973_recErased = _out1237; + _1974_recIdents = _out1238; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1971_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1972_recOwned; + isErased = _1973_recErased; + readIdents = _1974_recIdents; } } else if (_source62.is_Map) { - DAST._IType _1976___mcc_h1047 = _source62.dtor_key; - DAST._IType _1977___mcc_h1048 = _source62.dtor_value; + DAST._IType _1975___mcc_h1047 = _source62.dtor_key; + DAST._IType _1976___mcc_h1048 = _source62.dtor_value; { - Dafny.ISequence _1978_recursiveGen; - bool _1979_recOwned; - bool _1980_recErased; - Dafny.ISet> _1981_recIdents; + Dafny.ISequence _1977_recursiveGen; + bool _1978_recOwned; + bool _1979_recErased; + Dafny.ISet> _1980_recIdents; Dafny.ISequence _out1239; bool _out1240; bool _out1241; Dafny.ISet> _out1242; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1239, out _out1240, out _out1241, out _out1242); - _1978_recursiveGen = _out1239; - _1979_recOwned = _out1240; - _1980_recErased = _out1241; - _1981_recIdents = _out1242; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1978_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1979_recOwned; - isErased = _1980_recErased; - readIdents = _1981_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1239, out _out1240, out _out1241, out _out1242); + _1977_recursiveGen = _out1239; + _1978_recOwned = _out1240; + _1979_recErased = _out1241; + _1980_recIdents = _out1242; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1977_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1978_recOwned; + isErased = _1979_recErased; + readIdents = _1980_recIdents; } } else if (_source62.is_Arrow) { - Dafny.ISequence _1982___mcc_h1051 = _source62.dtor_args; - DAST._IType _1983___mcc_h1052 = _source62.dtor_result; + Dafny.ISequence _1981___mcc_h1051 = _source62.dtor_args; + DAST._IType _1982___mcc_h1052 = _source62.dtor_result; { - Dafny.ISequence _1984_recursiveGen; - bool _1985_recOwned; - bool _1986_recErased; - Dafny.ISet> _1987_recIdents; + Dafny.ISequence _1983_recursiveGen; + bool _1984_recOwned; + bool _1985_recErased; + Dafny.ISet> _1986_recIdents; Dafny.ISequence _out1243; bool _out1244; bool _out1245; Dafny.ISet> _out1246; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1243, out _out1244, out _out1245, out _out1246); - _1984_recursiveGen = _out1243; - _1985_recOwned = _out1244; - _1986_recErased = _out1245; - _1987_recIdents = _out1246; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1984_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1985_recOwned; - isErased = _1986_recErased; - readIdents = _1987_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1243, out _out1244, out _out1245, out _out1246); + _1983_recursiveGen = _out1243; + _1984_recOwned = _out1244; + _1985_recErased = _out1245; + _1986_recIdents = _out1246; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1983_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1984_recOwned; + isErased = _1985_recErased; + readIdents = _1986_recIdents; } } else if (_source62.is_Primitive) { - DAST._IPrimitive _1988___mcc_h1055 = _source62.dtor_Primitive_a0; - DAST._IPrimitive _source64 = _1988___mcc_h1055; + DAST._IPrimitive _1987___mcc_h1055 = _source62.dtor_Primitive_a0; + DAST._IPrimitive _source64 = _1987___mcc_h1055; if (_source64.is_Int) { { - Dafny.ISequence _1989_rhsType; + Dafny.ISequence _1988_rhsType; Dafny.ISequence _out1247; - _out1247 = DCOMP.COMP.GenType(_658_fromTpe, true, false); - _1989_rhsType = _out1247; - Dafny.ISequence _1990_recursiveGen; - bool _1991___v58; - bool _1992___v59; - Dafny.ISet> _1993_recIdents; + _out1247 = DCOMP.COMP.GenType(_657_fromTpe, true, false); + _1988_rhsType = _out1247; + Dafny.ISequence _1989_recursiveGen; + bool _1990___v58; + bool _1991___v59; + Dafny.ISet> _1992_recIdents; Dafny.ISequence _out1248; bool _out1249; bool _out1250; Dafny.ISet> _out1251; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, true, out _out1248, out _out1249, out _out1250, out _out1251); - _1990_recursiveGen = _out1248; - _1991___v58 = _out1249; - _1992___v59 = _out1250; - _1993_recIdents = _out1251; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigInt::from("), _1990_recursiveGen), Dafny.Sequence.UnicodeFromString(" as u32)")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, true, out _out1248, out _out1249, out _out1250, out _out1251); + _1989_recursiveGen = _out1248; + _1990___v58 = _out1249; + _1991___v59 = _out1250; + _1992_recIdents = _out1251; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigInt::from("), _1989_recursiveGen), Dafny.Sequence.UnicodeFromString(" as u32)")); isOwned = true; isErased = true; - readIdents = _1993_recIdents; + readIdents = _1992_recIdents; } } else if (_source64.is_Real) { { - Dafny.ISequence _1994_recursiveGen; - bool _1995_recOwned; - bool _1996_recErased; - Dafny.ISet> _1997_recIdents; + Dafny.ISequence _1993_recursiveGen; + bool _1994_recOwned; + bool _1995_recErased; + Dafny.ISet> _1996_recIdents; Dafny.ISequence _out1252; bool _out1253; bool _out1254; Dafny.ISet> _out1255; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1252, out _out1253, out _out1254, out _out1255); - _1994_recursiveGen = _out1252; - _1995_recOwned = _out1253; - _1996_recErased = _out1254; - _1997_recIdents = _out1255; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1994_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1995_recOwned; - isErased = _1996_recErased; - readIdents = _1997_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1252, out _out1253, out _out1254, out _out1255); + _1993_recursiveGen = _out1252; + _1994_recOwned = _out1253; + _1995_recErased = _out1254; + _1996_recIdents = _out1255; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1993_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1994_recOwned; + isErased = _1995_recErased; + readIdents = _1996_recIdents; } } else if (_source64.is_String) { { - Dafny.ISequence _1998_recursiveGen; - bool _1999_recOwned; - bool _2000_recErased; - Dafny.ISet> _2001_recIdents; + Dafny.ISequence _1997_recursiveGen; + bool _1998_recOwned; + bool _1999_recErased; + Dafny.ISet> _2000_recIdents; Dafny.ISequence _out1256; bool _out1257; bool _out1258; Dafny.ISet> _out1259; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1256, out _out1257, out _out1258, out _out1259); - _1998_recursiveGen = _out1256; - _1999_recOwned = _out1257; - _2000_recErased = _out1258; - _2001_recIdents = _out1259; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1998_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _1999_recOwned; - isErased = _2000_recErased; - readIdents = _2001_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1256, out _out1257, out _out1258, out _out1259); + _1997_recursiveGen = _out1256; + _1998_recOwned = _out1257; + _1999_recErased = _out1258; + _2000_recIdents = _out1259; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _1997_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _1998_recOwned; + isErased = _1999_recErased; + readIdents = _2000_recIdents; } } else if (_source64.is_Bool) { { - Dafny.ISequence _2002_recursiveGen; - bool _2003_recOwned; - bool _2004_recErased; - Dafny.ISet> _2005_recIdents; + Dafny.ISequence _2001_recursiveGen; + bool _2002_recOwned; + bool _2003_recErased; + Dafny.ISet> _2004_recIdents; Dafny.ISequence _out1260; bool _out1261; bool _out1262; Dafny.ISet> _out1263; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1260, out _out1261, out _out1262, out _out1263); - _2002_recursiveGen = _out1260; - _2003_recOwned = _out1261; - _2004_recErased = _out1262; - _2005_recIdents = _out1263; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2002_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2003_recOwned; - isErased = _2004_recErased; - readIdents = _2005_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1260, out _out1261, out _out1262, out _out1263); + _2001_recursiveGen = _out1260; + _2002_recOwned = _out1261; + _2003_recErased = _out1262; + _2004_recIdents = _out1263; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2001_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2002_recOwned; + isErased = _2003_recErased; + readIdents = _2004_recIdents; } } else { { - Dafny.ISequence _2006_recursiveGen; - bool _2007_recOwned; - bool _2008_recErased; - Dafny.ISet> _2009_recIdents; + Dafny.ISequence _2005_recursiveGen; + bool _2006_recOwned; + bool _2007_recErased; + Dafny.ISet> _2008_recIdents; Dafny.ISequence _out1264; bool _out1265; bool _out1266; Dafny.ISet> _out1267; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1264, out _out1265, out _out1266, out _out1267); - _2006_recursiveGen = _out1264; - _2007_recOwned = _out1265; - _2008_recErased = _out1266; - _2009_recIdents = _out1267; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2006_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2007_recOwned; - isErased = _2008_recErased; - readIdents = _2009_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1264, out _out1265, out _out1266, out _out1267); + _2005_recursiveGen = _out1264; + _2006_recOwned = _out1265; + _2007_recErased = _out1266; + _2008_recIdents = _out1267; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2005_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2006_recOwned; + isErased = _2007_recErased; + readIdents = _2008_recIdents; } } } else if (_source62.is_Passthrough) { - Dafny.ISequence _2010___mcc_h1057 = _source62.dtor_Passthrough_a0; + Dafny.ISequence _2009___mcc_h1057 = _source62.dtor_Passthrough_a0; { - Dafny.ISequence _2011_recursiveGen; - bool _2012_recOwned; - bool _2013_recErased; - Dafny.ISet> _2014_recIdents; + Dafny.ISequence _2010_recursiveGen; + bool _2011_recOwned; + bool _2012_recErased; + Dafny.ISet> _2013_recIdents; Dafny.ISequence _out1268; bool _out1269; bool _out1270; Dafny.ISet> _out1271; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1268, out _out1269, out _out1270, out _out1271); - _2011_recursiveGen = _out1268; - _2012_recOwned = _out1269; - _2013_recErased = _out1270; - _2014_recIdents = _out1271; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2011_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2012_recOwned; - isErased = _2013_recErased; - readIdents = _2014_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1268, out _out1269, out _out1270, out _out1271); + _2010_recursiveGen = _out1268; + _2011_recOwned = _out1269; + _2012_recErased = _out1270; + _2013_recIdents = _out1271; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2010_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2011_recOwned; + isErased = _2012_recErased; + readIdents = _2013_recIdents; } } else { - Dafny.ISequence _2015___mcc_h1059 = _source62.dtor_TypeArg_a0; + Dafny.ISequence _2014___mcc_h1059 = _source62.dtor_TypeArg_a0; { - Dafny.ISequence _2016_recursiveGen; - bool _2017_recOwned; - bool _2018_recErased; - Dafny.ISet> _2019_recIdents; + Dafny.ISequence _2015_recursiveGen; + bool _2016_recOwned; + bool _2017_recErased; + Dafny.ISet> _2018_recIdents; Dafny.ISequence _out1272; bool _out1273; bool _out1274; Dafny.ISet> _out1275; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1272, out _out1273, out _out1274, out _out1275); - _2016_recursiveGen = _out1272; - _2017_recOwned = _out1273; - _2018_recErased = _out1274; - _2019_recIdents = _out1275; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2016_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2017_recOwned; - isErased = _2018_recErased; - readIdents = _2019_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1272, out _out1273, out _out1274, out _out1275); + _2015_recursiveGen = _out1272; + _2016_recOwned = _out1273; + _2017_recErased = _out1274; + _2018_recIdents = _out1275; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2015_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2016_recOwned; + isErased = _2017_recErased; + readIdents = _2018_recIdents; } } } } else if (_source27.is_Passthrough) { - Dafny.ISequence _2020___mcc_h1061 = _source27.dtor_Passthrough_a0; - DAST._IType _source65 = _665___mcc_h306; + Dafny.ISequence _2019___mcc_h1061 = _source27.dtor_Passthrough_a0; + DAST._IType _source65 = _664___mcc_h306; if (_source65.is_Path) { - Dafny.ISequence> _2021___mcc_h1065 = _source65.dtor_Path_a0; - Dafny.ISequence _2022___mcc_h1066 = _source65.dtor_typeArgs; - DAST._IResolvedType _2023___mcc_h1067 = _source65.dtor_resolved; - DAST._IResolvedType _source66 = _2023___mcc_h1067; + Dafny.ISequence> _2020___mcc_h1065 = _source65.dtor_Path_a0; + Dafny.ISequence _2021___mcc_h1066 = _source65.dtor_typeArgs; + DAST._IResolvedType _2022___mcc_h1067 = _source65.dtor_resolved; + DAST._IResolvedType _source66 = _2022___mcc_h1067; if (_source66.is_Datatype) { - Dafny.ISequence> _2024___mcc_h1071 = _source66.dtor_path; + Dafny.ISequence> _2023___mcc_h1071 = _source66.dtor_path; { - Dafny.ISequence _2025_recursiveGen; - bool _2026_recOwned; - bool _2027_recErased; - Dafny.ISet> _2028_recIdents; + Dafny.ISequence _2024_recursiveGen; + bool _2025_recOwned; + bool _2026_recErased; + Dafny.ISet> _2027_recIdents; Dafny.ISequence _out1276; bool _out1277; bool _out1278; Dafny.ISet> _out1279; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1276, out _out1277, out _out1278, out _out1279); - _2025_recursiveGen = _out1276; - _2026_recOwned = _out1277; - _2027_recErased = _out1278; - _2028_recIdents = _out1279; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2025_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2026_recOwned; - isErased = _2027_recErased; - readIdents = _2028_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1276, out _out1277, out _out1278, out _out1279); + _2024_recursiveGen = _out1276; + _2025_recOwned = _out1277; + _2026_recErased = _out1278; + _2027_recIdents = _out1279; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2024_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2025_recOwned; + isErased = _2026_recErased; + readIdents = _2027_recIdents; } } else if (_source66.is_Trait) { - Dafny.ISequence> _2029___mcc_h1073 = _source66.dtor_path; + Dafny.ISequence> _2028___mcc_h1073 = _source66.dtor_path; { - Dafny.ISequence _2030_recursiveGen; - bool _2031_recOwned; - bool _2032_recErased; - Dafny.ISet> _2033_recIdents; + Dafny.ISequence _2029_recursiveGen; + bool _2030_recOwned; + bool _2031_recErased; + Dafny.ISet> _2032_recIdents; Dafny.ISequence _out1280; bool _out1281; bool _out1282; Dafny.ISet> _out1283; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1280, out _out1281, out _out1282, out _out1283); - _2030_recursiveGen = _out1280; - _2031_recOwned = _out1281; - _2032_recErased = _out1282; - _2033_recIdents = _out1283; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2030_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2031_recOwned; - isErased = _2032_recErased; - readIdents = _2033_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1280, out _out1281, out _out1282, out _out1283); + _2029_recursiveGen = _out1280; + _2030_recOwned = _out1281; + _2031_recErased = _out1282; + _2032_recIdents = _out1283; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2029_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2030_recOwned; + isErased = _2031_recErased; + readIdents = _2032_recIdents; } } else { - DAST._IType _2034___mcc_h1075 = _source66.dtor_Newtype_a0; - DAST._IType _2035_b = _2034___mcc_h1075; + DAST._IType _2033___mcc_h1075 = _source66.dtor_Newtype_a0; + DAST._IType _2034_b = _2033___mcc_h1075; { - if (object.Equals(_658_fromTpe, _2035_b)) { - Dafny.ISequence _2036_recursiveGen; - bool _2037_recOwned; - bool _2038_recErased; - Dafny.ISet> _2039_recIdents; + if (object.Equals(_657_fromTpe, _2034_b)) { + Dafny.ISequence _2035_recursiveGen; + bool _2036_recOwned; + bool _2037_recErased; + Dafny.ISet> _2038_recIdents; Dafny.ISequence _out1284; bool _out1285; bool _out1286; Dafny.ISet> _out1287; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1284, out _out1285, out _out1286, out _out1287); - _2036_recursiveGen = _out1284; - _2037_recOwned = _out1285; - _2038_recErased = _out1286; - _2039_recIdents = _out1287; - Dafny.ISequence _2040_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1284, out _out1285, out _out1286, out _out1287); + _2035_recursiveGen = _out1284; + _2036_recOwned = _out1285; + _2037_recErased = _out1286; + _2038_recIdents = _out1287; + Dafny.ISequence _2039_rhsType; Dafny.ISequence _out1288; - _out1288 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _2040_rhsType = _out1288; - Dafny.ISequence _2041_uneraseFn; - _2041_uneraseFn = ((_2037_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _2040_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _2041_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _2036_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _2037_recOwned; + _out1288 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _2039_rhsType = _out1288; + Dafny.ISequence _2040_uneraseFn; + _2040_uneraseFn = ((_2036_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _2039_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _2040_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _2035_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _2036_recOwned; isErased = false; - readIdents = _2039_recIdents; + readIdents = _2038_recIdents; } else { Dafny.ISequence _out1289; bool _out1290; bool _out1291; Dafny.ISet> _out1292; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _2035_b), _2035_b, _657_toTpe), selfIdent, @params, mustOwn, out _out1289, out _out1290, out _out1291, out _out1292); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _2034_b), _2034_b, _656_toTpe), selfIdent, @params, mustOwn, out _out1289, out _out1290, out _out1291, out _out1292); s = _out1289; isOwned = _out1290; isErased = _out1291; @@ -13867,418 +13836,418 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _2043_recursiveGen; - bool _2044_recOwned; - bool _2045_recErased; - Dafny.ISet> _2046_recIdents; + Dafny.ISequence _2042_recursiveGen; + bool _2043_recOwned; + bool _2044_recErased; + Dafny.ISet> _2045_recIdents; Dafny.ISequence _out1293; bool _out1294; bool _out1295; Dafny.ISet> _out1296; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1293, out _out1294, out _out1295, out _out1296); - _2043_recursiveGen = _out1293; - _2044_recOwned = _out1294; - _2045_recErased = _out1295; - _2046_recIdents = _out1296; - if (!(_2044_recOwned)) { - _2043_recursiveGen = Dafny.Sequence.Concat(_2043_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1293, out _out1294, out _out1295, out _out1296); + _2042_recursiveGen = _out1293; + _2043_recOwned = _out1294; + _2044_recErased = _out1295; + _2045_recIdents = _out1296; + if (!(_2043_recOwned)) { + _2042_recursiveGen = Dafny.Sequence.Concat(_2042_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _2043_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _2042_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _2045_recErased; - readIdents = _2046_recIdents; + isErased = _2044_recErased; + readIdents = _2045_recIdents; } } else if (_source65.is_Tuple) { - Dafny.ISequence _2047___mcc_h1079 = _source65.dtor_Tuple_a0; + Dafny.ISequence _2046___mcc_h1079 = _source65.dtor_Tuple_a0; { - Dafny.ISequence _2048_recursiveGen; - bool _2049_recOwned; - bool _2050_recErased; - Dafny.ISet> _2051_recIdents; + Dafny.ISequence _2047_recursiveGen; + bool _2048_recOwned; + bool _2049_recErased; + Dafny.ISet> _2050_recIdents; Dafny.ISequence _out1297; bool _out1298; bool _out1299; Dafny.ISet> _out1300; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1297, out _out1298, out _out1299, out _out1300); - _2048_recursiveGen = _out1297; - _2049_recOwned = _out1298; - _2050_recErased = _out1299; - _2051_recIdents = _out1300; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2048_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2049_recOwned; - isErased = _2050_recErased; - readIdents = _2051_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1297, out _out1298, out _out1299, out _out1300); + _2047_recursiveGen = _out1297; + _2048_recOwned = _out1298; + _2049_recErased = _out1299; + _2050_recIdents = _out1300; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2047_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2048_recOwned; + isErased = _2049_recErased; + readIdents = _2050_recIdents; } } else if (_source65.is_Array) { - DAST._IType _2052___mcc_h1081 = _source65.dtor_element; - BigInteger _2053___mcc_h1082 = _source65.dtor_dims; + DAST._IType _2051___mcc_h1081 = _source65.dtor_element; + BigInteger _2052___mcc_h1082 = _source65.dtor_dims; { - Dafny.ISequence _2054_recursiveGen; - bool _2055_recOwned; - bool _2056_recErased; - Dafny.ISet> _2057_recIdents; + Dafny.ISequence _2053_recursiveGen; + bool _2054_recOwned; + bool _2055_recErased; + Dafny.ISet> _2056_recIdents; Dafny.ISequence _out1301; bool _out1302; bool _out1303; Dafny.ISet> _out1304; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1301, out _out1302, out _out1303, out _out1304); - _2054_recursiveGen = _out1301; - _2055_recOwned = _out1302; - _2056_recErased = _out1303; - _2057_recIdents = _out1304; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2054_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2055_recOwned; - isErased = _2056_recErased; - readIdents = _2057_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1301, out _out1302, out _out1303, out _out1304); + _2053_recursiveGen = _out1301; + _2054_recOwned = _out1302; + _2055_recErased = _out1303; + _2056_recIdents = _out1304; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2053_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2054_recOwned; + isErased = _2055_recErased; + readIdents = _2056_recIdents; } } else if (_source65.is_Seq) { - DAST._IType _2058___mcc_h1085 = _source65.dtor_element; + DAST._IType _2057___mcc_h1085 = _source65.dtor_element; { - Dafny.ISequence _2059_recursiveGen; - bool _2060_recOwned; - bool _2061_recErased; - Dafny.ISet> _2062_recIdents; + Dafny.ISequence _2058_recursiveGen; + bool _2059_recOwned; + bool _2060_recErased; + Dafny.ISet> _2061_recIdents; Dafny.ISequence _out1305; bool _out1306; bool _out1307; Dafny.ISet> _out1308; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1305, out _out1306, out _out1307, out _out1308); - _2059_recursiveGen = _out1305; - _2060_recOwned = _out1306; - _2061_recErased = _out1307; - _2062_recIdents = _out1308; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2059_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2060_recOwned; - isErased = _2061_recErased; - readIdents = _2062_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1305, out _out1306, out _out1307, out _out1308); + _2058_recursiveGen = _out1305; + _2059_recOwned = _out1306; + _2060_recErased = _out1307; + _2061_recIdents = _out1308; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2058_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2059_recOwned; + isErased = _2060_recErased; + readIdents = _2061_recIdents; } } else if (_source65.is_Set) { - DAST._IType _2063___mcc_h1087 = _source65.dtor_element; + DAST._IType _2062___mcc_h1087 = _source65.dtor_element; { - Dafny.ISequence _2064_recursiveGen; - bool _2065_recOwned; - bool _2066_recErased; - Dafny.ISet> _2067_recIdents; + Dafny.ISequence _2063_recursiveGen; + bool _2064_recOwned; + bool _2065_recErased; + Dafny.ISet> _2066_recIdents; Dafny.ISequence _out1309; bool _out1310; bool _out1311; Dafny.ISet> _out1312; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1309, out _out1310, out _out1311, out _out1312); - _2064_recursiveGen = _out1309; - _2065_recOwned = _out1310; - _2066_recErased = _out1311; - _2067_recIdents = _out1312; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2064_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2065_recOwned; - isErased = _2066_recErased; - readIdents = _2067_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1309, out _out1310, out _out1311, out _out1312); + _2063_recursiveGen = _out1309; + _2064_recOwned = _out1310; + _2065_recErased = _out1311; + _2066_recIdents = _out1312; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2063_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2064_recOwned; + isErased = _2065_recErased; + readIdents = _2066_recIdents; } } else if (_source65.is_Multiset) { - DAST._IType _2068___mcc_h1089 = _source65.dtor_element; + DAST._IType _2067___mcc_h1089 = _source65.dtor_element; { - Dafny.ISequence _2069_recursiveGen; - bool _2070_recOwned; - bool _2071_recErased; - Dafny.ISet> _2072_recIdents; + Dafny.ISequence _2068_recursiveGen; + bool _2069_recOwned; + bool _2070_recErased; + Dafny.ISet> _2071_recIdents; Dafny.ISequence _out1313; bool _out1314; bool _out1315; Dafny.ISet> _out1316; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1313, out _out1314, out _out1315, out _out1316); - _2069_recursiveGen = _out1313; - _2070_recOwned = _out1314; - _2071_recErased = _out1315; - _2072_recIdents = _out1316; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2069_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2070_recOwned; - isErased = _2071_recErased; - readIdents = _2072_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1313, out _out1314, out _out1315, out _out1316); + _2068_recursiveGen = _out1313; + _2069_recOwned = _out1314; + _2070_recErased = _out1315; + _2071_recIdents = _out1316; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2068_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2069_recOwned; + isErased = _2070_recErased; + readIdents = _2071_recIdents; } } else if (_source65.is_Map) { - DAST._IType _2073___mcc_h1091 = _source65.dtor_key; - DAST._IType _2074___mcc_h1092 = _source65.dtor_value; + DAST._IType _2072___mcc_h1091 = _source65.dtor_key; + DAST._IType _2073___mcc_h1092 = _source65.dtor_value; { - Dafny.ISequence _2075_recursiveGen; - bool _2076_recOwned; - bool _2077_recErased; - Dafny.ISet> _2078_recIdents; + Dafny.ISequence _2074_recursiveGen; + bool _2075_recOwned; + bool _2076_recErased; + Dafny.ISet> _2077_recIdents; Dafny.ISequence _out1317; bool _out1318; bool _out1319; Dafny.ISet> _out1320; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1317, out _out1318, out _out1319, out _out1320); - _2075_recursiveGen = _out1317; - _2076_recOwned = _out1318; - _2077_recErased = _out1319; - _2078_recIdents = _out1320; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2075_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2076_recOwned; - isErased = _2077_recErased; - readIdents = _2078_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1317, out _out1318, out _out1319, out _out1320); + _2074_recursiveGen = _out1317; + _2075_recOwned = _out1318; + _2076_recErased = _out1319; + _2077_recIdents = _out1320; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2074_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2075_recOwned; + isErased = _2076_recErased; + readIdents = _2077_recIdents; } } else if (_source65.is_Arrow) { - Dafny.ISequence _2079___mcc_h1095 = _source65.dtor_args; - DAST._IType _2080___mcc_h1096 = _source65.dtor_result; + Dafny.ISequence _2078___mcc_h1095 = _source65.dtor_args; + DAST._IType _2079___mcc_h1096 = _source65.dtor_result; { - Dafny.ISequence _2081_recursiveGen; - bool _2082_recOwned; - bool _2083_recErased; - Dafny.ISet> _2084_recIdents; + Dafny.ISequence _2080_recursiveGen; + bool _2081_recOwned; + bool _2082_recErased; + Dafny.ISet> _2083_recIdents; Dafny.ISequence _out1321; bool _out1322; bool _out1323; Dafny.ISet> _out1324; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1321, out _out1322, out _out1323, out _out1324); - _2081_recursiveGen = _out1321; - _2082_recOwned = _out1322; - _2083_recErased = _out1323; - _2084_recIdents = _out1324; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2081_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2082_recOwned; - isErased = _2083_recErased; - readIdents = _2084_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1321, out _out1322, out _out1323, out _out1324); + _2080_recursiveGen = _out1321; + _2081_recOwned = _out1322; + _2082_recErased = _out1323; + _2083_recIdents = _out1324; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2080_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2081_recOwned; + isErased = _2082_recErased; + readIdents = _2083_recIdents; } } else if (_source65.is_Primitive) { - DAST._IPrimitive _2085___mcc_h1099 = _source65.dtor_Primitive_a0; - DAST._IPrimitive _source67 = _2085___mcc_h1099; + DAST._IPrimitive _2084___mcc_h1099 = _source65.dtor_Primitive_a0; + DAST._IPrimitive _source67 = _2084___mcc_h1099; if (_source67.is_Int) { { - Dafny.ISequence _2086_rhsType; + Dafny.ISequence _2085_rhsType; Dafny.ISequence _out1325; - _out1325 = DCOMP.COMP.GenType(_658_fromTpe, true, false); - _2086_rhsType = _out1325; - Dafny.ISequence _2087_recursiveGen; - bool _2088___v54; - bool _2089___v55; - Dafny.ISet> _2090_recIdents; + _out1325 = DCOMP.COMP.GenType(_657_fromTpe, true, false); + _2085_rhsType = _out1325; + Dafny.ISequence _2086_recursiveGen; + bool _2087___v54; + bool _2088___v55; + Dafny.ISet> _2089_recIdents; Dafny.ISequence _out1326; bool _out1327; bool _out1328; Dafny.ISet> _out1329; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, true, out _out1326, out _out1327, out _out1328, out _out1329); - _2087_recursiveGen = _out1326; - _2088___v54 = _out1327; - _2089___v55 = _out1328; - _2090_recIdents = _out1329; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigInt::from("), _2087_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, true, out _out1326, out _out1327, out _out1328, out _out1329); + _2086_recursiveGen = _out1326; + _2087___v54 = _out1327; + _2088___v55 = _out1328; + _2089_recIdents = _out1329; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigInt::from("), _2086_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; isErased = true; - readIdents = _2090_recIdents; + readIdents = _2089_recIdents; } } else if (_source67.is_Real) { { - Dafny.ISequence _2091_recursiveGen; - bool _2092_recOwned; - bool _2093_recErased; - Dafny.ISet> _2094_recIdents; + Dafny.ISequence _2090_recursiveGen; + bool _2091_recOwned; + bool _2092_recErased; + Dafny.ISet> _2093_recIdents; Dafny.ISequence _out1330; bool _out1331; bool _out1332; Dafny.ISet> _out1333; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1330, out _out1331, out _out1332, out _out1333); - _2091_recursiveGen = _out1330; - _2092_recOwned = _out1331; - _2093_recErased = _out1332; - _2094_recIdents = _out1333; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2091_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2092_recOwned; - isErased = _2093_recErased; - readIdents = _2094_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1330, out _out1331, out _out1332, out _out1333); + _2090_recursiveGen = _out1330; + _2091_recOwned = _out1331; + _2092_recErased = _out1332; + _2093_recIdents = _out1333; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2090_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2091_recOwned; + isErased = _2092_recErased; + readIdents = _2093_recIdents; } } else if (_source67.is_String) { { - Dafny.ISequence _2095_recursiveGen; - bool _2096_recOwned; - bool _2097_recErased; - Dafny.ISet> _2098_recIdents; + Dafny.ISequence _2094_recursiveGen; + bool _2095_recOwned; + bool _2096_recErased; + Dafny.ISet> _2097_recIdents; Dafny.ISequence _out1334; bool _out1335; bool _out1336; Dafny.ISet> _out1337; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1334, out _out1335, out _out1336, out _out1337); - _2095_recursiveGen = _out1334; - _2096_recOwned = _out1335; - _2097_recErased = _out1336; - _2098_recIdents = _out1337; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2095_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2096_recOwned; - isErased = _2097_recErased; - readIdents = _2098_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1334, out _out1335, out _out1336, out _out1337); + _2094_recursiveGen = _out1334; + _2095_recOwned = _out1335; + _2096_recErased = _out1336; + _2097_recIdents = _out1337; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2094_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2095_recOwned; + isErased = _2096_recErased; + readIdents = _2097_recIdents; } } else if (_source67.is_Bool) { { - Dafny.ISequence _2099_recursiveGen; - bool _2100_recOwned; - bool _2101_recErased; - Dafny.ISet> _2102_recIdents; + Dafny.ISequence _2098_recursiveGen; + bool _2099_recOwned; + bool _2100_recErased; + Dafny.ISet> _2101_recIdents; Dafny.ISequence _out1338; bool _out1339; bool _out1340; Dafny.ISet> _out1341; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1338, out _out1339, out _out1340, out _out1341); - _2099_recursiveGen = _out1338; - _2100_recOwned = _out1339; - _2101_recErased = _out1340; - _2102_recIdents = _out1341; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2099_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2100_recOwned; - isErased = _2101_recErased; - readIdents = _2102_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1338, out _out1339, out _out1340, out _out1341); + _2098_recursiveGen = _out1338; + _2099_recOwned = _out1339; + _2100_recErased = _out1340; + _2101_recIdents = _out1341; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2098_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2099_recOwned; + isErased = _2100_recErased; + readIdents = _2101_recIdents; } } else { { - Dafny.ISequence _2103_recursiveGen; - bool _2104_recOwned; - bool _2105_recErased; - Dafny.ISet> _2106_recIdents; + Dafny.ISequence _2102_recursiveGen; + bool _2103_recOwned; + bool _2104_recErased; + Dafny.ISet> _2105_recIdents; Dafny.ISequence _out1342; bool _out1343; bool _out1344; Dafny.ISet> _out1345; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1342, out _out1343, out _out1344, out _out1345); - _2103_recursiveGen = _out1342; - _2104_recOwned = _out1343; - _2105_recErased = _out1344; - _2106_recIdents = _out1345; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2103_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2104_recOwned; - isErased = _2105_recErased; - readIdents = _2106_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1342, out _out1343, out _out1344, out _out1345); + _2102_recursiveGen = _out1342; + _2103_recOwned = _out1343; + _2104_recErased = _out1344; + _2105_recIdents = _out1345; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2102_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2103_recOwned; + isErased = _2104_recErased; + readIdents = _2105_recIdents; } } } else if (_source65.is_Passthrough) { - Dafny.ISequence _2107___mcc_h1101 = _source65.dtor_Passthrough_a0; + Dafny.ISequence _2106___mcc_h1101 = _source65.dtor_Passthrough_a0; { - Dafny.ISequence _2108_recursiveGen; - bool _2109___v62; - bool _2110___v63; - Dafny.ISet> _2111_recIdents; + Dafny.ISequence _2107_recursiveGen; + bool _2108___v62; + bool _2109___v63; + Dafny.ISet> _2110_recIdents; Dafny.ISequence _out1346; bool _out1347; bool _out1348; Dafny.ISet> _out1349; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, true, out _out1346, out _out1347, out _out1348, out _out1349); - _2108_recursiveGen = _out1346; - _2109___v62 = _out1347; - _2110___v63 = _out1348; - _2111_recIdents = _out1349; - Dafny.ISequence _2112_toTpeGen; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, true, out _out1346, out _out1347, out _out1348, out _out1349); + _2107_recursiveGen = _out1346; + _2108___v62 = _out1347; + _2109___v63 = _out1348; + _2110_recIdents = _out1349; + Dafny.ISequence _2111_toTpeGen; Dafny.ISequence _out1350; - _out1350 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _2112_toTpeGen = _out1350; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _2108_recursiveGen), Dafny.Sequence.UnicodeFromString(") as ")), _2112_toTpeGen), Dafny.Sequence.UnicodeFromString(")")); + _out1350 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _2111_toTpeGen = _out1350; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _2107_recursiveGen), Dafny.Sequence.UnicodeFromString(") as ")), _2111_toTpeGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; isErased = true; - readIdents = _2111_recIdents; + readIdents = _2110_recIdents; } } else { - Dafny.ISequence _2113___mcc_h1103 = _source65.dtor_TypeArg_a0; + Dafny.ISequence _2112___mcc_h1103 = _source65.dtor_TypeArg_a0; { - Dafny.ISequence _2114_recursiveGen; - bool _2115_recOwned; - bool _2116_recErased; - Dafny.ISet> _2117_recIdents; + Dafny.ISequence _2113_recursiveGen; + bool _2114_recOwned; + bool _2115_recErased; + Dafny.ISet> _2116_recIdents; Dafny.ISequence _out1351; bool _out1352; bool _out1353; Dafny.ISet> _out1354; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1351, out _out1352, out _out1353, out _out1354); - _2114_recursiveGen = _out1351; - _2115_recOwned = _out1352; - _2116_recErased = _out1353; - _2117_recIdents = _out1354; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2114_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2115_recOwned; - isErased = _2116_recErased; - readIdents = _2117_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1351, out _out1352, out _out1353, out _out1354); + _2113_recursiveGen = _out1351; + _2114_recOwned = _out1352; + _2115_recErased = _out1353; + _2116_recIdents = _out1354; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2113_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2114_recOwned; + isErased = _2115_recErased; + readIdents = _2116_recIdents; } } } else { - Dafny.ISequence _2118___mcc_h1105 = _source27.dtor_TypeArg_a0; - DAST._IType _source68 = _665___mcc_h306; + Dafny.ISequence _2117___mcc_h1105 = _source27.dtor_TypeArg_a0; + DAST._IType _source68 = _664___mcc_h306; if (_source68.is_Path) { - Dafny.ISequence> _2119___mcc_h1109 = _source68.dtor_Path_a0; - Dafny.ISequence _2120___mcc_h1110 = _source68.dtor_typeArgs; - DAST._IResolvedType _2121___mcc_h1111 = _source68.dtor_resolved; - DAST._IResolvedType _source69 = _2121___mcc_h1111; + Dafny.ISequence> _2118___mcc_h1109 = _source68.dtor_Path_a0; + Dafny.ISequence _2119___mcc_h1110 = _source68.dtor_typeArgs; + DAST._IResolvedType _2120___mcc_h1111 = _source68.dtor_resolved; + DAST._IResolvedType _source69 = _2120___mcc_h1111; if (_source69.is_Datatype) { - Dafny.ISequence> _2122___mcc_h1115 = _source69.dtor_path; + Dafny.ISequence> _2121___mcc_h1115 = _source69.dtor_path; { - Dafny.ISequence _2123_recursiveGen; - bool _2124_recOwned; - bool _2125_recErased; - Dafny.ISet> _2126_recIdents; + Dafny.ISequence _2122_recursiveGen; + bool _2123_recOwned; + bool _2124_recErased; + Dafny.ISet> _2125_recIdents; Dafny.ISequence _out1355; bool _out1356; bool _out1357; Dafny.ISet> _out1358; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1355, out _out1356, out _out1357, out _out1358); - _2123_recursiveGen = _out1355; - _2124_recOwned = _out1356; - _2125_recErased = _out1357; - _2126_recIdents = _out1358; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2123_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2124_recOwned; - isErased = _2125_recErased; - readIdents = _2126_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1355, out _out1356, out _out1357, out _out1358); + _2122_recursiveGen = _out1355; + _2123_recOwned = _out1356; + _2124_recErased = _out1357; + _2125_recIdents = _out1358; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2122_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2123_recOwned; + isErased = _2124_recErased; + readIdents = _2125_recIdents; } } else if (_source69.is_Trait) { - Dafny.ISequence> _2127___mcc_h1117 = _source69.dtor_path; + Dafny.ISequence> _2126___mcc_h1117 = _source69.dtor_path; { - Dafny.ISequence _2128_recursiveGen; - bool _2129_recOwned; - bool _2130_recErased; - Dafny.ISet> _2131_recIdents; + Dafny.ISequence _2127_recursiveGen; + bool _2128_recOwned; + bool _2129_recErased; + Dafny.ISet> _2130_recIdents; Dafny.ISequence _out1359; bool _out1360; bool _out1361; Dafny.ISet> _out1362; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1359, out _out1360, out _out1361, out _out1362); - _2128_recursiveGen = _out1359; - _2129_recOwned = _out1360; - _2130_recErased = _out1361; - _2131_recIdents = _out1362; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2128_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2129_recOwned; - isErased = _2130_recErased; - readIdents = _2131_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1359, out _out1360, out _out1361, out _out1362); + _2127_recursiveGen = _out1359; + _2128_recOwned = _out1360; + _2129_recErased = _out1361; + _2130_recIdents = _out1362; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2127_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2128_recOwned; + isErased = _2129_recErased; + readIdents = _2130_recIdents; } } else { - DAST._IType _2132___mcc_h1119 = _source69.dtor_Newtype_a0; - DAST._IType _2133_b = _2132___mcc_h1119; + DAST._IType _2131___mcc_h1119 = _source69.dtor_Newtype_a0; + DAST._IType _2132_b = _2131___mcc_h1119; { - if (object.Equals(_658_fromTpe, _2133_b)) { - Dafny.ISequence _2134_recursiveGen; - bool _2135_recOwned; - bool _2136_recErased; - Dafny.ISet> _2137_recIdents; + if (object.Equals(_657_fromTpe, _2132_b)) { + Dafny.ISequence _2133_recursiveGen; + bool _2134_recOwned; + bool _2135_recErased; + Dafny.ISet> _2136_recIdents; Dafny.ISequence _out1363; bool _out1364; bool _out1365; Dafny.ISet> _out1366; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1363, out _out1364, out _out1365, out _out1366); - _2134_recursiveGen = _out1363; - _2135_recOwned = _out1364; - _2136_recErased = _out1365; - _2137_recIdents = _out1366; - Dafny.ISequence _2138_rhsType; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1363, out _out1364, out _out1365, out _out1366); + _2133_recursiveGen = _out1363; + _2134_recOwned = _out1364; + _2135_recErased = _out1365; + _2136_recIdents = _out1366; + Dafny.ISequence _2137_rhsType; Dafny.ISequence _out1367; - _out1367 = DCOMP.COMP.GenType(_657_toTpe, true, false); - _2138_rhsType = _out1367; - Dafny.ISequence _2139_uneraseFn; - _2139_uneraseFn = ((_2135_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _2138_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _2139_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _2134_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); - isOwned = _2135_recOwned; + _out1367 = DCOMP.COMP.GenType(_656_toTpe, true, false); + _2137_rhsType = _out1367; + Dafny.ISequence _2138_uneraseFn; + _2138_uneraseFn = ((_2134_recOwned) ? (Dafny.Sequence.UnicodeFromString("unerase_owned")) : (Dafny.Sequence.UnicodeFromString("unerase"))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _2137_rhsType), Dafny.Sequence.UnicodeFromString(" as ::dafny_runtime::DafnyUnerasable<_>>::")), _2138_uneraseFn), Dafny.Sequence.UnicodeFromString("(")), _2133_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + isOwned = _2134_recOwned; isErased = false; - readIdents = _2137_recIdents; + readIdents = _2136_recIdents; } else { Dafny.ISequence _out1368; bool _out1369; bool _out1370; Dafny.ISet> _out1371; - DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_659_expr, _658_fromTpe, _2133_b), _2133_b, _657_toTpe), selfIdent, @params, mustOwn, out _out1368, out _out1369, out _out1370, out _out1371); + DCOMP.COMP.GenExpr(DAST.Expression.create_Convert(DAST.Expression.create_Convert(_658_expr, _657_fromTpe, _2132_b), _2132_b, _656_toTpe), selfIdent, @params, mustOwn, out _out1368, out _out1369, out _out1370, out _out1371); s = _out1368; isOwned = _out1369; isErased = _out1370; @@ -14287,462 +14256,462 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _2141_recursiveGen; - bool _2142_recOwned; - bool _2143_recErased; - Dafny.ISet> _2144_recIdents; + Dafny.ISequence _2140_recursiveGen; + bool _2141_recOwned; + bool _2142_recErased; + Dafny.ISet> _2143_recIdents; Dafny.ISequence _out1372; bool _out1373; bool _out1374; Dafny.ISet> _out1375; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1372, out _out1373, out _out1374, out _out1375); - _2141_recursiveGen = _out1372; - _2142_recOwned = _out1373; - _2143_recErased = _out1374; - _2144_recIdents = _out1375; - if (!(_2142_recOwned)) { - _2141_recursiveGen = Dafny.Sequence.Concat(_2141_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1372, out _out1373, out _out1374, out _out1375); + _2140_recursiveGen = _out1372; + _2141_recOwned = _out1373; + _2142_recErased = _out1374; + _2143_recIdents = _out1375; + if (!(_2141_recOwned)) { + _2140_recursiveGen = Dafny.Sequence.Concat(_2140_recursiveGen, Dafny.Sequence.UnicodeFromString(".clone()")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _2141_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("Some("), _2140_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - isErased = _2143_recErased; - readIdents = _2144_recIdents; + isErased = _2142_recErased; + readIdents = _2143_recIdents; } } else if (_source68.is_Tuple) { - Dafny.ISequence _2145___mcc_h1123 = _source68.dtor_Tuple_a0; + Dafny.ISequence _2144___mcc_h1123 = _source68.dtor_Tuple_a0; { - Dafny.ISequence _2146_recursiveGen; - bool _2147_recOwned; - bool _2148_recErased; - Dafny.ISet> _2149_recIdents; + Dafny.ISequence _2145_recursiveGen; + bool _2146_recOwned; + bool _2147_recErased; + Dafny.ISet> _2148_recIdents; Dafny.ISequence _out1376; bool _out1377; bool _out1378; Dafny.ISet> _out1379; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1376, out _out1377, out _out1378, out _out1379); - _2146_recursiveGen = _out1376; - _2147_recOwned = _out1377; - _2148_recErased = _out1378; - _2149_recIdents = _out1379; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2146_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2147_recOwned; - isErased = _2148_recErased; - readIdents = _2149_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1376, out _out1377, out _out1378, out _out1379); + _2145_recursiveGen = _out1376; + _2146_recOwned = _out1377; + _2147_recErased = _out1378; + _2148_recIdents = _out1379; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2145_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2146_recOwned; + isErased = _2147_recErased; + readIdents = _2148_recIdents; } } else if (_source68.is_Array) { - DAST._IType _2150___mcc_h1125 = _source68.dtor_element; - BigInteger _2151___mcc_h1126 = _source68.dtor_dims; + DAST._IType _2149___mcc_h1125 = _source68.dtor_element; + BigInteger _2150___mcc_h1126 = _source68.dtor_dims; { - Dafny.ISequence _2152_recursiveGen; - bool _2153_recOwned; - bool _2154_recErased; - Dafny.ISet> _2155_recIdents; + Dafny.ISequence _2151_recursiveGen; + bool _2152_recOwned; + bool _2153_recErased; + Dafny.ISet> _2154_recIdents; Dafny.ISequence _out1380; bool _out1381; bool _out1382; Dafny.ISet> _out1383; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1380, out _out1381, out _out1382, out _out1383); - _2152_recursiveGen = _out1380; - _2153_recOwned = _out1381; - _2154_recErased = _out1382; - _2155_recIdents = _out1383; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2152_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2153_recOwned; - isErased = _2154_recErased; - readIdents = _2155_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1380, out _out1381, out _out1382, out _out1383); + _2151_recursiveGen = _out1380; + _2152_recOwned = _out1381; + _2153_recErased = _out1382; + _2154_recIdents = _out1383; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2151_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2152_recOwned; + isErased = _2153_recErased; + readIdents = _2154_recIdents; } } else if (_source68.is_Seq) { - DAST._IType _2156___mcc_h1129 = _source68.dtor_element; + DAST._IType _2155___mcc_h1129 = _source68.dtor_element; { - Dafny.ISequence _2157_recursiveGen; - bool _2158_recOwned; - bool _2159_recErased; - Dafny.ISet> _2160_recIdents; + Dafny.ISequence _2156_recursiveGen; + bool _2157_recOwned; + bool _2158_recErased; + Dafny.ISet> _2159_recIdents; Dafny.ISequence _out1384; bool _out1385; bool _out1386; Dafny.ISet> _out1387; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1384, out _out1385, out _out1386, out _out1387); - _2157_recursiveGen = _out1384; - _2158_recOwned = _out1385; - _2159_recErased = _out1386; - _2160_recIdents = _out1387; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2157_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2158_recOwned; - isErased = _2159_recErased; - readIdents = _2160_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1384, out _out1385, out _out1386, out _out1387); + _2156_recursiveGen = _out1384; + _2157_recOwned = _out1385; + _2158_recErased = _out1386; + _2159_recIdents = _out1387; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2156_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2157_recOwned; + isErased = _2158_recErased; + readIdents = _2159_recIdents; } } else if (_source68.is_Set) { - DAST._IType _2161___mcc_h1131 = _source68.dtor_element; + DAST._IType _2160___mcc_h1131 = _source68.dtor_element; { - Dafny.ISequence _2162_recursiveGen; - bool _2163_recOwned; - bool _2164_recErased; - Dafny.ISet> _2165_recIdents; + Dafny.ISequence _2161_recursiveGen; + bool _2162_recOwned; + bool _2163_recErased; + Dafny.ISet> _2164_recIdents; Dafny.ISequence _out1388; bool _out1389; bool _out1390; Dafny.ISet> _out1391; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1388, out _out1389, out _out1390, out _out1391); - _2162_recursiveGen = _out1388; - _2163_recOwned = _out1389; - _2164_recErased = _out1390; - _2165_recIdents = _out1391; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2162_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2163_recOwned; - isErased = _2164_recErased; - readIdents = _2165_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1388, out _out1389, out _out1390, out _out1391); + _2161_recursiveGen = _out1388; + _2162_recOwned = _out1389; + _2163_recErased = _out1390; + _2164_recIdents = _out1391; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2161_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2162_recOwned; + isErased = _2163_recErased; + readIdents = _2164_recIdents; } } else if (_source68.is_Multiset) { - DAST._IType _2166___mcc_h1133 = _source68.dtor_element; + DAST._IType _2165___mcc_h1133 = _source68.dtor_element; { - Dafny.ISequence _2167_recursiveGen; - bool _2168_recOwned; - bool _2169_recErased; - Dafny.ISet> _2170_recIdents; + Dafny.ISequence _2166_recursiveGen; + bool _2167_recOwned; + bool _2168_recErased; + Dafny.ISet> _2169_recIdents; Dafny.ISequence _out1392; bool _out1393; bool _out1394; Dafny.ISet> _out1395; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1392, out _out1393, out _out1394, out _out1395); - _2167_recursiveGen = _out1392; - _2168_recOwned = _out1393; - _2169_recErased = _out1394; - _2170_recIdents = _out1395; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2167_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2168_recOwned; - isErased = _2169_recErased; - readIdents = _2170_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1392, out _out1393, out _out1394, out _out1395); + _2166_recursiveGen = _out1392; + _2167_recOwned = _out1393; + _2168_recErased = _out1394; + _2169_recIdents = _out1395; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2166_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2167_recOwned; + isErased = _2168_recErased; + readIdents = _2169_recIdents; } } else if (_source68.is_Map) { - DAST._IType _2171___mcc_h1135 = _source68.dtor_key; - DAST._IType _2172___mcc_h1136 = _source68.dtor_value; + DAST._IType _2170___mcc_h1135 = _source68.dtor_key; + DAST._IType _2171___mcc_h1136 = _source68.dtor_value; { - Dafny.ISequence _2173_recursiveGen; - bool _2174_recOwned; - bool _2175_recErased; - Dafny.ISet> _2176_recIdents; + Dafny.ISequence _2172_recursiveGen; + bool _2173_recOwned; + bool _2174_recErased; + Dafny.ISet> _2175_recIdents; Dafny.ISequence _out1396; bool _out1397; bool _out1398; Dafny.ISet> _out1399; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1396, out _out1397, out _out1398, out _out1399); - _2173_recursiveGen = _out1396; - _2174_recOwned = _out1397; - _2175_recErased = _out1398; - _2176_recIdents = _out1399; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2173_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2174_recOwned; - isErased = _2175_recErased; - readIdents = _2176_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1396, out _out1397, out _out1398, out _out1399); + _2172_recursiveGen = _out1396; + _2173_recOwned = _out1397; + _2174_recErased = _out1398; + _2175_recIdents = _out1399; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2172_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2173_recOwned; + isErased = _2174_recErased; + readIdents = _2175_recIdents; } } else if (_source68.is_Arrow) { - Dafny.ISequence _2177___mcc_h1139 = _source68.dtor_args; - DAST._IType _2178___mcc_h1140 = _source68.dtor_result; + Dafny.ISequence _2176___mcc_h1139 = _source68.dtor_args; + DAST._IType _2177___mcc_h1140 = _source68.dtor_result; { - Dafny.ISequence _2179_recursiveGen; - bool _2180_recOwned; - bool _2181_recErased; - Dafny.ISet> _2182_recIdents; + Dafny.ISequence _2178_recursiveGen; + bool _2179_recOwned; + bool _2180_recErased; + Dafny.ISet> _2181_recIdents; Dafny.ISequence _out1400; bool _out1401; bool _out1402; Dafny.ISet> _out1403; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1400, out _out1401, out _out1402, out _out1403); - _2179_recursiveGen = _out1400; - _2180_recOwned = _out1401; - _2181_recErased = _out1402; - _2182_recIdents = _out1403; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2179_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2180_recOwned; - isErased = _2181_recErased; - readIdents = _2182_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1400, out _out1401, out _out1402, out _out1403); + _2178_recursiveGen = _out1400; + _2179_recOwned = _out1401; + _2180_recErased = _out1402; + _2181_recIdents = _out1403; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2178_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2179_recOwned; + isErased = _2180_recErased; + readIdents = _2181_recIdents; } } else if (_source68.is_Primitive) { - DAST._IPrimitive _2183___mcc_h1143 = _source68.dtor_Primitive_a0; + DAST._IPrimitive _2182___mcc_h1143 = _source68.dtor_Primitive_a0; { - Dafny.ISequence _2184_recursiveGen; - bool _2185_recOwned; - bool _2186_recErased; - Dafny.ISet> _2187_recIdents; + Dafny.ISequence _2183_recursiveGen; + bool _2184_recOwned; + bool _2185_recErased; + Dafny.ISet> _2186_recIdents; Dafny.ISequence _out1404; bool _out1405; bool _out1406; Dafny.ISet> _out1407; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1404, out _out1405, out _out1406, out _out1407); - _2184_recursiveGen = _out1404; - _2185_recOwned = _out1405; - _2186_recErased = _out1406; - _2187_recIdents = _out1407; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2184_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2185_recOwned; - isErased = _2186_recErased; - readIdents = _2187_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1404, out _out1405, out _out1406, out _out1407); + _2183_recursiveGen = _out1404; + _2184_recOwned = _out1405; + _2185_recErased = _out1406; + _2186_recIdents = _out1407; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2183_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2184_recOwned; + isErased = _2185_recErased; + readIdents = _2186_recIdents; } } else if (_source68.is_Passthrough) { - Dafny.ISequence _2188___mcc_h1145 = _source68.dtor_Passthrough_a0; + Dafny.ISequence _2187___mcc_h1145 = _source68.dtor_Passthrough_a0; { - Dafny.ISequence _2189_recursiveGen; - bool _2190_recOwned; - bool _2191_recErased; - Dafny.ISet> _2192_recIdents; + Dafny.ISequence _2188_recursiveGen; + bool _2189_recOwned; + bool _2190_recErased; + Dafny.ISet> _2191_recIdents; Dafny.ISequence _out1408; bool _out1409; bool _out1410; Dafny.ISet> _out1411; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1408, out _out1409, out _out1410, out _out1411); - _2189_recursiveGen = _out1408; - _2190_recOwned = _out1409; - _2191_recErased = _out1410; - _2192_recIdents = _out1411; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2189_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2190_recOwned; - isErased = _2191_recErased; - readIdents = _2192_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1408, out _out1409, out _out1410, out _out1411); + _2188_recursiveGen = _out1408; + _2189_recOwned = _out1409; + _2190_recErased = _out1410; + _2191_recIdents = _out1411; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2188_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2189_recOwned; + isErased = _2190_recErased; + readIdents = _2191_recIdents; } } else { - Dafny.ISequence _2193___mcc_h1147 = _source68.dtor_TypeArg_a0; + Dafny.ISequence _2192___mcc_h1147 = _source68.dtor_TypeArg_a0; { - Dafny.ISequence _2194_recursiveGen; - bool _2195_recOwned; - bool _2196_recErased; - Dafny.ISet> _2197_recIdents; + Dafny.ISequence _2193_recursiveGen; + bool _2194_recOwned; + bool _2195_recErased; + Dafny.ISet> _2196_recIdents; Dafny.ISequence _out1412; bool _out1413; bool _out1414; Dafny.ISet> _out1415; - DCOMP.COMP.GenExpr(_659_expr, selfIdent, @params, mustOwn, out _out1412, out _out1413, out _out1414, out _out1415); - _2194_recursiveGen = _out1412; - _2195_recOwned = _out1413; - _2196_recErased = _out1414; - _2197_recIdents = _out1415; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2194_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); - isOwned = _2195_recOwned; - isErased = _2196_recErased; - readIdents = _2197_recIdents; + DCOMP.COMP.GenExpr(_658_expr, selfIdent, @params, mustOwn, out _out1412, out _out1413, out _out1414, out _out1415); + _2193_recursiveGen = _out1412; + _2194_recOwned = _out1413; + _2195_recErased = _out1414; + _2196_recIdents = _out1415; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2193_recursiveGen), Dafny.Sequence.UnicodeFromString("/* conversion not yet implemented */)")); + isOwned = _2194_recOwned; + isErased = _2195_recErased; + readIdents = _2196_recIdents; } } } } } } else if (_source20.is_SeqConstruct) { - DAST._IExpression _2198___mcc_h26 = _source20.dtor_length; - DAST._IExpression _2199___mcc_h27 = _source20.dtor_elem; - DAST._IExpression _2200_expr = _2199___mcc_h27; - DAST._IExpression _2201_length = _2198___mcc_h26; + DAST._IExpression _2197___mcc_h26 = _source20.dtor_length; + DAST._IExpression _2198___mcc_h27 = _source20.dtor_elem; + DAST._IExpression _2199_expr = _2198___mcc_h27; + DAST._IExpression _2200_length = _2197___mcc_h26; { - Dafny.ISequence _2202_recursiveGen; - bool _2203___v65; - bool _2204_eErased; - Dafny.ISet> _2205_recIdents; + Dafny.ISequence _2201_recursiveGen; + bool _2202___v65; + bool _2203_eErased; + Dafny.ISet> _2204_recIdents; Dafny.ISequence _out1416; bool _out1417; bool _out1418; Dafny.ISet> _out1419; - DCOMP.COMP.GenExpr(_2200_expr, selfIdent, @params, true, out _out1416, out _out1417, out _out1418, out _out1419); - _2202_recursiveGen = _out1416; - _2203___v65 = _out1417; - _2204_eErased = _out1418; - _2205_recIdents = _out1419; - Dafny.ISequence _2206_lengthGen; - bool _2207___v66; - bool _2208_lengthErased; - Dafny.ISet> _2209_lengthIdents; + DCOMP.COMP.GenExpr(_2199_expr, selfIdent, @params, true, out _out1416, out _out1417, out _out1418, out _out1419); + _2201_recursiveGen = _out1416; + _2202___v65 = _out1417; + _2203_eErased = _out1418; + _2204_recIdents = _out1419; + Dafny.ISequence _2205_lengthGen; + bool _2206___v66; + bool _2207_lengthErased; + Dafny.ISet> _2208_lengthIdents; Dafny.ISequence _out1420; bool _out1421; bool _out1422; Dafny.ISet> _out1423; - DCOMP.COMP.GenExpr(_2201_length, selfIdent, @params, true, out _out1420, out _out1421, out _out1422, out _out1423); - _2206_lengthGen = _out1420; - _2207___v66 = _out1421; - _2208_lengthErased = _out1422; - _2209_lengthIdents = _out1423; - if (!(_2208_lengthErased)) { - _2206_lengthGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2206_lengthGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_2200_length, selfIdent, @params, true, out _out1420, out _out1421, out _out1422, out _out1423); + _2205_lengthGen = _out1420; + _2206___v66 = _out1421; + _2207_lengthErased = _out1422; + _2208_lengthIdents = _out1423; + if (!(_2207_lengthErased)) { + _2205_lengthGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2205_lengthGen), Dafny.Sequence.UnicodeFromString(")")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("{\nlet _initializer = "), _2202_recursiveGen), Dafny.Sequence.UnicodeFromString(";\n::dafny_runtime::integer_range(::dafny_runtime::Zero::zero(), ")), _2206_lengthGen), Dafny.Sequence.UnicodeFromString(").map(|i| _initializer.0(&i)).collect::>()\n}")); - readIdents = Dafny.Set>.Union(_2205_recIdents, _2209_lengthIdents); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("{\nlet _initializer = "), _2201_recursiveGen), Dafny.Sequence.UnicodeFromString(";\n::dafny_runtime::integer_range(::dafny_runtime::Zero::zero(), ")), _2205_lengthGen), Dafny.Sequence.UnicodeFromString(").map(|i| _initializer.0(&i)).collect::>()\n}")); + readIdents = Dafny.Set>.Union(_2204_recIdents, _2208_lengthIdents); isOwned = true; - isErased = _2204_eErased; + isErased = _2203_eErased; } } else if (_source20.is_SeqValue) { - Dafny.ISequence _2210___mcc_h28 = _source20.dtor_elements; - DAST._IType _2211___mcc_h29 = _source20.dtor_typ; - DAST._IType _2212_typ = _2211___mcc_h29; - Dafny.ISequence _2213_exprs = _2210___mcc_h28; + Dafny.ISequence _2209___mcc_h28 = _source20.dtor_elements; + DAST._IType _2210___mcc_h29 = _source20.dtor_typ; + DAST._IType _2211_typ = _2210___mcc_h29; + Dafny.ISequence _2212_exprs = _2209___mcc_h28; { readIdents = Dafny.Set>.FromElements(); - Dafny.ISequence _2214_genTpe; + Dafny.ISequence _2213_genTpe; Dafny.ISequence _out1424; - _out1424 = DCOMP.COMP.GenType(_2212_typ, false, false); - _2214_genTpe = _out1424; - BigInteger _2215_i; - _2215_i = BigInteger.Zero; + _out1424 = DCOMP.COMP.GenType(_2211_typ, false, false); + _2213_genTpe = _out1424; + BigInteger _2214_i; + _2214_i = BigInteger.Zero; s = Dafny.Sequence.UnicodeFromString("(vec!["); - _2215_i = BigInteger.Zero; - while ((_2215_i) < (new BigInteger((_2213_exprs).Count))) { - if ((_2215_i).Sign == 1) { + _2214_i = BigInteger.Zero; + while ((_2214_i) < (new BigInteger((_2212_exprs).Count))) { + if ((_2214_i).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _2216_recursiveGen; - bool _2217___v67; - bool _2218_isErased; - Dafny.ISet> _2219_recIdents; + Dafny.ISequence _2215_recursiveGen; + bool _2216___v67; + bool _2217_isErased; + Dafny.ISet> _2218_recIdents; Dafny.ISequence _out1425; bool _out1426; bool _out1427; Dafny.ISet> _out1428; - DCOMP.COMP.GenExpr((_2213_exprs).Select(_2215_i), selfIdent, @params, true, out _out1425, out _out1426, out _out1427, out _out1428); - _2216_recursiveGen = _out1425; - _2217___v67 = _out1426; - _2218_isErased = _out1427; - _2219_recIdents = _out1428; - readIdents = Dafny.Set>.Union(readIdents, _2219_recIdents); - if (_2218_isErased) { - _2216_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _2216_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr((_2212_exprs).Select(_2214_i), selfIdent, @params, true, out _out1425, out _out1426, out _out1427, out _out1428); + _2215_recursiveGen = _out1425; + _2216___v67 = _out1426; + _2217_isErased = _out1427; + _2218_recIdents = _out1428; + readIdents = Dafny.Set>.Union(readIdents, _2218_recIdents); + if (_2217_isErased) { + _2215_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _2215_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); } - s = Dafny.Sequence.Concat(s, _2216_recursiveGen); - _2215_i = (_2215_i) + (BigInteger.One); + s = Dafny.Sequence.Concat(s, _2215_recursiveGen); + _2214_i = (_2214_i) + (BigInteger.One); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("] as Vec<")), _2214_genTpe), Dafny.Sequence.UnicodeFromString(">)")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("] as Vec<")), _2213_genTpe), Dafny.Sequence.UnicodeFromString(">)")); isOwned = true; isErased = false; } } else if (_source20.is_SetValue) { - Dafny.ISequence _2220___mcc_h30 = _source20.dtor_elements; - Dafny.ISequence _2221_exprs = _2220___mcc_h30; + Dafny.ISequence _2219___mcc_h30 = _source20.dtor_elements; + Dafny.ISequence _2220_exprs = _2219___mcc_h30; { - Dafny.ISequence<_System._ITuple2, bool>> _2222_generatedValues; - _2222_generatedValues = Dafny.Sequence<_System._ITuple2, bool>>.FromElements(); + Dafny.ISequence<_System._ITuple2, bool>> _2221_generatedValues; + _2221_generatedValues = Dafny.Sequence<_System._ITuple2, bool>>.FromElements(); readIdents = Dafny.Set>.FromElements(); - BigInteger _2223_i; - _2223_i = BigInteger.Zero; - bool _2224_allErased; - _2224_allErased = true; - while ((_2223_i) < (new BigInteger((_2221_exprs).Count))) { - Dafny.ISequence _2225_recursiveGen; - bool _2226___v68; - bool _2227_isErased; - Dafny.ISet> _2228_recIdents; + BigInteger _2222_i; + _2222_i = BigInteger.Zero; + bool _2223_allErased; + _2223_allErased = true; + while ((_2222_i) < (new BigInteger((_2220_exprs).Count))) { + Dafny.ISequence _2224_recursiveGen; + bool _2225___v68; + bool _2226_isErased; + Dafny.ISet> _2227_recIdents; Dafny.ISequence _out1429; bool _out1430; bool _out1431; Dafny.ISet> _out1432; - DCOMP.COMP.GenExpr((_2221_exprs).Select(_2223_i), selfIdent, @params, true, out _out1429, out _out1430, out _out1431, out _out1432); - _2225_recursiveGen = _out1429; - _2226___v68 = _out1430; - _2227_isErased = _out1431; - _2228_recIdents = _out1432; - _2224_allErased = (_2224_allErased) && (_2227_isErased); - _2222_generatedValues = Dafny.Sequence<_System._ITuple2, bool>>.Concat(_2222_generatedValues, Dafny.Sequence<_System._ITuple2, bool>>.FromElements(_System.Tuple2, bool>.create(_2225_recursiveGen, _2227_isErased))); - readIdents = Dafny.Set>.Union(readIdents, _2228_recIdents); - _2223_i = (_2223_i) + (BigInteger.One); + DCOMP.COMP.GenExpr((_2220_exprs).Select(_2222_i), selfIdent, @params, true, out _out1429, out _out1430, out _out1431, out _out1432); + _2224_recursiveGen = _out1429; + _2225___v68 = _out1430; + _2226_isErased = _out1431; + _2227_recIdents = _out1432; + _2223_allErased = (_2223_allErased) && (_2226_isErased); + _2221_generatedValues = Dafny.Sequence<_System._ITuple2, bool>>.Concat(_2221_generatedValues, Dafny.Sequence<_System._ITuple2, bool>>.FromElements(_System.Tuple2, bool>.create(_2224_recursiveGen, _2226_isErased))); + readIdents = Dafny.Set>.Union(readIdents, _2227_recIdents); + _2222_i = (_2222_i) + (BigInteger.One); } s = Dafny.Sequence.UnicodeFromString("vec!["); - _2223_i = BigInteger.Zero; - while ((_2223_i) < (new BigInteger((_2222_generatedValues).Count))) { - if ((_2223_i).Sign == 1) { + _2222_i = BigInteger.Zero; + while ((_2222_i) < (new BigInteger((_2221_generatedValues).Count))) { + if ((_2222_i).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _2229_gen; - _2229_gen = ((_2222_generatedValues).Select(_2223_i)).dtor__0; - if ((((_2222_generatedValues).Select(_2223_i)).dtor__1) && (!(_2224_allErased))) { - _2229_gen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _2229_gen), Dafny.Sequence.UnicodeFromString(")")); + Dafny.ISequence _2228_gen; + _2228_gen = ((_2221_generatedValues).Select(_2222_i)).dtor__0; + if ((((_2221_generatedValues).Select(_2222_i)).dtor__1) && (!(_2223_allErased))) { + _2228_gen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _2228_gen), Dafny.Sequence.UnicodeFromString(")")); } - s = Dafny.Sequence.Concat(s, _2229_gen); - _2223_i = (_2223_i) + (BigInteger.One); + s = Dafny.Sequence.Concat(s, _2228_gen); + _2222_i = (_2222_i) + (BigInteger.One); } s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("].into_iter().collect::>()")); isOwned = true; - isErased = _2224_allErased; + isErased = _2223_allErased; } } else if (_source20.is_MapValue) { - Dafny.ISequence<_System._ITuple2> _2230___mcc_h31 = _source20.dtor_mapElems; - Dafny.ISequence<_System._ITuple2> _2231_mapElems = _2230___mcc_h31; + Dafny.ISequence<_System._ITuple2> _2229___mcc_h31 = _source20.dtor_mapElems; + Dafny.ISequence<_System._ITuple2> _2230_mapElems = _2229___mcc_h31; { - Dafny.ISequence<_System._ITuple4, Dafny.ISequence, bool, bool>> _2232_generatedValues; - _2232_generatedValues = Dafny.Sequence<_System._ITuple4, Dafny.ISequence, bool, bool>>.FromElements(); + Dafny.ISequence<_System._ITuple4, Dafny.ISequence, bool, bool>> _2231_generatedValues; + _2231_generatedValues = Dafny.Sequence<_System._ITuple4, Dafny.ISequence, bool, bool>>.FromElements(); readIdents = Dafny.Set>.FromElements(); - BigInteger _2233_i; - _2233_i = BigInteger.Zero; - bool _2234_allErased; - _2234_allErased = true; - while ((_2233_i) < (new BigInteger((_2231_mapElems).Count))) { - Dafny.ISequence _2235_recursiveGenKey; - bool _2236___v69; - bool _2237_isErasedKey; - Dafny.ISet> _2238_recIdentsKey; + BigInteger _2232_i; + _2232_i = BigInteger.Zero; + bool _2233_allErased; + _2233_allErased = true; + while ((_2232_i) < (new BigInteger((_2230_mapElems).Count))) { + Dafny.ISequence _2234_recursiveGenKey; + bool _2235___v69; + bool _2236_isErasedKey; + Dafny.ISet> _2237_recIdentsKey; Dafny.ISequence _out1433; bool _out1434; bool _out1435; Dafny.ISet> _out1436; - DCOMP.COMP.GenExpr(((_2231_mapElems).Select(_2233_i)).dtor__0, selfIdent, @params, true, out _out1433, out _out1434, out _out1435, out _out1436); - _2235_recursiveGenKey = _out1433; - _2236___v69 = _out1434; - _2237_isErasedKey = _out1435; - _2238_recIdentsKey = _out1436; - Dafny.ISequence _2239_recursiveGenValue; - bool _2240___v70; - bool _2241_isErasedValue; - Dafny.ISet> _2242_recIdentsValue; + DCOMP.COMP.GenExpr(((_2230_mapElems).Select(_2232_i)).dtor__0, selfIdent, @params, true, out _out1433, out _out1434, out _out1435, out _out1436); + _2234_recursiveGenKey = _out1433; + _2235___v69 = _out1434; + _2236_isErasedKey = _out1435; + _2237_recIdentsKey = _out1436; + Dafny.ISequence _2238_recursiveGenValue; + bool _2239___v70; + bool _2240_isErasedValue; + Dafny.ISet> _2241_recIdentsValue; Dafny.ISequence _out1437; bool _out1438; bool _out1439; Dafny.ISet> _out1440; - DCOMP.COMP.GenExpr(((_2231_mapElems).Select(_2233_i)).dtor__1, selfIdent, @params, true, out _out1437, out _out1438, out _out1439, out _out1440); - _2239_recursiveGenValue = _out1437; - _2240___v70 = _out1438; - _2241_isErasedValue = _out1439; - _2242_recIdentsValue = _out1440; - _2234_allErased = ((_2234_allErased) && (_2237_isErasedKey)) && (_2241_isErasedValue); - _2232_generatedValues = Dafny.Sequence<_System._ITuple4, Dafny.ISequence, bool, bool>>.Concat(_2232_generatedValues, Dafny.Sequence<_System._ITuple4, Dafny.ISequence, bool, bool>>.FromElements(_System.Tuple4, Dafny.ISequence, bool, bool>.create(_2235_recursiveGenKey, _2239_recursiveGenValue, _2237_isErasedKey, _2241_isErasedValue))); - readIdents = Dafny.Set>.Union(Dafny.Set>.Union(readIdents, _2238_recIdentsKey), _2242_recIdentsValue); - _2233_i = (_2233_i) + (BigInteger.One); + DCOMP.COMP.GenExpr(((_2230_mapElems).Select(_2232_i)).dtor__1, selfIdent, @params, true, out _out1437, out _out1438, out _out1439, out _out1440); + _2238_recursiveGenValue = _out1437; + _2239___v70 = _out1438; + _2240_isErasedValue = _out1439; + _2241_recIdentsValue = _out1440; + _2233_allErased = ((_2233_allErased) && (_2236_isErasedKey)) && (_2240_isErasedValue); + _2231_generatedValues = Dafny.Sequence<_System._ITuple4, Dafny.ISequence, bool, bool>>.Concat(_2231_generatedValues, Dafny.Sequence<_System._ITuple4, Dafny.ISequence, bool, bool>>.FromElements(_System.Tuple4, Dafny.ISequence, bool, bool>.create(_2234_recursiveGenKey, _2238_recursiveGenValue, _2236_isErasedKey, _2240_isErasedValue))); + readIdents = Dafny.Set>.Union(Dafny.Set>.Union(readIdents, _2237_recIdentsKey), _2241_recIdentsValue); + _2232_i = (_2232_i) + (BigInteger.One); } s = Dafny.Sequence.UnicodeFromString("vec!["); - _2233_i = BigInteger.Zero; - while ((_2233_i) < (new BigInteger((_2232_generatedValues).Count))) { - if ((_2233_i).Sign == 1) { + _2232_i = BigInteger.Zero; + while ((_2232_i) < (new BigInteger((_2231_generatedValues).Count))) { + if ((_2232_i).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _2243_genKey; - _2243_genKey = ((_2232_generatedValues).Select(_2233_i)).dtor__0; - Dafny.ISequence _2244_genValue; - _2244_genValue = ((_2232_generatedValues).Select(_2233_i)).dtor__1; - if ((((_2232_generatedValues).Select(_2233_i)).dtor__2) && (!(_2234_allErased))) { - _2243_genKey = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _2243_genKey), Dafny.Sequence.UnicodeFromString(")")); + Dafny.ISequence _2242_genKey; + _2242_genKey = ((_2231_generatedValues).Select(_2232_i)).dtor__0; + Dafny.ISequence _2243_genValue; + _2243_genValue = ((_2231_generatedValues).Select(_2232_i)).dtor__1; + if ((((_2231_generatedValues).Select(_2232_i)).dtor__2) && (!(_2233_allErased))) { + _2242_genKey = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _2242_genKey), Dafny.Sequence.UnicodeFromString(")")); } - if ((((_2232_generatedValues).Select(_2233_i)).dtor__3) && (!(_2234_allErased))) { - _2244_genValue = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _2244_genValue), Dafny.Sequence.UnicodeFromString(")")); + if ((((_2231_generatedValues).Select(_2232_i)).dtor__3) && (!(_2233_allErased))) { + _2243_genValue = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned("), _2243_genValue), Dafny.Sequence.UnicodeFromString(")")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("(")), _2243_genKey), Dafny.Sequence.UnicodeFromString(", ")), _2244_genValue), Dafny.Sequence.UnicodeFromString(")")); - _2233_i = (_2233_i) + (BigInteger.One); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("(")), _2242_genKey), Dafny.Sequence.UnicodeFromString(", ")), _2243_genValue), Dafny.Sequence.UnicodeFromString(")")); + _2232_i = (_2232_i) + (BigInteger.One); } s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("].into_iter().collect::>()")); isOwned = true; - isErased = _2234_allErased; + isErased = _2233_allErased; } } else if (_source20.is_This) { { DAST._IOptional> _source70 = selfIdent; if (_source70.is_Some) { - Dafny.ISequence _2245___mcc_h1149 = _source70.dtor_Some_a0; - Dafny.ISequence _2246_id = _2245___mcc_h1149; + Dafny.ISequence _2244___mcc_h1149 = _source70.dtor_Some_a0; + Dafny.ISequence _2245_id = _2244___mcc_h1149; { if (mustOwn) { - s = Dafny.Sequence.Concat(_2246_id, Dafny.Sequence.UnicodeFromString(".clone()")); + s = Dafny.Sequence.Concat(_2245_id, Dafny.Sequence.UnicodeFromString(".clone()")); isOwned = true; } else { - if ((_2246_id).Equals(Dafny.Sequence.UnicodeFromString("self"))) { + if ((_2245_id).Equals(Dafny.Sequence.UnicodeFromString("self"))) { s = Dafny.Sequence.UnicodeFromString("self"); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), _2246_id); + s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), _2245_id); } isOwned = false; } - readIdents = Dafny.Set>.FromElements(_2246_id); + readIdents = Dafny.Set>.FromElements(_2245_id); isErased = false; } } else { @@ -14755,744 +14724,744 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional _2253_condString; - bool _2254___v71; - bool _2255_condErased; - Dafny.ISet> _2256_recIdentsCond; + Dafny.ISequence _2252_condString; + bool _2253___v71; + bool _2254_condErased; + Dafny.ISet> _2255_recIdentsCond; Dafny.ISequence _out1441; bool _out1442; bool _out1443; Dafny.ISet> _out1444; - DCOMP.COMP.GenExpr(_2252_cond, selfIdent, @params, true, out _out1441, out _out1442, out _out1443, out _out1444); - _2253_condString = _out1441; - _2254___v71 = _out1442; - _2255_condErased = _out1443; - _2256_recIdentsCond = _out1444; - if (!(_2255_condErased)) { - _2253_condString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2253_condString), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_2251_cond, selfIdent, @params, true, out _out1441, out _out1442, out _out1443, out _out1444); + _2252_condString = _out1441; + _2253___v71 = _out1442; + _2254_condErased = _out1443; + _2255_recIdentsCond = _out1444; + if (!(_2254_condErased)) { + _2252_condString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2252_condString), Dafny.Sequence.UnicodeFromString(")")); } - Dafny.ISequence _2257___v72; - bool _2258_tHasToBeOwned; - bool _2259___v73; - Dafny.ISet> _2260___v74; + Dafny.ISequence _2256___v72; + bool _2257_tHasToBeOwned; + bool _2258___v73; + Dafny.ISet> _2259___v74; Dafny.ISequence _out1445; bool _out1446; bool _out1447; Dafny.ISet> _out1448; - DCOMP.COMP.GenExpr(_2251_t, selfIdent, @params, mustOwn, out _out1445, out _out1446, out _out1447, out _out1448); - _2257___v72 = _out1445; - _2258_tHasToBeOwned = _out1446; - _2259___v73 = _out1447; - _2260___v74 = _out1448; - Dafny.ISequence _2261_fString; - bool _2262_fOwned; - bool _2263_fErased; - Dafny.ISet> _2264_recIdentsF; + DCOMP.COMP.GenExpr(_2250_t, selfIdent, @params, mustOwn, out _out1445, out _out1446, out _out1447, out _out1448); + _2256___v72 = _out1445; + _2257_tHasToBeOwned = _out1446; + _2258___v73 = _out1447; + _2259___v74 = _out1448; + Dafny.ISequence _2260_fString; + bool _2261_fOwned; + bool _2262_fErased; + Dafny.ISet> _2263_recIdentsF; Dafny.ISequence _out1449; bool _out1450; bool _out1451; Dafny.ISet> _out1452; - DCOMP.COMP.GenExpr(_2250_f, selfIdent, @params, _2258_tHasToBeOwned, out _out1449, out _out1450, out _out1451, out _out1452); - _2261_fString = _out1449; - _2262_fOwned = _out1450; - _2263_fErased = _out1451; - _2264_recIdentsF = _out1452; - Dafny.ISequence _2265_tString; - bool _2266___v75; - bool _2267_tErased; - Dafny.ISet> _2268_recIdentsT; + DCOMP.COMP.GenExpr(_2249_f, selfIdent, @params, _2257_tHasToBeOwned, out _out1449, out _out1450, out _out1451, out _out1452); + _2260_fString = _out1449; + _2261_fOwned = _out1450; + _2262_fErased = _out1451; + _2263_recIdentsF = _out1452; + Dafny.ISequence _2264_tString; + bool _2265___v75; + bool _2266_tErased; + Dafny.ISet> _2267_recIdentsT; Dafny.ISequence _out1453; bool _out1454; bool _out1455; Dafny.ISet> _out1456; - DCOMP.COMP.GenExpr(_2251_t, selfIdent, @params, _2262_fOwned, out _out1453, out _out1454, out _out1455, out _out1456); - _2265_tString = _out1453; - _2266___v75 = _out1454; - _2267_tErased = _out1455; - _2268_recIdentsT = _out1456; - if ((!(_2263_fErased)) || (!(_2267_tErased))) { - if (_2263_fErased) { - _2261_fString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2261_fString), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_2250_t, selfIdent, @params, _2261_fOwned, out _out1453, out _out1454, out _out1455, out _out1456); + _2264_tString = _out1453; + _2265___v75 = _out1454; + _2266_tErased = _out1455; + _2267_recIdentsT = _out1456; + if ((!(_2262_fErased)) || (!(_2266_tErased))) { + if (_2262_fErased) { + _2260_fString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2260_fString), Dafny.Sequence.UnicodeFromString(")")); } - if (_2267_tErased) { - _2265_tString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2265_tString), Dafny.Sequence.UnicodeFromString(")")); + if (_2266_tErased) { + _2264_tString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2264_tString), Dafny.Sequence.UnicodeFromString(")")); } } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(if "), _2253_condString), Dafny.Sequence.UnicodeFromString(" {\n")), _2265_tString), Dafny.Sequence.UnicodeFromString("\n} else {\n")), _2261_fString), Dafny.Sequence.UnicodeFromString("\n})")); - isOwned = _2262_fOwned; - readIdents = Dafny.Set>.Union(Dafny.Set>.Union(_2256_recIdentsCond, _2268_recIdentsT), _2264_recIdentsF); - isErased = (_2263_fErased) || (_2267_tErased); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(if "), _2252_condString), Dafny.Sequence.UnicodeFromString(" {\n")), _2264_tString), Dafny.Sequence.UnicodeFromString("\n} else {\n")), _2260_fString), Dafny.Sequence.UnicodeFromString("\n})")); + isOwned = _2261_fOwned; + readIdents = Dafny.Set>.Union(Dafny.Set>.Union(_2255_recIdentsCond, _2267_recIdentsT), _2263_recIdentsF); + isErased = (_2262_fErased) || (_2266_tErased); } } else if (_source20.is_UnOp) { - DAST._IUnaryOp _2269___mcc_h35 = _source20.dtor_unOp; - DAST._IExpression _2270___mcc_h36 = _source20.dtor_expr; - DAST._IUnaryOp _source71 = _2269___mcc_h35; + DAST._IUnaryOp _2268___mcc_h35 = _source20.dtor_unOp; + DAST._IExpression _2269___mcc_h36 = _source20.dtor_expr; + DAST._IUnaryOp _source71 = _2268___mcc_h35; if (_source71.is_Not) { - DAST._IExpression _2271_e = _2270___mcc_h36; + DAST._IExpression _2270_e = _2269___mcc_h36; { - Dafny.ISequence _2272_recursiveGen; - bool _2273___v76; - bool _2274_recErased; - Dafny.ISet> _2275_recIdents; + Dafny.ISequence _2271_recursiveGen; + bool _2272___v76; + bool _2273_recErased; + Dafny.ISet> _2274_recIdents; Dafny.ISequence _out1457; bool _out1458; bool _out1459; Dafny.ISet> _out1460; - DCOMP.COMP.GenExpr(_2271_e, selfIdent, @params, true, out _out1457, out _out1458, out _out1459, out _out1460); - _2272_recursiveGen = _out1457; - _2273___v76 = _out1458; - _2274_recErased = _out1459; - _2275_recIdents = _out1460; - if (!(_2274_recErased)) { - _2272_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2272_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_2270_e, selfIdent, @params, true, out _out1457, out _out1458, out _out1459, out _out1460); + _2271_recursiveGen = _out1457; + _2272___v76 = _out1458; + _2273_recErased = _out1459; + _2274_recIdents = _out1460; + if (!(_2273_recErased)) { + _2271_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2271_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!("), _2272_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!("), _2271_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - readIdents = _2275_recIdents; + readIdents = _2274_recIdents; isErased = true; } } else if (_source71.is_BitwiseNot) { - DAST._IExpression _2276_e = _2270___mcc_h36; + DAST._IExpression _2275_e = _2269___mcc_h36; { - Dafny.ISequence _2277_recursiveGen; - bool _2278___v77; - bool _2279_recErased; - Dafny.ISet> _2280_recIdents; + Dafny.ISequence _2276_recursiveGen; + bool _2277___v77; + bool _2278_recErased; + Dafny.ISet> _2279_recIdents; Dafny.ISequence _out1461; bool _out1462; bool _out1463; Dafny.ISet> _out1464; - DCOMP.COMP.GenExpr(_2276_e, selfIdent, @params, true, out _out1461, out _out1462, out _out1463, out _out1464); - _2277_recursiveGen = _out1461; - _2278___v77 = _out1462; - _2279_recErased = _out1463; - _2280_recIdents = _out1464; - if (!(_2279_recErased)) { - _2277_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2277_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_2275_e, selfIdent, @params, true, out _out1461, out _out1462, out _out1463, out _out1464); + _2276_recursiveGen = _out1461; + _2277___v77 = _out1462; + _2278_recErased = _out1463; + _2279_recIdents = _out1464; + if (!(_2278_recErased)) { + _2276_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2276_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("~("), _2277_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("~("), _2276_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; - readIdents = _2280_recIdents; + readIdents = _2279_recIdents; isErased = true; } } else { - DAST._IExpression _2281_e = _2270___mcc_h36; + DAST._IExpression _2280_e = _2269___mcc_h36; { - Dafny.ISequence _2282_recursiveGen; - bool _2283_recOwned; - bool _2284_recErased; - Dafny.ISet> _2285_recIdents; + Dafny.ISequence _2281_recursiveGen; + bool _2282_recOwned; + bool _2283_recErased; + Dafny.ISet> _2284_recIdents; Dafny.ISequence _out1465; bool _out1466; bool _out1467; Dafny.ISet> _out1468; - DCOMP.COMP.GenExpr(_2281_e, selfIdent, @params, false, out _out1465, out _out1466, out _out1467, out _out1468); - _2282_recursiveGen = _out1465; - _2283_recOwned = _out1466; - _2284_recErased = _out1467; - _2285_recIdents = _out1468; - if (!(_2284_recErased)) { - Dafny.ISequence _2286_eraseFn; - _2286_eraseFn = ((_2283_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); - _2282_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _2286_eraseFn), Dafny.Sequence.UnicodeFromString("(")), _2282_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_2280_e, selfIdent, @params, false, out _out1465, out _out1466, out _out1467, out _out1468); + _2281_recursiveGen = _out1465; + _2282_recOwned = _out1466; + _2283_recErased = _out1467; + _2284_recIdents = _out1468; + if (!(_2283_recErased)) { + Dafny.ISequence _2285_eraseFn; + _2285_eraseFn = ((_2282_recOwned) ? (Dafny.Sequence.UnicodeFromString("erase_owned")) : (Dafny.Sequence.UnicodeFromString("erase"))); + _2281_recursiveGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::"), _2285_eraseFn), Dafny.Sequence.UnicodeFromString("(")), _2281_recursiveGen), Dafny.Sequence.UnicodeFromString(")")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigInt::from(("), _2282_recursiveGen), Dafny.Sequence.UnicodeFromString(").len())")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigInt::from(("), _2281_recursiveGen), Dafny.Sequence.UnicodeFromString(").len())")); isOwned = true; - readIdents = _2285_recIdents; + readIdents = _2284_recIdents; isErased = true; } } } else if (_source20.is_BinOp) { - DAST._IBinOp _2287___mcc_h37 = _source20.dtor_op; - DAST._IExpression _2288___mcc_h38 = _source20.dtor_left; - DAST._IExpression _2289___mcc_h39 = _source20.dtor_right; - DAST._IExpression _2290_r = _2289___mcc_h39; - DAST._IExpression _2291_l = _2288___mcc_h38; - DAST._IBinOp _2292_op = _2287___mcc_h37; + DAST._IBinOp _2286___mcc_h37 = _source20.dtor_op; + DAST._IExpression _2287___mcc_h38 = _source20.dtor_left; + DAST._IExpression _2288___mcc_h39 = _source20.dtor_right; + DAST._IExpression _2289_r = _2288___mcc_h39; + DAST._IExpression _2290_l = _2287___mcc_h38; + DAST._IBinOp _2291_op = _2286___mcc_h37; { - Dafny.ISequence _2293_left; - bool _2294___v78; - bool _2295_leftErased; - Dafny.ISet> _2296_recIdentsL; + Dafny.ISequence _2292_left; + bool _2293___v78; + bool _2294_leftErased; + Dafny.ISet> _2295_recIdentsL; Dafny.ISequence _out1469; bool _out1470; bool _out1471; Dafny.ISet> _out1472; - DCOMP.COMP.GenExpr(_2291_l, selfIdent, @params, true, out _out1469, out _out1470, out _out1471, out _out1472); - _2293_left = _out1469; - _2294___v78 = _out1470; - _2295_leftErased = _out1471; - _2296_recIdentsL = _out1472; - Dafny.ISequence _2297_right; - bool _2298___v79; - bool _2299_rightErased; - Dafny.ISet> _2300_recIdentsR; + DCOMP.COMP.GenExpr(_2290_l, selfIdent, @params, true, out _out1469, out _out1470, out _out1471, out _out1472); + _2292_left = _out1469; + _2293___v78 = _out1470; + _2294_leftErased = _out1471; + _2295_recIdentsL = _out1472; + Dafny.ISequence _2296_right; + bool _2297___v79; + bool _2298_rightErased; + Dafny.ISet> _2299_recIdentsR; Dafny.ISequence _out1473; bool _out1474; bool _out1475; Dafny.ISet> _out1476; - DCOMP.COMP.GenExpr(_2290_r, selfIdent, @params, true, out _out1473, out _out1474, out _out1475, out _out1476); - _2297_right = _out1473; - _2298___v79 = _out1474; - _2299_rightErased = _out1475; - _2300_recIdentsR = _out1476; - DAST._IBinOp _source72 = _2292_op; + DCOMP.COMP.GenExpr(_2289_r, selfIdent, @params, true, out _out1473, out _out1474, out _out1475, out _out1476); + _2296_right = _out1473; + _2297___v79 = _out1474; + _2298_rightErased = _out1475; + _2299_recIdentsR = _out1476; + DAST._IBinOp _source72 = _2291_op; if (_source72.is_Eq) { - bool _2301___mcc_h1150 = _source72.dtor_referential; - bool _2302___mcc_h1151 = _source72.dtor_nullable; + bool _2300___mcc_h1150 = _source72.dtor_referential; + bool _2301___mcc_h1151 = _source72.dtor_nullable; { - if (!(_2295_leftErased)) { - _2293_left = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2293_left), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2294_leftErased)) { + _2292_left = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2292_left), Dafny.Sequence.UnicodeFromString(")")); } - if (!(_2299_rightErased)) { - _2297_right = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2298_rightErased)) { + _2296_right = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } - DAST._IBinOp _source73 = _2292_op; + DAST._IBinOp _source73 = _2291_op; if (_source73.is_Eq) { - bool _2303___mcc_h1160 = _source73.dtor_referential; - bool _2304___mcc_h1161 = _source73.dtor_nullable; - bool _2305_nullable = _2304___mcc_h1161; - bool _2306_referential = _2303___mcc_h1160; + bool _2302___mcc_h1160 = _source73.dtor_referential; + bool _2303___mcc_h1161 = _source73.dtor_nullable; + bool _2304_nullable = _2303___mcc_h1161; + bool _2305_referential = _2302___mcc_h1160; { - if (_2306_referential) { - if (_2305_nullable) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::nullable_referential_equality("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (_2305_referential) { + if (_2304_nullable) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::nullable_referential_equality("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::ptr_eq(&("), _2293_left), Dafny.Sequence.UnicodeFromString("), &(")), _2297_right), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::ptr_eq(&("), _2292_left), Dafny.Sequence.UnicodeFromString("), &(")), _2296_right), Dafny.Sequence.UnicodeFromString("))")); } } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(" == ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(" == ")), _2296_right); } } } else if (_source73.is_Neq) { - bool _2307___mcc_h1162 = _source73.dtor_referential; - bool _2308___mcc_h1163 = _source73.dtor_nullable; - bool _2309_nullable = _2308___mcc_h1163; - bool _2310_referential = _2307___mcc_h1162; + bool _2306___mcc_h1162 = _source73.dtor_referential; + bool _2307___mcc_h1163 = _source73.dtor_nullable; + bool _2308_nullable = _2307___mcc_h1163; + bool _2309_referential = _2306___mcc_h1162; { - if (_2310_referential) { - if (_2309_nullable) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::dafny_runtime::nullable_referential_equality("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (_2309_referential) { + if (_2308_nullable) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::dafny_runtime::nullable_referential_equality("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::std::rc::Rc::ptr_eq(&("), _2293_left), Dafny.Sequence.UnicodeFromString("), &(")), _2297_right), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::std::rc::Rc::ptr_eq(&("), _2292_left), Dafny.Sequence.UnicodeFromString("), &(")), _2296_right), Dafny.Sequence.UnicodeFromString("))")); } } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(" != ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(" != ")), _2296_right); } } } else if (_source73.is_Div) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(") / (")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(") / (")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source73.is_EuclidianDiv) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_division("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_division("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source73.is_Mod) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(") % (")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(") % (")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source73.is_EuclidianMod) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_modulo("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_modulo("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else { - Dafny.ISequence _2311___mcc_h1164 = _source73.dtor_Passthrough_a0; - Dafny.ISequence _2312_op = _2311___mcc_h1164; + Dafny.ISequence _2310___mcc_h1164 = _source73.dtor_Passthrough_a0; + Dafny.ISequence _2311_op = _2310___mcc_h1164; { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(" ")), _2312_op), Dafny.Sequence.UnicodeFromString(" ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(" ")), _2311_op), Dafny.Sequence.UnicodeFromString(" ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } } } else if (_source72.is_Neq) { - bool _2313___mcc_h1154 = _source72.dtor_referential; - bool _2314___mcc_h1155 = _source72.dtor_nullable; + bool _2312___mcc_h1154 = _source72.dtor_referential; + bool _2313___mcc_h1155 = _source72.dtor_nullable; { - if (!(_2295_leftErased)) { - _2293_left = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2293_left), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2294_leftErased)) { + _2292_left = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2292_left), Dafny.Sequence.UnicodeFromString(")")); } - if (!(_2299_rightErased)) { - _2297_right = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2298_rightErased)) { + _2296_right = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } - DAST._IBinOp _source74 = _2292_op; + DAST._IBinOp _source74 = _2291_op; if (_source74.is_Eq) { - bool _2315___mcc_h1165 = _source74.dtor_referential; - bool _2316___mcc_h1166 = _source74.dtor_nullable; - bool _2317_nullable = _2316___mcc_h1166; - bool _2318_referential = _2315___mcc_h1165; + bool _2314___mcc_h1165 = _source74.dtor_referential; + bool _2315___mcc_h1166 = _source74.dtor_nullable; + bool _2316_nullable = _2315___mcc_h1166; + bool _2317_referential = _2314___mcc_h1165; { - if (_2318_referential) { - if (_2317_nullable) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::nullable_referential_equality("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (_2317_referential) { + if (_2316_nullable) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::nullable_referential_equality("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::ptr_eq(&("), _2293_left), Dafny.Sequence.UnicodeFromString("), &(")), _2297_right), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::ptr_eq(&("), _2292_left), Dafny.Sequence.UnicodeFromString("), &(")), _2296_right), Dafny.Sequence.UnicodeFromString("))")); } } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(" == ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(" == ")), _2296_right); } } } else if (_source74.is_Neq) { - bool _2319___mcc_h1167 = _source74.dtor_referential; - bool _2320___mcc_h1168 = _source74.dtor_nullable; - bool _2321_nullable = _2320___mcc_h1168; - bool _2322_referential = _2319___mcc_h1167; + bool _2318___mcc_h1167 = _source74.dtor_referential; + bool _2319___mcc_h1168 = _source74.dtor_nullable; + bool _2320_nullable = _2319___mcc_h1168; + bool _2321_referential = _2318___mcc_h1167; { - if (_2322_referential) { - if (_2321_nullable) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::dafny_runtime::nullable_referential_equality("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (_2321_referential) { + if (_2320_nullable) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::dafny_runtime::nullable_referential_equality("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::std::rc::Rc::ptr_eq(&("), _2293_left), Dafny.Sequence.UnicodeFromString("), &(")), _2297_right), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::std::rc::Rc::ptr_eq(&("), _2292_left), Dafny.Sequence.UnicodeFromString("), &(")), _2296_right), Dafny.Sequence.UnicodeFromString("))")); } } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(" != ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(" != ")), _2296_right); } } } else if (_source74.is_Div) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(") / (")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(") / (")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source74.is_EuclidianDiv) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_division("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_division("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source74.is_Mod) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(") % (")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(") % (")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source74.is_EuclidianMod) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_modulo("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_modulo("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else { - Dafny.ISequence _2323___mcc_h1169 = _source74.dtor_Passthrough_a0; - Dafny.ISequence _2324_op = _2323___mcc_h1169; + Dafny.ISequence _2322___mcc_h1169 = _source74.dtor_Passthrough_a0; + Dafny.ISequence _2323_op = _2322___mcc_h1169; { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(" ")), _2324_op), Dafny.Sequence.UnicodeFromString(" ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(" ")), _2323_op), Dafny.Sequence.UnicodeFromString(" ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } } } else if (_source72.is_Div) { { - if (!(_2295_leftErased)) { - _2293_left = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2293_left), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2294_leftErased)) { + _2292_left = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2292_left), Dafny.Sequence.UnicodeFromString(")")); } - if (!(_2299_rightErased)) { - _2297_right = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2298_rightErased)) { + _2296_right = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } - DAST._IBinOp _source75 = _2292_op; + DAST._IBinOp _source75 = _2291_op; if (_source75.is_Eq) { - bool _2325___mcc_h1170 = _source75.dtor_referential; - bool _2326___mcc_h1171 = _source75.dtor_nullable; - bool _2327_nullable = _2326___mcc_h1171; - bool _2328_referential = _2325___mcc_h1170; + bool _2324___mcc_h1170 = _source75.dtor_referential; + bool _2325___mcc_h1171 = _source75.dtor_nullable; + bool _2326_nullable = _2325___mcc_h1171; + bool _2327_referential = _2324___mcc_h1170; { - if (_2328_referential) { - if (_2327_nullable) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::nullable_referential_equality("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (_2327_referential) { + if (_2326_nullable) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::nullable_referential_equality("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::ptr_eq(&("), _2293_left), Dafny.Sequence.UnicodeFromString("), &(")), _2297_right), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::ptr_eq(&("), _2292_left), Dafny.Sequence.UnicodeFromString("), &(")), _2296_right), Dafny.Sequence.UnicodeFromString("))")); } } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(" == ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(" == ")), _2296_right); } } } else if (_source75.is_Neq) { - bool _2329___mcc_h1172 = _source75.dtor_referential; - bool _2330___mcc_h1173 = _source75.dtor_nullable; - bool _2331_nullable = _2330___mcc_h1173; - bool _2332_referential = _2329___mcc_h1172; + bool _2328___mcc_h1172 = _source75.dtor_referential; + bool _2329___mcc_h1173 = _source75.dtor_nullable; + bool _2330_nullable = _2329___mcc_h1173; + bool _2331_referential = _2328___mcc_h1172; { - if (_2332_referential) { - if (_2331_nullable) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::dafny_runtime::nullable_referential_equality("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (_2331_referential) { + if (_2330_nullable) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::dafny_runtime::nullable_referential_equality("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::std::rc::Rc::ptr_eq(&("), _2293_left), Dafny.Sequence.UnicodeFromString("), &(")), _2297_right), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::std::rc::Rc::ptr_eq(&("), _2292_left), Dafny.Sequence.UnicodeFromString("), &(")), _2296_right), Dafny.Sequence.UnicodeFromString("))")); } } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(" != ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(" != ")), _2296_right); } } } else if (_source75.is_Div) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(") / (")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(") / (")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source75.is_EuclidianDiv) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_division("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_division("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source75.is_Mod) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(") % (")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(") % (")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source75.is_EuclidianMod) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_modulo("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_modulo("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else { - Dafny.ISequence _2333___mcc_h1174 = _source75.dtor_Passthrough_a0; - Dafny.ISequence _2334_op = _2333___mcc_h1174; + Dafny.ISequence _2332___mcc_h1174 = _source75.dtor_Passthrough_a0; + Dafny.ISequence _2333_op = _2332___mcc_h1174; { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(" ")), _2334_op), Dafny.Sequence.UnicodeFromString(" ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(" ")), _2333_op), Dafny.Sequence.UnicodeFromString(" ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } } } else if (_source72.is_EuclidianDiv) { { - if (!(_2295_leftErased)) { - _2293_left = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2293_left), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2294_leftErased)) { + _2292_left = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2292_left), Dafny.Sequence.UnicodeFromString(")")); } - if (!(_2299_rightErased)) { - _2297_right = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2298_rightErased)) { + _2296_right = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } - DAST._IBinOp _source76 = _2292_op; + DAST._IBinOp _source76 = _2291_op; if (_source76.is_Eq) { - bool _2335___mcc_h1175 = _source76.dtor_referential; - bool _2336___mcc_h1176 = _source76.dtor_nullable; - bool _2337_nullable = _2336___mcc_h1176; - bool _2338_referential = _2335___mcc_h1175; + bool _2334___mcc_h1175 = _source76.dtor_referential; + bool _2335___mcc_h1176 = _source76.dtor_nullable; + bool _2336_nullable = _2335___mcc_h1176; + bool _2337_referential = _2334___mcc_h1175; { - if (_2338_referential) { - if (_2337_nullable) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::nullable_referential_equality("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (_2337_referential) { + if (_2336_nullable) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::nullable_referential_equality("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::ptr_eq(&("), _2293_left), Dafny.Sequence.UnicodeFromString("), &(")), _2297_right), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::ptr_eq(&("), _2292_left), Dafny.Sequence.UnicodeFromString("), &(")), _2296_right), Dafny.Sequence.UnicodeFromString("))")); } } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(" == ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(" == ")), _2296_right); } } } else if (_source76.is_Neq) { - bool _2339___mcc_h1177 = _source76.dtor_referential; - bool _2340___mcc_h1178 = _source76.dtor_nullable; - bool _2341_nullable = _2340___mcc_h1178; - bool _2342_referential = _2339___mcc_h1177; + bool _2338___mcc_h1177 = _source76.dtor_referential; + bool _2339___mcc_h1178 = _source76.dtor_nullable; + bool _2340_nullable = _2339___mcc_h1178; + bool _2341_referential = _2338___mcc_h1177; { - if (_2342_referential) { - if (_2341_nullable) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::dafny_runtime::nullable_referential_equality("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (_2341_referential) { + if (_2340_nullable) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::dafny_runtime::nullable_referential_equality("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::std::rc::Rc::ptr_eq(&("), _2293_left), Dafny.Sequence.UnicodeFromString("), &(")), _2297_right), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::std::rc::Rc::ptr_eq(&("), _2292_left), Dafny.Sequence.UnicodeFromString("), &(")), _2296_right), Dafny.Sequence.UnicodeFromString("))")); } } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(" != ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(" != ")), _2296_right); } } } else if (_source76.is_Div) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(") / (")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(") / (")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source76.is_EuclidianDiv) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_division("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_division("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source76.is_Mod) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(") % (")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(") % (")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source76.is_EuclidianMod) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_modulo("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_modulo("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else { - Dafny.ISequence _2343___mcc_h1179 = _source76.dtor_Passthrough_a0; - Dafny.ISequence _2344_op = _2343___mcc_h1179; + Dafny.ISequence _2342___mcc_h1179 = _source76.dtor_Passthrough_a0; + Dafny.ISequence _2343_op = _2342___mcc_h1179; { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(" ")), _2344_op), Dafny.Sequence.UnicodeFromString(" ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(" ")), _2343_op), Dafny.Sequence.UnicodeFromString(" ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } } } else if (_source72.is_Mod) { { - if (!(_2295_leftErased)) { - _2293_left = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2293_left), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2294_leftErased)) { + _2292_left = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2292_left), Dafny.Sequence.UnicodeFromString(")")); } - if (!(_2299_rightErased)) { - _2297_right = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2298_rightErased)) { + _2296_right = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } - DAST._IBinOp _source77 = _2292_op; + DAST._IBinOp _source77 = _2291_op; if (_source77.is_Eq) { - bool _2345___mcc_h1180 = _source77.dtor_referential; - bool _2346___mcc_h1181 = _source77.dtor_nullable; - bool _2347_nullable = _2346___mcc_h1181; - bool _2348_referential = _2345___mcc_h1180; + bool _2344___mcc_h1180 = _source77.dtor_referential; + bool _2345___mcc_h1181 = _source77.dtor_nullable; + bool _2346_nullable = _2345___mcc_h1181; + bool _2347_referential = _2344___mcc_h1180; { - if (_2348_referential) { - if (_2347_nullable) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::nullable_referential_equality("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (_2347_referential) { + if (_2346_nullable) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::nullable_referential_equality("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::ptr_eq(&("), _2293_left), Dafny.Sequence.UnicodeFromString("), &(")), _2297_right), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::ptr_eq(&("), _2292_left), Dafny.Sequence.UnicodeFromString("), &(")), _2296_right), Dafny.Sequence.UnicodeFromString("))")); } } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(" == ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(" == ")), _2296_right); } } } else if (_source77.is_Neq) { - bool _2349___mcc_h1182 = _source77.dtor_referential; - bool _2350___mcc_h1183 = _source77.dtor_nullable; - bool _2351_nullable = _2350___mcc_h1183; - bool _2352_referential = _2349___mcc_h1182; + bool _2348___mcc_h1182 = _source77.dtor_referential; + bool _2349___mcc_h1183 = _source77.dtor_nullable; + bool _2350_nullable = _2349___mcc_h1183; + bool _2351_referential = _2348___mcc_h1182; { - if (_2352_referential) { - if (_2351_nullable) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::dafny_runtime::nullable_referential_equality("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (_2351_referential) { + if (_2350_nullable) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::dafny_runtime::nullable_referential_equality("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::std::rc::Rc::ptr_eq(&("), _2293_left), Dafny.Sequence.UnicodeFromString("), &(")), _2297_right), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::std::rc::Rc::ptr_eq(&("), _2292_left), Dafny.Sequence.UnicodeFromString("), &(")), _2296_right), Dafny.Sequence.UnicodeFromString("))")); } } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(" != ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(" != ")), _2296_right); } } } else if (_source77.is_Div) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(") / (")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(") / (")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source77.is_EuclidianDiv) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_division("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_division("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source77.is_Mod) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(") % (")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(") % (")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source77.is_EuclidianMod) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_modulo("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_modulo("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else { - Dafny.ISequence _2353___mcc_h1184 = _source77.dtor_Passthrough_a0; - Dafny.ISequence _2354_op = _2353___mcc_h1184; + Dafny.ISequence _2352___mcc_h1184 = _source77.dtor_Passthrough_a0; + Dafny.ISequence _2353_op = _2352___mcc_h1184; { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(" ")), _2354_op), Dafny.Sequence.UnicodeFromString(" ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(" ")), _2353_op), Dafny.Sequence.UnicodeFromString(" ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } } } else if (_source72.is_EuclidianMod) { { - if (!(_2295_leftErased)) { - _2293_left = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2293_left), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2294_leftErased)) { + _2292_left = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2292_left), Dafny.Sequence.UnicodeFromString(")")); } - if (!(_2299_rightErased)) { - _2297_right = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2298_rightErased)) { + _2296_right = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } - DAST._IBinOp _source78 = _2292_op; + DAST._IBinOp _source78 = _2291_op; if (_source78.is_Eq) { - bool _2355___mcc_h1185 = _source78.dtor_referential; - bool _2356___mcc_h1186 = _source78.dtor_nullable; - bool _2357_nullable = _2356___mcc_h1186; - bool _2358_referential = _2355___mcc_h1185; + bool _2354___mcc_h1185 = _source78.dtor_referential; + bool _2355___mcc_h1186 = _source78.dtor_nullable; + bool _2356_nullable = _2355___mcc_h1186; + bool _2357_referential = _2354___mcc_h1185; { - if (_2358_referential) { - if (_2357_nullable) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::nullable_referential_equality("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (_2357_referential) { + if (_2356_nullable) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::nullable_referential_equality("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::ptr_eq(&("), _2293_left), Dafny.Sequence.UnicodeFromString("), &(")), _2297_right), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::ptr_eq(&("), _2292_left), Dafny.Sequence.UnicodeFromString("), &(")), _2296_right), Dafny.Sequence.UnicodeFromString("))")); } } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(" == ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(" == ")), _2296_right); } } } else if (_source78.is_Neq) { - bool _2359___mcc_h1187 = _source78.dtor_referential; - bool _2360___mcc_h1188 = _source78.dtor_nullable; - bool _2361_nullable = _2360___mcc_h1188; - bool _2362_referential = _2359___mcc_h1187; + bool _2358___mcc_h1187 = _source78.dtor_referential; + bool _2359___mcc_h1188 = _source78.dtor_nullable; + bool _2360_nullable = _2359___mcc_h1188; + bool _2361_referential = _2358___mcc_h1187; { - if (_2362_referential) { - if (_2361_nullable) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::dafny_runtime::nullable_referential_equality("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (_2361_referential) { + if (_2360_nullable) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::dafny_runtime::nullable_referential_equality("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::std::rc::Rc::ptr_eq(&("), _2293_left), Dafny.Sequence.UnicodeFromString("), &(")), _2297_right), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::std::rc::Rc::ptr_eq(&("), _2292_left), Dafny.Sequence.UnicodeFromString("), &(")), _2296_right), Dafny.Sequence.UnicodeFromString("))")); } } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(" != ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(" != ")), _2296_right); } } } else if (_source78.is_Div) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(") / (")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(") / (")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source78.is_EuclidianDiv) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_division("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_division("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source78.is_Mod) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(") % (")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(") % (")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source78.is_EuclidianMod) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_modulo("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_modulo("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else { - Dafny.ISequence _2363___mcc_h1189 = _source78.dtor_Passthrough_a0; - Dafny.ISequence _2364_op = _2363___mcc_h1189; + Dafny.ISequence _2362___mcc_h1189 = _source78.dtor_Passthrough_a0; + Dafny.ISequence _2363_op = _2362___mcc_h1189; { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(" ")), _2364_op), Dafny.Sequence.UnicodeFromString(" ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(" ")), _2363_op), Dafny.Sequence.UnicodeFromString(" ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } } } else if (_source72.is_Implies) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!("), _2293_left), Dafny.Sequence.UnicodeFromString(") || ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!("), _2292_left), Dafny.Sequence.UnicodeFromString(") || ")), _2296_right); } } else if (_source72.is_In) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2297_right, Dafny.Sequence.UnicodeFromString(".contains(&")), _2293_left), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2296_right, Dafny.Sequence.UnicodeFromString(".contains(&")), _2292_left), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source72.is_NotIn) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!("), _2297_right), Dafny.Sequence.UnicodeFromString(".contains(&")), _2293_left), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!("), _2296_right), Dafny.Sequence.UnicodeFromString(".contains(&")), _2292_left), Dafny.Sequence.UnicodeFromString("))")); } } else if (_source72.is_SetDifference) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(".difference(&")), _2297_right), Dafny.Sequence.UnicodeFromString(").cloned().collect::<::std::collections::HashSet<_>>()")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(".difference(&")), _2296_right), Dafny.Sequence.UnicodeFromString(").cloned().collect::<::std::collections::HashSet<_>>()")); } } else if (_source72.is_Concat) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("["), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString("].concat()")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("["), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString("].concat()")); } } else { - Dafny.ISequence _2365___mcc_h1158 = _source72.dtor_Passthrough_a0; + Dafny.ISequence _2364___mcc_h1158 = _source72.dtor_Passthrough_a0; { - if (!(_2295_leftErased)) { - _2293_left = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2293_left), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2294_leftErased)) { + _2292_left = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2292_left), Dafny.Sequence.UnicodeFromString(")")); } - if (!(_2299_rightErased)) { - _2297_right = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2298_rightErased)) { + _2296_right = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } - DAST._IBinOp _source79 = _2292_op; + DAST._IBinOp _source79 = _2291_op; if (_source79.is_Eq) { - bool _2366___mcc_h1190 = _source79.dtor_referential; - bool _2367___mcc_h1191 = _source79.dtor_nullable; - bool _2368_nullable = _2367___mcc_h1191; - bool _2369_referential = _2366___mcc_h1190; + bool _2365___mcc_h1190 = _source79.dtor_referential; + bool _2366___mcc_h1191 = _source79.dtor_nullable; + bool _2367_nullable = _2366___mcc_h1191; + bool _2368_referential = _2365___mcc_h1190; { - if (_2369_referential) { - if (_2368_nullable) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::nullable_referential_equality("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (_2368_referential) { + if (_2367_nullable) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::nullable_referential_equality("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::ptr_eq(&("), _2293_left), Dafny.Sequence.UnicodeFromString("), &(")), _2297_right), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::rc::Rc::ptr_eq(&("), _2292_left), Dafny.Sequence.UnicodeFromString("), &(")), _2296_right), Dafny.Sequence.UnicodeFromString("))")); } } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(" == ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(" == ")), _2296_right); } } } else if (_source79.is_Neq) { - bool _2370___mcc_h1192 = _source79.dtor_referential; - bool _2371___mcc_h1193 = _source79.dtor_nullable; - bool _2372_nullable = _2371___mcc_h1193; - bool _2373_referential = _2370___mcc_h1192; + bool _2369___mcc_h1192 = _source79.dtor_referential; + bool _2370___mcc_h1193 = _source79.dtor_nullable; + bool _2371_nullable = _2370___mcc_h1193; + bool _2372_referential = _2369___mcc_h1192; { - if (_2373_referential) { - if (_2372_nullable) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::dafny_runtime::nullable_referential_equality("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + if (_2372_referential) { + if (_2371_nullable) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::dafny_runtime::nullable_referential_equality("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::std::rc::Rc::ptr_eq(&("), _2293_left), Dafny.Sequence.UnicodeFromString("), &(")), _2297_right), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("!::std::rc::Rc::ptr_eq(&("), _2292_left), Dafny.Sequence.UnicodeFromString("), &(")), _2296_right), Dafny.Sequence.UnicodeFromString("))")); } } else { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2293_left, Dafny.Sequence.UnicodeFromString(" != ")), _2297_right); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2292_left, Dafny.Sequence.UnicodeFromString(" != ")), _2296_right); } } } else if (_source79.is_Div) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(") / (")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(") / (")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source79.is_EuclidianDiv) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_division("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_division("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source79.is_Mod) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(") % (")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(") % (")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else if (_source79.is_EuclidianMod) { { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_modulo("), _2293_left), Dafny.Sequence.UnicodeFromString(", ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::euclidian_modulo("), _2292_left), Dafny.Sequence.UnicodeFromString(", ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } else { - Dafny.ISequence _2374___mcc_h1194 = _source79.dtor_Passthrough_a0; - Dafny.ISequence _2375_op = _2374___mcc_h1194; + Dafny.ISequence _2373___mcc_h1194 = _source79.dtor_Passthrough_a0; + Dafny.ISequence _2374_op = _2373___mcc_h1194; { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2293_left), Dafny.Sequence.UnicodeFromString(" ")), _2375_op), Dafny.Sequence.UnicodeFromString(" ")), _2297_right), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2292_left), Dafny.Sequence.UnicodeFromString(" ")), _2374_op), Dafny.Sequence.UnicodeFromString(" ")), _2296_right), Dafny.Sequence.UnicodeFromString(")")); } } } } isOwned = true; - readIdents = Dafny.Set>.Union(_2296_recIdentsL, _2300_recIdentsR); + readIdents = Dafny.Set>.Union(_2295_recIdentsL, _2299_recIdentsR); isErased = true; } } else if (_source20.is_ArrayLen) { - DAST._IExpression _2376___mcc_h40 = _source20.dtor_expr; - BigInteger _2377___mcc_h41 = _source20.dtor_dim; - BigInteger _2378_dim = _2377___mcc_h41; - DAST._IExpression _2379_expr = _2376___mcc_h40; + DAST._IExpression _2375___mcc_h40 = _source20.dtor_expr; + BigInteger _2376___mcc_h41 = _source20.dtor_dim; + BigInteger _2377_dim = _2376___mcc_h41; + DAST._IExpression _2378_expr = _2375___mcc_h40; { - Dafny.ISequence _2380_recursiveGen; - bool _2381___v81; - bool _2382_recErased; - Dafny.ISet> _2383_recIdents; + Dafny.ISequence _2379_recursiveGen; + bool _2380___v81; + bool _2381_recErased; + Dafny.ISet> _2382_recIdents; Dafny.ISequence _out1477; bool _out1478; bool _out1479; Dafny.ISet> _out1480; - DCOMP.COMP.GenExpr(_2379_expr, selfIdent, @params, true, out _out1477, out _out1478, out _out1479, out _out1480); - _2380_recursiveGen = _out1477; - _2381___v81 = _out1478; - _2382_recErased = _out1479; - _2383_recIdents = _out1480; - if ((_2378_dim).Sign == 0) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigInt::from(("), _2380_recursiveGen), Dafny.Sequence.UnicodeFromString(").borrow().len())")); + DCOMP.COMP.GenExpr(_2378_expr, selfIdent, @params, true, out _out1477, out _out1478, out _out1479, out _out1480); + _2379_recursiveGen = _out1477; + _2380___v81 = _out1478; + _2381_recErased = _out1479; + _2382_recIdents = _out1480; + if ((_2377_dim).Sign == 0) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigInt::from(("), _2379_recursiveGen), Dafny.Sequence.UnicodeFromString(").borrow().len())")); } else { s = Dafny.Sequence.UnicodeFromString("::dafny_runtime::BigInt::from(m.borrow().len())"); - BigInteger _2384_i; - _2384_i = BigInteger.One; - while ((_2384_i) < (_2378_dim)) { + BigInteger _2383_i; + _2383_i = BigInteger.One; + while ((_2383_i) < (_2377_dim)) { s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("m.borrow().get(0).map(|m| "), s), Dafny.Sequence.UnicodeFromString(").unwrap_or(::dafny_runtime::BigInt::from(0))")); - _2384_i = (_2384_i) + (BigInteger.One); + _2383_i = (_2383_i) + (BigInteger.One); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2380_recursiveGen), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".borrow().get(0).map(|m| ")), s), Dafny.Sequence.UnicodeFromString(").unwrap_or(::dafny_runtime::BigInt::from(0))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2379_recursiveGen), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".borrow().get(0).map(|m| ")), s), Dafny.Sequence.UnicodeFromString(").unwrap_or(::dafny_runtime::BigInt::from(0))")); } isOwned = true; - readIdents = _2383_recIdents; + readIdents = _2382_recIdents; isErased = true; } } else if (_source20.is_Select) { - DAST._IExpression _2385___mcc_h42 = _source20.dtor_expr; - Dafny.ISequence _2386___mcc_h43 = _source20.dtor_field; - bool _2387___mcc_h44 = _source20.dtor_isConstant; - bool _2388___mcc_h45 = _source20.dtor_onDatatype; - DAST._IExpression _source80 = _2385___mcc_h42; + DAST._IExpression _2384___mcc_h42 = _source20.dtor_expr; + Dafny.ISequence _2385___mcc_h43 = _source20.dtor_field; + bool _2386___mcc_h44 = _source20.dtor_isConstant; + bool _2387___mcc_h45 = _source20.dtor_onDatatype; + DAST._IExpression _source80 = _2384___mcc_h42; if (_source80.is_Literal) { - DAST._ILiteral _2389___mcc_h46 = _source80.dtor_Literal_a0; - bool _2390_isDatatype = _2388___mcc_h45; - bool _2391_isConstant = _2387___mcc_h44; - Dafny.ISequence _2392_field = _2386___mcc_h43; - DAST._IExpression _2393_on = _2385___mcc_h42; + DAST._ILiteral _2388___mcc_h46 = _source80.dtor_Literal_a0; + bool _2389_isDatatype = _2387___mcc_h45; + bool _2390_isConstant = _2386___mcc_h44; + Dafny.ISequence _2391_field = _2385___mcc_h43; + DAST._IExpression _2392_on = _2384___mcc_h42; { - Dafny.ISequence _2394_onString; - bool _2395_onOwned; - bool _2396_onErased; - Dafny.ISet> _2397_recIdents; + Dafny.ISequence _2393_onString; + bool _2394_onOwned; + bool _2395_onErased; + Dafny.ISet> _2396_recIdents; Dafny.ISequence _out1481; bool _out1482; bool _out1483; Dafny.ISet> _out1484; - DCOMP.COMP.GenExpr(_2393_on, selfIdent, @params, false, out _out1481, out _out1482, out _out1483, out _out1484); - _2394_onString = _out1481; - _2395_onOwned = _out1482; - _2396_onErased = _out1483; - _2397_recIdents = _out1484; - if ((_2390_isDatatype) || (_2391_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2394_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2392_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2391_isConstant) { + DCOMP.COMP.GenExpr(_2392_on, selfIdent, @params, false, out _out1481, out _out1482, out _out1483, out _out1484); + _2393_onString = _out1481; + _2394_onOwned = _out1482; + _2395_onErased = _out1483; + _2396_recIdents = _out1484; + if ((_2389_isDatatype) || (_2390_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2393_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2391_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2390_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -15502,36 +15471,36 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2394_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2392_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2393_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2391_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2397_recIdents; + readIdents = _2396_recIdents; } } else if (_source80.is_Ident) { - Dafny.ISequence _2398___mcc_h48 = _source80.dtor_Ident_a0; - bool _2399_isDatatype = _2388___mcc_h45; - bool _2400_isConstant = _2387___mcc_h44; - Dafny.ISequence _2401_field = _2386___mcc_h43; - DAST._IExpression _2402_on = _2385___mcc_h42; + Dafny.ISequence _2397___mcc_h48 = _source80.dtor_Ident_a0; + bool _2398_isDatatype = _2387___mcc_h45; + bool _2399_isConstant = _2386___mcc_h44; + Dafny.ISequence _2400_field = _2385___mcc_h43; + DAST._IExpression _2401_on = _2384___mcc_h42; { - Dafny.ISequence _2403_onString; - bool _2404_onOwned; - bool _2405_onErased; - Dafny.ISet> _2406_recIdents; + Dafny.ISequence _2402_onString; + bool _2403_onOwned; + bool _2404_onErased; + Dafny.ISet> _2405_recIdents; Dafny.ISequence _out1485; bool _out1486; bool _out1487; Dafny.ISet> _out1488; - DCOMP.COMP.GenExpr(_2402_on, selfIdent, @params, false, out _out1485, out _out1486, out _out1487, out _out1488); - _2403_onString = _out1485; - _2404_onOwned = _out1486; - _2405_onErased = _out1487; - _2406_recIdents = _out1488; - if ((_2399_isDatatype) || (_2400_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2403_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2401_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2400_isConstant) { + DCOMP.COMP.GenExpr(_2401_on, selfIdent, @params, false, out _out1485, out _out1486, out _out1487, out _out1488); + _2402_onString = _out1485; + _2403_onOwned = _out1486; + _2404_onErased = _out1487; + _2405_recIdents = _out1488; + if ((_2398_isDatatype) || (_2399_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2402_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2400_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2399_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -15541,61 +15510,61 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2403_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2401_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2402_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2400_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2406_recIdents; + readIdents = _2405_recIdents; } } else if (_source80.is_Companion) { - Dafny.ISequence> _2407___mcc_h50 = _source80.dtor_Companion_a0; - bool _2408_isDatatype = _2388___mcc_h45; - bool _2409_isConstant = _2387___mcc_h44; - Dafny.ISequence _2410_field = _2386___mcc_h43; - Dafny.ISequence> _2411_c = _2407___mcc_h50; + Dafny.ISequence> _2406___mcc_h50 = _source80.dtor_Companion_a0; + bool _2407_isDatatype = _2387___mcc_h45; + bool _2408_isConstant = _2386___mcc_h44; + Dafny.ISequence _2409_field = _2385___mcc_h43; + Dafny.ISequence> _2410_c = _2406___mcc_h50; { - Dafny.ISequence _2412_onString; - bool _2413_onOwned; - bool _2414_onErased; - Dafny.ISet> _2415_recIdents; + Dafny.ISequence _2411_onString; + bool _2412_onOwned; + bool _2413_onErased; + Dafny.ISet> _2414_recIdents; Dafny.ISequence _out1489; bool _out1490; bool _out1491; Dafny.ISet> _out1492; - DCOMP.COMP.GenExpr(DAST.Expression.create_Companion(_2411_c), selfIdent, @params, false, out _out1489, out _out1490, out _out1491, out _out1492); - _2412_onString = _out1489; - _2413_onOwned = _out1490; - _2414_onErased = _out1491; - _2415_recIdents = _out1492; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2412_onString, Dafny.Sequence.UnicodeFromString("::")), DCOMP.__default.escapeIdent(_2410_field)), Dafny.Sequence.UnicodeFromString("()")); + DCOMP.COMP.GenExpr(DAST.Expression.create_Companion(_2410_c), selfIdent, @params, false, out _out1489, out _out1490, out _out1491, out _out1492); + _2411_onString = _out1489; + _2412_onOwned = _out1490; + _2413_onErased = _out1491; + _2414_recIdents = _out1492; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2411_onString, Dafny.Sequence.UnicodeFromString("::")), DCOMP.__default.escapeIdent(_2409_field)), Dafny.Sequence.UnicodeFromString("()")); isOwned = true; isErased = false; - readIdents = _2415_recIdents; + readIdents = _2414_recIdents; } } else if (_source80.is_Tuple) { - Dafny.ISequence _2416___mcc_h52 = _source80.dtor_Tuple_a0; - bool _2417_isDatatype = _2388___mcc_h45; - bool _2418_isConstant = _2387___mcc_h44; - Dafny.ISequence _2419_field = _2386___mcc_h43; - DAST._IExpression _2420_on = _2385___mcc_h42; + Dafny.ISequence _2415___mcc_h52 = _source80.dtor_Tuple_a0; + bool _2416_isDatatype = _2387___mcc_h45; + bool _2417_isConstant = _2386___mcc_h44; + Dafny.ISequence _2418_field = _2385___mcc_h43; + DAST._IExpression _2419_on = _2384___mcc_h42; { - Dafny.ISequence _2421_onString; - bool _2422_onOwned; - bool _2423_onErased; - Dafny.ISet> _2424_recIdents; + Dafny.ISequence _2420_onString; + bool _2421_onOwned; + bool _2422_onErased; + Dafny.ISet> _2423_recIdents; Dafny.ISequence _out1493; bool _out1494; bool _out1495; Dafny.ISet> _out1496; - DCOMP.COMP.GenExpr(_2420_on, selfIdent, @params, false, out _out1493, out _out1494, out _out1495, out _out1496); - _2421_onString = _out1493; - _2422_onOwned = _out1494; - _2423_onErased = _out1495; - _2424_recIdents = _out1496; - if ((_2417_isDatatype) || (_2418_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2421_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2419_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2418_isConstant) { + DCOMP.COMP.GenExpr(_2419_on, selfIdent, @params, false, out _out1493, out _out1494, out _out1495, out _out1496); + _2420_onString = _out1493; + _2421_onOwned = _out1494; + _2422_onErased = _out1495; + _2423_recIdents = _out1496; + if ((_2416_isDatatype) || (_2417_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2420_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2418_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2417_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -15605,38 +15574,38 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2421_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2419_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2420_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2418_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2424_recIdents; + readIdents = _2423_recIdents; } } else if (_source80.is_New) { - Dafny.ISequence> _2425___mcc_h54 = _source80.dtor_path; - Dafny.ISequence _2426___mcc_h55 = _source80.dtor_typeArgs; - Dafny.ISequence _2427___mcc_h56 = _source80.dtor_args; - bool _2428_isDatatype = _2388___mcc_h45; - bool _2429_isConstant = _2387___mcc_h44; - Dafny.ISequence _2430_field = _2386___mcc_h43; - DAST._IExpression _2431_on = _2385___mcc_h42; + Dafny.ISequence> _2424___mcc_h54 = _source80.dtor_path; + Dafny.ISequence _2425___mcc_h55 = _source80.dtor_typeArgs; + Dafny.ISequence _2426___mcc_h56 = _source80.dtor_args; + bool _2427_isDatatype = _2387___mcc_h45; + bool _2428_isConstant = _2386___mcc_h44; + Dafny.ISequence _2429_field = _2385___mcc_h43; + DAST._IExpression _2430_on = _2384___mcc_h42; { - Dafny.ISequence _2432_onString; - bool _2433_onOwned; - bool _2434_onErased; - Dafny.ISet> _2435_recIdents; + Dafny.ISequence _2431_onString; + bool _2432_onOwned; + bool _2433_onErased; + Dafny.ISet> _2434_recIdents; Dafny.ISequence _out1497; bool _out1498; bool _out1499; Dafny.ISet> _out1500; - DCOMP.COMP.GenExpr(_2431_on, selfIdent, @params, false, out _out1497, out _out1498, out _out1499, out _out1500); - _2432_onString = _out1497; - _2433_onOwned = _out1498; - _2434_onErased = _out1499; - _2435_recIdents = _out1500; - if ((_2428_isDatatype) || (_2429_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2432_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2430_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2429_isConstant) { + DCOMP.COMP.GenExpr(_2430_on, selfIdent, @params, false, out _out1497, out _out1498, out _out1499, out _out1500); + _2431_onString = _out1497; + _2432_onOwned = _out1498; + _2433_onErased = _out1499; + _2434_recIdents = _out1500; + if ((_2427_isDatatype) || (_2428_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2431_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2429_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2428_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -15646,37 +15615,37 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2432_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2430_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2431_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2429_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2435_recIdents; + readIdents = _2434_recIdents; } } else if (_source80.is_NewArray) { - Dafny.ISequence _2436___mcc_h60 = _source80.dtor_dims; - DAST._IType _2437___mcc_h61 = _source80.dtor_typ; - bool _2438_isDatatype = _2388___mcc_h45; - bool _2439_isConstant = _2387___mcc_h44; - Dafny.ISequence _2440_field = _2386___mcc_h43; - DAST._IExpression _2441_on = _2385___mcc_h42; + Dafny.ISequence _2435___mcc_h60 = _source80.dtor_dims; + DAST._IType _2436___mcc_h61 = _source80.dtor_typ; + bool _2437_isDatatype = _2387___mcc_h45; + bool _2438_isConstant = _2386___mcc_h44; + Dafny.ISequence _2439_field = _2385___mcc_h43; + DAST._IExpression _2440_on = _2384___mcc_h42; { - Dafny.ISequence _2442_onString; - bool _2443_onOwned; - bool _2444_onErased; - Dafny.ISet> _2445_recIdents; + Dafny.ISequence _2441_onString; + bool _2442_onOwned; + bool _2443_onErased; + Dafny.ISet> _2444_recIdents; Dafny.ISequence _out1501; bool _out1502; bool _out1503; Dafny.ISet> _out1504; - DCOMP.COMP.GenExpr(_2441_on, selfIdent, @params, false, out _out1501, out _out1502, out _out1503, out _out1504); - _2442_onString = _out1501; - _2443_onOwned = _out1502; - _2444_onErased = _out1503; - _2445_recIdents = _out1504; - if ((_2438_isDatatype) || (_2439_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2442_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2440_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2439_isConstant) { + DCOMP.COMP.GenExpr(_2440_on, selfIdent, @params, false, out _out1501, out _out1502, out _out1503, out _out1504); + _2441_onString = _out1501; + _2442_onOwned = _out1502; + _2443_onErased = _out1503; + _2444_recIdents = _out1504; + if ((_2437_isDatatype) || (_2438_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2441_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2439_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2438_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -15686,40 +15655,40 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2442_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2440_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2441_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2439_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2445_recIdents; + readIdents = _2444_recIdents; } } else if (_source80.is_DatatypeValue) { - Dafny.ISequence> _2446___mcc_h64 = _source80.dtor_path; - Dafny.ISequence _2447___mcc_h65 = _source80.dtor_typeArgs; - Dafny.ISequence _2448___mcc_h66 = _source80.dtor_variant; - bool _2449___mcc_h67 = _source80.dtor_isCo; - Dafny.ISequence<_System._ITuple2, DAST._IExpression>> _2450___mcc_h68 = _source80.dtor_contents; - bool _2451_isDatatype = _2388___mcc_h45; - bool _2452_isConstant = _2387___mcc_h44; - Dafny.ISequence _2453_field = _2386___mcc_h43; - DAST._IExpression _2454_on = _2385___mcc_h42; + Dafny.ISequence> _2445___mcc_h64 = _source80.dtor_path; + Dafny.ISequence _2446___mcc_h65 = _source80.dtor_typeArgs; + Dafny.ISequence _2447___mcc_h66 = _source80.dtor_variant; + bool _2448___mcc_h67 = _source80.dtor_isCo; + Dafny.ISequence<_System._ITuple2, DAST._IExpression>> _2449___mcc_h68 = _source80.dtor_contents; + bool _2450_isDatatype = _2387___mcc_h45; + bool _2451_isConstant = _2386___mcc_h44; + Dafny.ISequence _2452_field = _2385___mcc_h43; + DAST._IExpression _2453_on = _2384___mcc_h42; { - Dafny.ISequence _2455_onString; - bool _2456_onOwned; - bool _2457_onErased; - Dafny.ISet> _2458_recIdents; + Dafny.ISequence _2454_onString; + bool _2455_onOwned; + bool _2456_onErased; + Dafny.ISet> _2457_recIdents; Dafny.ISequence _out1505; bool _out1506; bool _out1507; Dafny.ISet> _out1508; - DCOMP.COMP.GenExpr(_2454_on, selfIdent, @params, false, out _out1505, out _out1506, out _out1507, out _out1508); - _2455_onString = _out1505; - _2456_onOwned = _out1506; - _2457_onErased = _out1507; - _2458_recIdents = _out1508; - if ((_2451_isDatatype) || (_2452_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2455_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2453_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2452_isConstant) { + DCOMP.COMP.GenExpr(_2453_on, selfIdent, @params, false, out _out1505, out _out1506, out _out1507, out _out1508); + _2454_onString = _out1505; + _2455_onOwned = _out1506; + _2456_onErased = _out1507; + _2457_recIdents = _out1508; + if ((_2450_isDatatype) || (_2451_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2454_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2452_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2451_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -15729,38 +15698,38 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2455_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2453_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2454_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2452_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2458_recIdents; + readIdents = _2457_recIdents; } } else if (_source80.is_Convert) { - DAST._IExpression _2459___mcc_h74 = _source80.dtor_value; - DAST._IType _2460___mcc_h75 = _source80.dtor_from; - DAST._IType _2461___mcc_h76 = _source80.dtor_typ; - bool _2462_isDatatype = _2388___mcc_h45; - bool _2463_isConstant = _2387___mcc_h44; - Dafny.ISequence _2464_field = _2386___mcc_h43; - DAST._IExpression _2465_on = _2385___mcc_h42; + DAST._IExpression _2458___mcc_h74 = _source80.dtor_value; + DAST._IType _2459___mcc_h75 = _source80.dtor_from; + DAST._IType _2460___mcc_h76 = _source80.dtor_typ; + bool _2461_isDatatype = _2387___mcc_h45; + bool _2462_isConstant = _2386___mcc_h44; + Dafny.ISequence _2463_field = _2385___mcc_h43; + DAST._IExpression _2464_on = _2384___mcc_h42; { - Dafny.ISequence _2466_onString; - bool _2467_onOwned; - bool _2468_onErased; - Dafny.ISet> _2469_recIdents; + Dafny.ISequence _2465_onString; + bool _2466_onOwned; + bool _2467_onErased; + Dafny.ISet> _2468_recIdents; Dafny.ISequence _out1509; bool _out1510; bool _out1511; Dafny.ISet> _out1512; - DCOMP.COMP.GenExpr(_2465_on, selfIdent, @params, false, out _out1509, out _out1510, out _out1511, out _out1512); - _2466_onString = _out1509; - _2467_onOwned = _out1510; - _2468_onErased = _out1511; - _2469_recIdents = _out1512; - if ((_2462_isDatatype) || (_2463_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2466_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2464_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2463_isConstant) { + DCOMP.COMP.GenExpr(_2464_on, selfIdent, @params, false, out _out1509, out _out1510, out _out1511, out _out1512); + _2465_onString = _out1509; + _2466_onOwned = _out1510; + _2467_onErased = _out1511; + _2468_recIdents = _out1512; + if ((_2461_isDatatype) || (_2462_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2465_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2463_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2462_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -15770,37 +15739,37 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2466_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2464_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2465_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2463_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2469_recIdents; + readIdents = _2468_recIdents; } } else if (_source80.is_SeqConstruct) { - DAST._IExpression _2470___mcc_h80 = _source80.dtor_length; - DAST._IExpression _2471___mcc_h81 = _source80.dtor_elem; - bool _2472_isDatatype = _2388___mcc_h45; - bool _2473_isConstant = _2387___mcc_h44; - Dafny.ISequence _2474_field = _2386___mcc_h43; - DAST._IExpression _2475_on = _2385___mcc_h42; + DAST._IExpression _2469___mcc_h80 = _source80.dtor_length; + DAST._IExpression _2470___mcc_h81 = _source80.dtor_elem; + bool _2471_isDatatype = _2387___mcc_h45; + bool _2472_isConstant = _2386___mcc_h44; + Dafny.ISequence _2473_field = _2385___mcc_h43; + DAST._IExpression _2474_on = _2384___mcc_h42; { - Dafny.ISequence _2476_onString; - bool _2477_onOwned; - bool _2478_onErased; - Dafny.ISet> _2479_recIdents; + Dafny.ISequence _2475_onString; + bool _2476_onOwned; + bool _2477_onErased; + Dafny.ISet> _2478_recIdents; Dafny.ISequence _out1513; bool _out1514; bool _out1515; Dafny.ISet> _out1516; - DCOMP.COMP.GenExpr(_2475_on, selfIdent, @params, false, out _out1513, out _out1514, out _out1515, out _out1516); - _2476_onString = _out1513; - _2477_onOwned = _out1514; - _2478_onErased = _out1515; - _2479_recIdents = _out1516; - if ((_2472_isDatatype) || (_2473_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2476_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2474_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2473_isConstant) { + DCOMP.COMP.GenExpr(_2474_on, selfIdent, @params, false, out _out1513, out _out1514, out _out1515, out _out1516); + _2475_onString = _out1513; + _2476_onOwned = _out1514; + _2477_onErased = _out1515; + _2478_recIdents = _out1516; + if ((_2471_isDatatype) || (_2472_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2475_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2473_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2472_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -15810,37 +15779,37 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2476_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2474_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2475_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2473_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2479_recIdents; + readIdents = _2478_recIdents; } } else if (_source80.is_SeqValue) { - Dafny.ISequence _2480___mcc_h84 = _source80.dtor_elements; - DAST._IType _2481___mcc_h85 = _source80.dtor_typ; - bool _2482_isDatatype = _2388___mcc_h45; - bool _2483_isConstant = _2387___mcc_h44; - Dafny.ISequence _2484_field = _2386___mcc_h43; - DAST._IExpression _2485_on = _2385___mcc_h42; + Dafny.ISequence _2479___mcc_h84 = _source80.dtor_elements; + DAST._IType _2480___mcc_h85 = _source80.dtor_typ; + bool _2481_isDatatype = _2387___mcc_h45; + bool _2482_isConstant = _2386___mcc_h44; + Dafny.ISequence _2483_field = _2385___mcc_h43; + DAST._IExpression _2484_on = _2384___mcc_h42; { - Dafny.ISequence _2486_onString; - bool _2487_onOwned; - bool _2488_onErased; - Dafny.ISet> _2489_recIdents; + Dafny.ISequence _2485_onString; + bool _2486_onOwned; + bool _2487_onErased; + Dafny.ISet> _2488_recIdents; Dafny.ISequence _out1517; bool _out1518; bool _out1519; Dafny.ISet> _out1520; - DCOMP.COMP.GenExpr(_2485_on, selfIdent, @params, false, out _out1517, out _out1518, out _out1519, out _out1520); - _2486_onString = _out1517; - _2487_onOwned = _out1518; - _2488_onErased = _out1519; - _2489_recIdents = _out1520; - if ((_2482_isDatatype) || (_2483_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2486_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2484_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2483_isConstant) { + DCOMP.COMP.GenExpr(_2484_on, selfIdent, @params, false, out _out1517, out _out1518, out _out1519, out _out1520); + _2485_onString = _out1517; + _2486_onOwned = _out1518; + _2487_onErased = _out1519; + _2488_recIdents = _out1520; + if ((_2481_isDatatype) || (_2482_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2485_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2483_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2482_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -15850,36 +15819,36 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2486_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2484_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2485_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2483_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2489_recIdents; + readIdents = _2488_recIdents; } } else if (_source80.is_SetValue) { - Dafny.ISequence _2490___mcc_h88 = _source80.dtor_elements; - bool _2491_isDatatype = _2388___mcc_h45; - bool _2492_isConstant = _2387___mcc_h44; - Dafny.ISequence _2493_field = _2386___mcc_h43; - DAST._IExpression _2494_on = _2385___mcc_h42; + Dafny.ISequence _2489___mcc_h88 = _source80.dtor_elements; + bool _2490_isDatatype = _2387___mcc_h45; + bool _2491_isConstant = _2386___mcc_h44; + Dafny.ISequence _2492_field = _2385___mcc_h43; + DAST._IExpression _2493_on = _2384___mcc_h42; { - Dafny.ISequence _2495_onString; - bool _2496_onOwned; - bool _2497_onErased; - Dafny.ISet> _2498_recIdents; + Dafny.ISequence _2494_onString; + bool _2495_onOwned; + bool _2496_onErased; + Dafny.ISet> _2497_recIdents; Dafny.ISequence _out1521; bool _out1522; bool _out1523; Dafny.ISet> _out1524; - DCOMP.COMP.GenExpr(_2494_on, selfIdent, @params, false, out _out1521, out _out1522, out _out1523, out _out1524); - _2495_onString = _out1521; - _2496_onOwned = _out1522; - _2497_onErased = _out1523; - _2498_recIdents = _out1524; - if ((_2491_isDatatype) || (_2492_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2495_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2493_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2492_isConstant) { + DCOMP.COMP.GenExpr(_2493_on, selfIdent, @params, false, out _out1521, out _out1522, out _out1523, out _out1524); + _2494_onString = _out1521; + _2495_onOwned = _out1522; + _2496_onErased = _out1523; + _2497_recIdents = _out1524; + if ((_2490_isDatatype) || (_2491_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2494_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2492_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2491_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -15889,36 +15858,36 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2495_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2493_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2494_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2492_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2498_recIdents; + readIdents = _2497_recIdents; } } else if (_source80.is_MapValue) { - Dafny.ISequence<_System._ITuple2> _2499___mcc_h90 = _source80.dtor_mapElems; - bool _2500_isDatatype = _2388___mcc_h45; - bool _2501_isConstant = _2387___mcc_h44; - Dafny.ISequence _2502_field = _2386___mcc_h43; - DAST._IExpression _2503_on = _2385___mcc_h42; + Dafny.ISequence<_System._ITuple2> _2498___mcc_h90 = _source80.dtor_mapElems; + bool _2499_isDatatype = _2387___mcc_h45; + bool _2500_isConstant = _2386___mcc_h44; + Dafny.ISequence _2501_field = _2385___mcc_h43; + DAST._IExpression _2502_on = _2384___mcc_h42; { - Dafny.ISequence _2504_onString; - bool _2505_onOwned; - bool _2506_onErased; - Dafny.ISet> _2507_recIdents; + Dafny.ISequence _2503_onString; + bool _2504_onOwned; + bool _2505_onErased; + Dafny.ISet> _2506_recIdents; Dafny.ISequence _out1525; bool _out1526; bool _out1527; Dafny.ISet> _out1528; - DCOMP.COMP.GenExpr(_2503_on, selfIdent, @params, false, out _out1525, out _out1526, out _out1527, out _out1528); - _2504_onString = _out1525; - _2505_onOwned = _out1526; - _2506_onErased = _out1527; - _2507_recIdents = _out1528; - if ((_2500_isDatatype) || (_2501_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2504_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2502_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2501_isConstant) { + DCOMP.COMP.GenExpr(_2502_on, selfIdent, @params, false, out _out1525, out _out1526, out _out1527, out _out1528); + _2503_onString = _out1525; + _2504_onOwned = _out1526; + _2505_onErased = _out1527; + _2506_recIdents = _out1528; + if ((_2499_isDatatype) || (_2500_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2503_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2501_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2500_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -15928,35 +15897,35 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2504_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2502_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2503_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2501_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2507_recIdents; + readIdents = _2506_recIdents; } } else if (_source80.is_This) { - bool _2508_isDatatype = _2388___mcc_h45; - bool _2509_isConstant = _2387___mcc_h44; - Dafny.ISequence _2510_field = _2386___mcc_h43; - DAST._IExpression _2511_on = _2385___mcc_h42; + bool _2507_isDatatype = _2387___mcc_h45; + bool _2508_isConstant = _2386___mcc_h44; + Dafny.ISequence _2509_field = _2385___mcc_h43; + DAST._IExpression _2510_on = _2384___mcc_h42; { - Dafny.ISequence _2512_onString; - bool _2513_onOwned; - bool _2514_onErased; - Dafny.ISet> _2515_recIdents; + Dafny.ISequence _2511_onString; + bool _2512_onOwned; + bool _2513_onErased; + Dafny.ISet> _2514_recIdents; Dafny.ISequence _out1529; bool _out1530; bool _out1531; Dafny.ISet> _out1532; - DCOMP.COMP.GenExpr(_2511_on, selfIdent, @params, false, out _out1529, out _out1530, out _out1531, out _out1532); - _2512_onString = _out1529; - _2513_onOwned = _out1530; - _2514_onErased = _out1531; - _2515_recIdents = _out1532; - if ((_2508_isDatatype) || (_2509_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2512_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2510_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2509_isConstant) { + DCOMP.COMP.GenExpr(_2510_on, selfIdent, @params, false, out _out1529, out _out1530, out _out1531, out _out1532); + _2511_onString = _out1529; + _2512_onOwned = _out1530; + _2513_onErased = _out1531; + _2514_recIdents = _out1532; + if ((_2507_isDatatype) || (_2508_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2511_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2509_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2508_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -15966,38 +15935,38 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2512_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2510_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2511_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2509_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2515_recIdents; + readIdents = _2514_recIdents; } } else if (_source80.is_Ite) { - DAST._IExpression _2516___mcc_h92 = _source80.dtor_cond; - DAST._IExpression _2517___mcc_h93 = _source80.dtor_thn; - DAST._IExpression _2518___mcc_h94 = _source80.dtor_els; - bool _2519_isDatatype = _2388___mcc_h45; - bool _2520_isConstant = _2387___mcc_h44; - Dafny.ISequence _2521_field = _2386___mcc_h43; - DAST._IExpression _2522_on = _2385___mcc_h42; + DAST._IExpression _2515___mcc_h92 = _source80.dtor_cond; + DAST._IExpression _2516___mcc_h93 = _source80.dtor_thn; + DAST._IExpression _2517___mcc_h94 = _source80.dtor_els; + bool _2518_isDatatype = _2387___mcc_h45; + bool _2519_isConstant = _2386___mcc_h44; + Dafny.ISequence _2520_field = _2385___mcc_h43; + DAST._IExpression _2521_on = _2384___mcc_h42; { - Dafny.ISequence _2523_onString; - bool _2524_onOwned; - bool _2525_onErased; - Dafny.ISet> _2526_recIdents; + Dafny.ISequence _2522_onString; + bool _2523_onOwned; + bool _2524_onErased; + Dafny.ISet> _2525_recIdents; Dafny.ISequence _out1533; bool _out1534; bool _out1535; Dafny.ISet> _out1536; - DCOMP.COMP.GenExpr(_2522_on, selfIdent, @params, false, out _out1533, out _out1534, out _out1535, out _out1536); - _2523_onString = _out1533; - _2524_onOwned = _out1534; - _2525_onErased = _out1535; - _2526_recIdents = _out1536; - if ((_2519_isDatatype) || (_2520_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2523_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2521_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2520_isConstant) { + DCOMP.COMP.GenExpr(_2521_on, selfIdent, @params, false, out _out1533, out _out1534, out _out1535, out _out1536); + _2522_onString = _out1533; + _2523_onOwned = _out1534; + _2524_onErased = _out1535; + _2525_recIdents = _out1536; + if ((_2518_isDatatype) || (_2519_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2522_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2520_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2519_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16007,37 +15976,37 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2523_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2521_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2522_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2520_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2526_recIdents; + readIdents = _2525_recIdents; } } else if (_source80.is_UnOp) { - DAST._IUnaryOp _2527___mcc_h98 = _source80.dtor_unOp; - DAST._IExpression _2528___mcc_h99 = _source80.dtor_expr; - bool _2529_isDatatype = _2388___mcc_h45; - bool _2530_isConstant = _2387___mcc_h44; - Dafny.ISequence _2531_field = _2386___mcc_h43; - DAST._IExpression _2532_on = _2385___mcc_h42; + DAST._IUnaryOp _2526___mcc_h98 = _source80.dtor_unOp; + DAST._IExpression _2527___mcc_h99 = _source80.dtor_expr; + bool _2528_isDatatype = _2387___mcc_h45; + bool _2529_isConstant = _2386___mcc_h44; + Dafny.ISequence _2530_field = _2385___mcc_h43; + DAST._IExpression _2531_on = _2384___mcc_h42; { - Dafny.ISequence _2533_onString; - bool _2534_onOwned; - bool _2535_onErased; - Dafny.ISet> _2536_recIdents; + Dafny.ISequence _2532_onString; + bool _2533_onOwned; + bool _2534_onErased; + Dafny.ISet> _2535_recIdents; Dafny.ISequence _out1537; bool _out1538; bool _out1539; Dafny.ISet> _out1540; - DCOMP.COMP.GenExpr(_2532_on, selfIdent, @params, false, out _out1537, out _out1538, out _out1539, out _out1540); - _2533_onString = _out1537; - _2534_onOwned = _out1538; - _2535_onErased = _out1539; - _2536_recIdents = _out1540; - if ((_2529_isDatatype) || (_2530_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2533_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2531_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2530_isConstant) { + DCOMP.COMP.GenExpr(_2531_on, selfIdent, @params, false, out _out1537, out _out1538, out _out1539, out _out1540); + _2532_onString = _out1537; + _2533_onOwned = _out1538; + _2534_onErased = _out1539; + _2535_recIdents = _out1540; + if ((_2528_isDatatype) || (_2529_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2532_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2530_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2529_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16047,38 +16016,38 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2533_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2531_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2532_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2530_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2536_recIdents; + readIdents = _2535_recIdents; } } else if (_source80.is_BinOp) { - DAST._IBinOp _2537___mcc_h102 = _source80.dtor_op; - DAST._IExpression _2538___mcc_h103 = _source80.dtor_left; - DAST._IExpression _2539___mcc_h104 = _source80.dtor_right; - bool _2540_isDatatype = _2388___mcc_h45; - bool _2541_isConstant = _2387___mcc_h44; - Dafny.ISequence _2542_field = _2386___mcc_h43; - DAST._IExpression _2543_on = _2385___mcc_h42; + DAST._IBinOp _2536___mcc_h102 = _source80.dtor_op; + DAST._IExpression _2537___mcc_h103 = _source80.dtor_left; + DAST._IExpression _2538___mcc_h104 = _source80.dtor_right; + bool _2539_isDatatype = _2387___mcc_h45; + bool _2540_isConstant = _2386___mcc_h44; + Dafny.ISequence _2541_field = _2385___mcc_h43; + DAST._IExpression _2542_on = _2384___mcc_h42; { - Dafny.ISequence _2544_onString; - bool _2545_onOwned; - bool _2546_onErased; - Dafny.ISet> _2547_recIdents; + Dafny.ISequence _2543_onString; + bool _2544_onOwned; + bool _2545_onErased; + Dafny.ISet> _2546_recIdents; Dafny.ISequence _out1541; bool _out1542; bool _out1543; Dafny.ISet> _out1544; - DCOMP.COMP.GenExpr(_2543_on, selfIdent, @params, false, out _out1541, out _out1542, out _out1543, out _out1544); - _2544_onString = _out1541; - _2545_onOwned = _out1542; - _2546_onErased = _out1543; - _2547_recIdents = _out1544; - if ((_2540_isDatatype) || (_2541_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2544_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2542_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2541_isConstant) { + DCOMP.COMP.GenExpr(_2542_on, selfIdent, @params, false, out _out1541, out _out1542, out _out1543, out _out1544); + _2543_onString = _out1541; + _2544_onOwned = _out1542; + _2545_onErased = _out1543; + _2546_recIdents = _out1544; + if ((_2539_isDatatype) || (_2540_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2543_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2541_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2540_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16088,37 +16057,37 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2544_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2542_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2543_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2541_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2547_recIdents; + readIdents = _2546_recIdents; } } else if (_source80.is_ArrayLen) { - DAST._IExpression _2548___mcc_h108 = _source80.dtor_expr; - BigInteger _2549___mcc_h109 = _source80.dtor_dim; - bool _2550_isDatatype = _2388___mcc_h45; - bool _2551_isConstant = _2387___mcc_h44; - Dafny.ISequence _2552_field = _2386___mcc_h43; - DAST._IExpression _2553_on = _2385___mcc_h42; + DAST._IExpression _2547___mcc_h108 = _source80.dtor_expr; + BigInteger _2548___mcc_h109 = _source80.dtor_dim; + bool _2549_isDatatype = _2387___mcc_h45; + bool _2550_isConstant = _2386___mcc_h44; + Dafny.ISequence _2551_field = _2385___mcc_h43; + DAST._IExpression _2552_on = _2384___mcc_h42; { - Dafny.ISequence _2554_onString; - bool _2555_onOwned; - bool _2556_onErased; - Dafny.ISet> _2557_recIdents; + Dafny.ISequence _2553_onString; + bool _2554_onOwned; + bool _2555_onErased; + Dafny.ISet> _2556_recIdents; Dafny.ISequence _out1545; bool _out1546; bool _out1547; Dafny.ISet> _out1548; - DCOMP.COMP.GenExpr(_2553_on, selfIdent, @params, false, out _out1545, out _out1546, out _out1547, out _out1548); - _2554_onString = _out1545; - _2555_onOwned = _out1546; - _2556_onErased = _out1547; - _2557_recIdents = _out1548; - if ((_2550_isDatatype) || (_2551_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2554_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2552_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2551_isConstant) { + DCOMP.COMP.GenExpr(_2552_on, selfIdent, @params, false, out _out1545, out _out1546, out _out1547, out _out1548); + _2553_onString = _out1545; + _2554_onOwned = _out1546; + _2555_onErased = _out1547; + _2556_recIdents = _out1548; + if ((_2549_isDatatype) || (_2550_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2553_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2551_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2550_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16128,39 +16097,39 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2554_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2552_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2553_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2551_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2557_recIdents; + readIdents = _2556_recIdents; } } else if (_source80.is_Select) { - DAST._IExpression _2558___mcc_h112 = _source80.dtor_expr; - Dafny.ISequence _2559___mcc_h113 = _source80.dtor_field; - bool _2560___mcc_h114 = _source80.dtor_isConstant; - bool _2561___mcc_h115 = _source80.dtor_onDatatype; - bool _2562_isDatatype = _2388___mcc_h45; - bool _2563_isConstant = _2387___mcc_h44; - Dafny.ISequence _2564_field = _2386___mcc_h43; - DAST._IExpression _2565_on = _2385___mcc_h42; + DAST._IExpression _2557___mcc_h112 = _source80.dtor_expr; + Dafny.ISequence _2558___mcc_h113 = _source80.dtor_field; + bool _2559___mcc_h114 = _source80.dtor_isConstant; + bool _2560___mcc_h115 = _source80.dtor_onDatatype; + bool _2561_isDatatype = _2387___mcc_h45; + bool _2562_isConstant = _2386___mcc_h44; + Dafny.ISequence _2563_field = _2385___mcc_h43; + DAST._IExpression _2564_on = _2384___mcc_h42; { - Dafny.ISequence _2566_onString; - bool _2567_onOwned; - bool _2568_onErased; - Dafny.ISet> _2569_recIdents; + Dafny.ISequence _2565_onString; + bool _2566_onOwned; + bool _2567_onErased; + Dafny.ISet> _2568_recIdents; Dafny.ISequence _out1549; bool _out1550; bool _out1551; Dafny.ISet> _out1552; - DCOMP.COMP.GenExpr(_2565_on, selfIdent, @params, false, out _out1549, out _out1550, out _out1551, out _out1552); - _2566_onString = _out1549; - _2567_onOwned = _out1550; - _2568_onErased = _out1551; - _2569_recIdents = _out1552; - if ((_2562_isDatatype) || (_2563_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2566_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2564_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2563_isConstant) { + DCOMP.COMP.GenExpr(_2564_on, selfIdent, @params, false, out _out1549, out _out1550, out _out1551, out _out1552); + _2565_onString = _out1549; + _2566_onOwned = _out1550; + _2567_onErased = _out1551; + _2568_recIdents = _out1552; + if ((_2561_isDatatype) || (_2562_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2565_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2563_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2562_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16170,40 +16139,40 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2566_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2564_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2565_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2563_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2569_recIdents; + readIdents = _2568_recIdents; } } else if (_source80.is_SelectFn) { - DAST._IExpression _2570___mcc_h120 = _source80.dtor_expr; - Dafny.ISequence _2571___mcc_h121 = _source80.dtor_field; - bool _2572___mcc_h122 = _source80.dtor_onDatatype; - bool _2573___mcc_h123 = _source80.dtor_isStatic; - BigInteger _2574___mcc_h124 = _source80.dtor_arity; - bool _2575_isDatatype = _2388___mcc_h45; - bool _2576_isConstant = _2387___mcc_h44; - Dafny.ISequence _2577_field = _2386___mcc_h43; - DAST._IExpression _2578_on = _2385___mcc_h42; + DAST._IExpression _2569___mcc_h120 = _source80.dtor_expr; + Dafny.ISequence _2570___mcc_h121 = _source80.dtor_field; + bool _2571___mcc_h122 = _source80.dtor_onDatatype; + bool _2572___mcc_h123 = _source80.dtor_isStatic; + BigInteger _2573___mcc_h124 = _source80.dtor_arity; + bool _2574_isDatatype = _2387___mcc_h45; + bool _2575_isConstant = _2386___mcc_h44; + Dafny.ISequence _2576_field = _2385___mcc_h43; + DAST._IExpression _2577_on = _2384___mcc_h42; { - Dafny.ISequence _2579_onString; - bool _2580_onOwned; - bool _2581_onErased; - Dafny.ISet> _2582_recIdents; + Dafny.ISequence _2578_onString; + bool _2579_onOwned; + bool _2580_onErased; + Dafny.ISet> _2581_recIdents; Dafny.ISequence _out1553; bool _out1554; bool _out1555; Dafny.ISet> _out1556; - DCOMP.COMP.GenExpr(_2578_on, selfIdent, @params, false, out _out1553, out _out1554, out _out1555, out _out1556); - _2579_onString = _out1553; - _2580_onOwned = _out1554; - _2581_onErased = _out1555; - _2582_recIdents = _out1556; - if ((_2575_isDatatype) || (_2576_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2579_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2577_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2576_isConstant) { + DCOMP.COMP.GenExpr(_2577_on, selfIdent, @params, false, out _out1553, out _out1554, out _out1555, out _out1556); + _2578_onString = _out1553; + _2579_onOwned = _out1554; + _2580_onErased = _out1555; + _2581_recIdents = _out1556; + if ((_2574_isDatatype) || (_2575_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2578_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2576_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2575_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16213,38 +16182,38 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2579_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2577_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2578_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2576_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2582_recIdents; + readIdents = _2581_recIdents; } } else if (_source80.is_Index) { - DAST._IExpression _2583___mcc_h130 = _source80.dtor_expr; - DAST._ICollKind _2584___mcc_h131 = _source80.dtor_collKind; - Dafny.ISequence _2585___mcc_h132 = _source80.dtor_indices; - bool _2586_isDatatype = _2388___mcc_h45; - bool _2587_isConstant = _2387___mcc_h44; - Dafny.ISequence _2588_field = _2386___mcc_h43; - DAST._IExpression _2589_on = _2385___mcc_h42; + DAST._IExpression _2582___mcc_h130 = _source80.dtor_expr; + DAST._ICollKind _2583___mcc_h131 = _source80.dtor_collKind; + Dafny.ISequence _2584___mcc_h132 = _source80.dtor_indices; + bool _2585_isDatatype = _2387___mcc_h45; + bool _2586_isConstant = _2386___mcc_h44; + Dafny.ISequence _2587_field = _2385___mcc_h43; + DAST._IExpression _2588_on = _2384___mcc_h42; { - Dafny.ISequence _2590_onString; - bool _2591_onOwned; - bool _2592_onErased; - Dafny.ISet> _2593_recIdents; + Dafny.ISequence _2589_onString; + bool _2590_onOwned; + bool _2591_onErased; + Dafny.ISet> _2592_recIdents; Dafny.ISequence _out1557; bool _out1558; bool _out1559; Dafny.ISet> _out1560; - DCOMP.COMP.GenExpr(_2589_on, selfIdent, @params, false, out _out1557, out _out1558, out _out1559, out _out1560); - _2590_onString = _out1557; - _2591_onOwned = _out1558; - _2592_onErased = _out1559; - _2593_recIdents = _out1560; - if ((_2586_isDatatype) || (_2587_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2590_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2588_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2587_isConstant) { + DCOMP.COMP.GenExpr(_2588_on, selfIdent, @params, false, out _out1557, out _out1558, out _out1559, out _out1560); + _2589_onString = _out1557; + _2590_onOwned = _out1558; + _2591_onErased = _out1559; + _2592_recIdents = _out1560; + if ((_2585_isDatatype) || (_2586_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2589_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2587_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2586_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16254,39 +16223,39 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2590_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2588_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2589_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2587_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2593_recIdents; + readIdents = _2592_recIdents; } } else if (_source80.is_IndexRange) { - DAST._IExpression _2594___mcc_h136 = _source80.dtor_expr; - bool _2595___mcc_h137 = _source80.dtor_isArray; - DAST._IOptional _2596___mcc_h138 = _source80.dtor_low; - DAST._IOptional _2597___mcc_h139 = _source80.dtor_high; - bool _2598_isDatatype = _2388___mcc_h45; - bool _2599_isConstant = _2387___mcc_h44; - Dafny.ISequence _2600_field = _2386___mcc_h43; - DAST._IExpression _2601_on = _2385___mcc_h42; + DAST._IExpression _2593___mcc_h136 = _source80.dtor_expr; + bool _2594___mcc_h137 = _source80.dtor_isArray; + DAST._IOptional _2595___mcc_h138 = _source80.dtor_low; + DAST._IOptional _2596___mcc_h139 = _source80.dtor_high; + bool _2597_isDatatype = _2387___mcc_h45; + bool _2598_isConstant = _2386___mcc_h44; + Dafny.ISequence _2599_field = _2385___mcc_h43; + DAST._IExpression _2600_on = _2384___mcc_h42; { - Dafny.ISequence _2602_onString; - bool _2603_onOwned; - bool _2604_onErased; - Dafny.ISet> _2605_recIdents; + Dafny.ISequence _2601_onString; + bool _2602_onOwned; + bool _2603_onErased; + Dafny.ISet> _2604_recIdents; Dafny.ISequence _out1561; bool _out1562; bool _out1563; Dafny.ISet> _out1564; - DCOMP.COMP.GenExpr(_2601_on, selfIdent, @params, false, out _out1561, out _out1562, out _out1563, out _out1564); - _2602_onString = _out1561; - _2603_onOwned = _out1562; - _2604_onErased = _out1563; - _2605_recIdents = _out1564; - if ((_2598_isDatatype) || (_2599_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2602_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2600_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2599_isConstant) { + DCOMP.COMP.GenExpr(_2600_on, selfIdent, @params, false, out _out1561, out _out1562, out _out1563, out _out1564); + _2601_onString = _out1561; + _2602_onOwned = _out1562; + _2603_onErased = _out1563; + _2604_recIdents = _out1564; + if ((_2597_isDatatype) || (_2598_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2601_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2599_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2598_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16296,37 +16265,37 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2602_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2600_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2601_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2599_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2605_recIdents; + readIdents = _2604_recIdents; } } else if (_source80.is_TupleSelect) { - DAST._IExpression _2606___mcc_h144 = _source80.dtor_expr; - BigInteger _2607___mcc_h145 = _source80.dtor_index; - bool _2608_isDatatype = _2388___mcc_h45; - bool _2609_isConstant = _2387___mcc_h44; - Dafny.ISequence _2610_field = _2386___mcc_h43; - DAST._IExpression _2611_on = _2385___mcc_h42; + DAST._IExpression _2605___mcc_h144 = _source80.dtor_expr; + BigInteger _2606___mcc_h145 = _source80.dtor_index; + bool _2607_isDatatype = _2387___mcc_h45; + bool _2608_isConstant = _2386___mcc_h44; + Dafny.ISequence _2609_field = _2385___mcc_h43; + DAST._IExpression _2610_on = _2384___mcc_h42; { - Dafny.ISequence _2612_onString; - bool _2613_onOwned; - bool _2614_onErased; - Dafny.ISet> _2615_recIdents; + Dafny.ISequence _2611_onString; + bool _2612_onOwned; + bool _2613_onErased; + Dafny.ISet> _2614_recIdents; Dafny.ISequence _out1565; bool _out1566; bool _out1567; Dafny.ISet> _out1568; - DCOMP.COMP.GenExpr(_2611_on, selfIdent, @params, false, out _out1565, out _out1566, out _out1567, out _out1568); - _2612_onString = _out1565; - _2613_onOwned = _out1566; - _2614_onErased = _out1567; - _2615_recIdents = _out1568; - if ((_2608_isDatatype) || (_2609_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2612_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2610_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2609_isConstant) { + DCOMP.COMP.GenExpr(_2610_on, selfIdent, @params, false, out _out1565, out _out1566, out _out1567, out _out1568); + _2611_onString = _out1565; + _2612_onOwned = _out1566; + _2613_onErased = _out1567; + _2614_recIdents = _out1568; + if ((_2607_isDatatype) || (_2608_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2611_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2609_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2608_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16336,39 +16305,39 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2612_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2610_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2611_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2609_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2615_recIdents; + readIdents = _2614_recIdents; } } else if (_source80.is_Call) { - DAST._IExpression _2616___mcc_h148 = _source80.dtor_on; - Dafny.ISequence _2617___mcc_h149 = _source80.dtor_name; - Dafny.ISequence _2618___mcc_h150 = _source80.dtor_typeArgs; - Dafny.ISequence _2619___mcc_h151 = _source80.dtor_args; - bool _2620_isDatatype = _2388___mcc_h45; - bool _2621_isConstant = _2387___mcc_h44; - Dafny.ISequence _2622_field = _2386___mcc_h43; - DAST._IExpression _2623_on = _2385___mcc_h42; + DAST._IExpression _2615___mcc_h148 = _source80.dtor_on; + Dafny.ISequence _2616___mcc_h149 = _source80.dtor_name; + Dafny.ISequence _2617___mcc_h150 = _source80.dtor_typeArgs; + Dafny.ISequence _2618___mcc_h151 = _source80.dtor_args; + bool _2619_isDatatype = _2387___mcc_h45; + bool _2620_isConstant = _2386___mcc_h44; + Dafny.ISequence _2621_field = _2385___mcc_h43; + DAST._IExpression _2622_on = _2384___mcc_h42; { - Dafny.ISequence _2624_onString; - bool _2625_onOwned; - bool _2626_onErased; - Dafny.ISet> _2627_recIdents; + Dafny.ISequence _2623_onString; + bool _2624_onOwned; + bool _2625_onErased; + Dafny.ISet> _2626_recIdents; Dafny.ISequence _out1569; bool _out1570; bool _out1571; Dafny.ISet> _out1572; - DCOMP.COMP.GenExpr(_2623_on, selfIdent, @params, false, out _out1569, out _out1570, out _out1571, out _out1572); - _2624_onString = _out1569; - _2625_onOwned = _out1570; - _2626_onErased = _out1571; - _2627_recIdents = _out1572; - if ((_2620_isDatatype) || (_2621_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2624_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2622_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2621_isConstant) { + DCOMP.COMP.GenExpr(_2622_on, selfIdent, @params, false, out _out1569, out _out1570, out _out1571, out _out1572); + _2623_onString = _out1569; + _2624_onOwned = _out1570; + _2625_onErased = _out1571; + _2626_recIdents = _out1572; + if ((_2619_isDatatype) || (_2620_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2623_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2621_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2620_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16378,38 +16347,38 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2624_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2622_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2623_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2621_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2627_recIdents; + readIdents = _2626_recIdents; } } else if (_source80.is_Lambda) { - Dafny.ISequence _2628___mcc_h156 = _source80.dtor_params; - DAST._IType _2629___mcc_h157 = _source80.dtor_retType; - Dafny.ISequence _2630___mcc_h158 = _source80.dtor_body; - bool _2631_isDatatype = _2388___mcc_h45; - bool _2632_isConstant = _2387___mcc_h44; - Dafny.ISequence _2633_field = _2386___mcc_h43; - DAST._IExpression _2634_on = _2385___mcc_h42; + Dafny.ISequence _2627___mcc_h156 = _source80.dtor_params; + DAST._IType _2628___mcc_h157 = _source80.dtor_retType; + Dafny.ISequence _2629___mcc_h158 = _source80.dtor_body; + bool _2630_isDatatype = _2387___mcc_h45; + bool _2631_isConstant = _2386___mcc_h44; + Dafny.ISequence _2632_field = _2385___mcc_h43; + DAST._IExpression _2633_on = _2384___mcc_h42; { - Dafny.ISequence _2635_onString; - bool _2636_onOwned; - bool _2637_onErased; - Dafny.ISet> _2638_recIdents; + Dafny.ISequence _2634_onString; + bool _2635_onOwned; + bool _2636_onErased; + Dafny.ISet> _2637_recIdents; Dafny.ISequence _out1573; bool _out1574; bool _out1575; Dafny.ISet> _out1576; - DCOMP.COMP.GenExpr(_2634_on, selfIdent, @params, false, out _out1573, out _out1574, out _out1575, out _out1576); - _2635_onString = _out1573; - _2636_onOwned = _out1574; - _2637_onErased = _out1575; - _2638_recIdents = _out1576; - if ((_2631_isDatatype) || (_2632_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2635_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2633_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2632_isConstant) { + DCOMP.COMP.GenExpr(_2633_on, selfIdent, @params, false, out _out1573, out _out1574, out _out1575, out _out1576); + _2634_onString = _out1573; + _2635_onOwned = _out1574; + _2636_onErased = _out1575; + _2637_recIdents = _out1576; + if ((_2630_isDatatype) || (_2631_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2634_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2632_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2631_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16419,38 +16388,38 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2635_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2633_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2634_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2632_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2638_recIdents; + readIdents = _2637_recIdents; } } else if (_source80.is_BetaRedex) { - Dafny.ISequence<_System._ITuple2> _2639___mcc_h162 = _source80.dtor_values; - DAST._IType _2640___mcc_h163 = _source80.dtor_retType; - DAST._IExpression _2641___mcc_h164 = _source80.dtor_expr; - bool _2642_isDatatype = _2388___mcc_h45; - bool _2643_isConstant = _2387___mcc_h44; - Dafny.ISequence _2644_field = _2386___mcc_h43; - DAST._IExpression _2645_on = _2385___mcc_h42; + Dafny.ISequence<_System._ITuple2> _2638___mcc_h162 = _source80.dtor_values; + DAST._IType _2639___mcc_h163 = _source80.dtor_retType; + DAST._IExpression _2640___mcc_h164 = _source80.dtor_expr; + bool _2641_isDatatype = _2387___mcc_h45; + bool _2642_isConstant = _2386___mcc_h44; + Dafny.ISequence _2643_field = _2385___mcc_h43; + DAST._IExpression _2644_on = _2384___mcc_h42; { - Dafny.ISequence _2646_onString; - bool _2647_onOwned; - bool _2648_onErased; - Dafny.ISet> _2649_recIdents; + Dafny.ISequence _2645_onString; + bool _2646_onOwned; + bool _2647_onErased; + Dafny.ISet> _2648_recIdents; Dafny.ISequence _out1577; bool _out1578; bool _out1579; Dafny.ISet> _out1580; - DCOMP.COMP.GenExpr(_2645_on, selfIdent, @params, false, out _out1577, out _out1578, out _out1579, out _out1580); - _2646_onString = _out1577; - _2647_onOwned = _out1578; - _2648_onErased = _out1579; - _2649_recIdents = _out1580; - if ((_2642_isDatatype) || (_2643_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2646_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2644_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2643_isConstant) { + DCOMP.COMP.GenExpr(_2644_on, selfIdent, @params, false, out _out1577, out _out1578, out _out1579, out _out1580); + _2645_onString = _out1577; + _2646_onOwned = _out1578; + _2647_onErased = _out1579; + _2648_recIdents = _out1580; + if ((_2641_isDatatype) || (_2642_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2645_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2643_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2642_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16460,39 +16429,39 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2646_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2644_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2645_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2643_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2649_recIdents; + readIdents = _2648_recIdents; } } else if (_source80.is_IIFE) { - Dafny.ISequence _2650___mcc_h168 = _source80.dtor_name; - DAST._IType _2651___mcc_h169 = _source80.dtor_typ; - DAST._IExpression _2652___mcc_h170 = _source80.dtor_value; - DAST._IExpression _2653___mcc_h171 = _source80.dtor_iifeBody; - bool _2654_isDatatype = _2388___mcc_h45; - bool _2655_isConstant = _2387___mcc_h44; - Dafny.ISequence _2656_field = _2386___mcc_h43; - DAST._IExpression _2657_on = _2385___mcc_h42; + Dafny.ISequence _2649___mcc_h168 = _source80.dtor_name; + DAST._IType _2650___mcc_h169 = _source80.dtor_typ; + DAST._IExpression _2651___mcc_h170 = _source80.dtor_value; + DAST._IExpression _2652___mcc_h171 = _source80.dtor_iifeBody; + bool _2653_isDatatype = _2387___mcc_h45; + bool _2654_isConstant = _2386___mcc_h44; + Dafny.ISequence _2655_field = _2385___mcc_h43; + DAST._IExpression _2656_on = _2384___mcc_h42; { - Dafny.ISequence _2658_onString; - bool _2659_onOwned; - bool _2660_onErased; - Dafny.ISet> _2661_recIdents; + Dafny.ISequence _2657_onString; + bool _2658_onOwned; + bool _2659_onErased; + Dafny.ISet> _2660_recIdents; Dafny.ISequence _out1581; bool _out1582; bool _out1583; Dafny.ISet> _out1584; - DCOMP.COMP.GenExpr(_2657_on, selfIdent, @params, false, out _out1581, out _out1582, out _out1583, out _out1584); - _2658_onString = _out1581; - _2659_onOwned = _out1582; - _2660_onErased = _out1583; - _2661_recIdents = _out1584; - if ((_2654_isDatatype) || (_2655_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2658_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2656_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2655_isConstant) { + DCOMP.COMP.GenExpr(_2656_on, selfIdent, @params, false, out _out1581, out _out1582, out _out1583, out _out1584); + _2657_onString = _out1581; + _2658_onOwned = _out1582; + _2659_onErased = _out1583; + _2660_recIdents = _out1584; + if ((_2653_isDatatype) || (_2654_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2657_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2655_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2654_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16502,37 +16471,37 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2658_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2656_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2657_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2655_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2661_recIdents; + readIdents = _2660_recIdents; } } else if (_source80.is_Apply) { - DAST._IExpression _2662___mcc_h176 = _source80.dtor_expr; - Dafny.ISequence _2663___mcc_h177 = _source80.dtor_args; - bool _2664_isDatatype = _2388___mcc_h45; - bool _2665_isConstant = _2387___mcc_h44; - Dafny.ISequence _2666_field = _2386___mcc_h43; - DAST._IExpression _2667_on = _2385___mcc_h42; + DAST._IExpression _2661___mcc_h176 = _source80.dtor_expr; + Dafny.ISequence _2662___mcc_h177 = _source80.dtor_args; + bool _2663_isDatatype = _2387___mcc_h45; + bool _2664_isConstant = _2386___mcc_h44; + Dafny.ISequence _2665_field = _2385___mcc_h43; + DAST._IExpression _2666_on = _2384___mcc_h42; { - Dafny.ISequence _2668_onString; - bool _2669_onOwned; - bool _2670_onErased; - Dafny.ISet> _2671_recIdents; + Dafny.ISequence _2667_onString; + bool _2668_onOwned; + bool _2669_onErased; + Dafny.ISet> _2670_recIdents; Dafny.ISequence _out1585; bool _out1586; bool _out1587; Dafny.ISet> _out1588; - DCOMP.COMP.GenExpr(_2667_on, selfIdent, @params, false, out _out1585, out _out1586, out _out1587, out _out1588); - _2668_onString = _out1585; - _2669_onOwned = _out1586; - _2670_onErased = _out1587; - _2671_recIdents = _out1588; - if ((_2664_isDatatype) || (_2665_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2668_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2666_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2665_isConstant) { + DCOMP.COMP.GenExpr(_2666_on, selfIdent, @params, false, out _out1585, out _out1586, out _out1587, out _out1588); + _2667_onString = _out1585; + _2668_onOwned = _out1586; + _2669_onErased = _out1587; + _2670_recIdents = _out1588; + if ((_2663_isDatatype) || (_2664_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2667_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2665_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2664_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16542,38 +16511,38 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2668_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2666_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2667_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2665_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2671_recIdents; + readIdents = _2670_recIdents; } } else if (_source80.is_TypeTest) { - DAST._IExpression _2672___mcc_h180 = _source80.dtor_on; - Dafny.ISequence> _2673___mcc_h181 = _source80.dtor_dType; - Dafny.ISequence _2674___mcc_h182 = _source80.dtor_variant; - bool _2675_isDatatype = _2388___mcc_h45; - bool _2676_isConstant = _2387___mcc_h44; - Dafny.ISequence _2677_field = _2386___mcc_h43; - DAST._IExpression _2678_on = _2385___mcc_h42; + DAST._IExpression _2671___mcc_h180 = _source80.dtor_on; + Dafny.ISequence> _2672___mcc_h181 = _source80.dtor_dType; + Dafny.ISequence _2673___mcc_h182 = _source80.dtor_variant; + bool _2674_isDatatype = _2387___mcc_h45; + bool _2675_isConstant = _2386___mcc_h44; + Dafny.ISequence _2676_field = _2385___mcc_h43; + DAST._IExpression _2677_on = _2384___mcc_h42; { - Dafny.ISequence _2679_onString; - bool _2680_onOwned; - bool _2681_onErased; - Dafny.ISet> _2682_recIdents; + Dafny.ISequence _2678_onString; + bool _2679_onOwned; + bool _2680_onErased; + Dafny.ISet> _2681_recIdents; Dafny.ISequence _out1589; bool _out1590; bool _out1591; Dafny.ISet> _out1592; - DCOMP.COMP.GenExpr(_2678_on, selfIdent, @params, false, out _out1589, out _out1590, out _out1591, out _out1592); - _2679_onString = _out1589; - _2680_onOwned = _out1590; - _2681_onErased = _out1591; - _2682_recIdents = _out1592; - if ((_2675_isDatatype) || (_2676_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2679_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2677_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2676_isConstant) { + DCOMP.COMP.GenExpr(_2677_on, selfIdent, @params, false, out _out1589, out _out1590, out _out1591, out _out1592); + _2678_onString = _out1589; + _2679_onOwned = _out1590; + _2680_onErased = _out1591; + _2681_recIdents = _out1592; + if ((_2674_isDatatype) || (_2675_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2678_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2676_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2675_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16583,36 +16552,36 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2679_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2677_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2678_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2676_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2682_recIdents; + readIdents = _2681_recIdents; } } else if (_source80.is_InitializationValue) { - DAST._IType _2683___mcc_h186 = _source80.dtor_typ; - bool _2684_isDatatype = _2388___mcc_h45; - bool _2685_isConstant = _2387___mcc_h44; - Dafny.ISequence _2686_field = _2386___mcc_h43; - DAST._IExpression _2687_on = _2385___mcc_h42; + DAST._IType _2682___mcc_h186 = _source80.dtor_typ; + bool _2683_isDatatype = _2387___mcc_h45; + bool _2684_isConstant = _2386___mcc_h44; + Dafny.ISequence _2685_field = _2385___mcc_h43; + DAST._IExpression _2686_on = _2384___mcc_h42; { - Dafny.ISequence _2688_onString; - bool _2689_onOwned; - bool _2690_onErased; - Dafny.ISet> _2691_recIdents; + Dafny.ISequence _2687_onString; + bool _2688_onOwned; + bool _2689_onErased; + Dafny.ISet> _2690_recIdents; Dafny.ISequence _out1593; bool _out1594; bool _out1595; Dafny.ISet> _out1596; - DCOMP.COMP.GenExpr(_2687_on, selfIdent, @params, false, out _out1593, out _out1594, out _out1595, out _out1596); - _2688_onString = _out1593; - _2689_onOwned = _out1594; - _2690_onErased = _out1595; - _2691_recIdents = _out1596; - if ((_2684_isDatatype) || (_2685_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2688_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2686_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2685_isConstant) { + DCOMP.COMP.GenExpr(_2686_on, selfIdent, @params, false, out _out1593, out _out1594, out _out1595, out _out1596); + _2687_onString = _out1593; + _2688_onOwned = _out1594; + _2689_onErased = _out1595; + _2690_recIdents = _out1596; + if ((_2683_isDatatype) || (_2684_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2687_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2685_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2684_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16622,35 +16591,35 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2688_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2686_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2687_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2685_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2691_recIdents; + readIdents = _2690_recIdents; } } else if (_source80.is_BoolBoundedPool) { - bool _2692_isDatatype = _2388___mcc_h45; - bool _2693_isConstant = _2387___mcc_h44; - Dafny.ISequence _2694_field = _2386___mcc_h43; - DAST._IExpression _2695_on = _2385___mcc_h42; + bool _2691_isDatatype = _2387___mcc_h45; + bool _2692_isConstant = _2386___mcc_h44; + Dafny.ISequence _2693_field = _2385___mcc_h43; + DAST._IExpression _2694_on = _2384___mcc_h42; { - Dafny.ISequence _2696_onString; - bool _2697_onOwned; - bool _2698_onErased; - Dafny.ISet> _2699_recIdents; + Dafny.ISequence _2695_onString; + bool _2696_onOwned; + bool _2697_onErased; + Dafny.ISet> _2698_recIdents; Dafny.ISequence _out1597; bool _out1598; bool _out1599; Dafny.ISet> _out1600; - DCOMP.COMP.GenExpr(_2695_on, selfIdent, @params, false, out _out1597, out _out1598, out _out1599, out _out1600); - _2696_onString = _out1597; - _2697_onOwned = _out1598; - _2698_onErased = _out1599; - _2699_recIdents = _out1600; - if ((_2692_isDatatype) || (_2693_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2696_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2694_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2693_isConstant) { + DCOMP.COMP.GenExpr(_2694_on, selfIdent, @params, false, out _out1597, out _out1598, out _out1599, out _out1600); + _2695_onString = _out1597; + _2696_onOwned = _out1598; + _2697_onErased = _out1599; + _2698_recIdents = _out1600; + if ((_2691_isDatatype) || (_2692_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2695_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2693_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2692_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16660,36 +16629,36 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2696_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2694_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2695_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2693_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2699_recIdents; + readIdents = _2698_recIdents; } } else if (_source80.is_SetBoundedPool) { - DAST._IExpression _2700___mcc_h188 = _source80.dtor_of; - bool _2701_isDatatype = _2388___mcc_h45; - bool _2702_isConstant = _2387___mcc_h44; - Dafny.ISequence _2703_field = _2386___mcc_h43; - DAST._IExpression _2704_on = _2385___mcc_h42; + DAST._IExpression _2699___mcc_h188 = _source80.dtor_of; + bool _2700_isDatatype = _2387___mcc_h45; + bool _2701_isConstant = _2386___mcc_h44; + Dafny.ISequence _2702_field = _2385___mcc_h43; + DAST._IExpression _2703_on = _2384___mcc_h42; { - Dafny.ISequence _2705_onString; - bool _2706_onOwned; - bool _2707_onErased; - Dafny.ISet> _2708_recIdents; + Dafny.ISequence _2704_onString; + bool _2705_onOwned; + bool _2706_onErased; + Dafny.ISet> _2707_recIdents; Dafny.ISequence _out1601; bool _out1602; bool _out1603; Dafny.ISet> _out1604; - DCOMP.COMP.GenExpr(_2704_on, selfIdent, @params, false, out _out1601, out _out1602, out _out1603, out _out1604); - _2705_onString = _out1601; - _2706_onOwned = _out1602; - _2707_onErased = _out1603; - _2708_recIdents = _out1604; - if ((_2701_isDatatype) || (_2702_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2705_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2703_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2702_isConstant) { + DCOMP.COMP.GenExpr(_2703_on, selfIdent, @params, false, out _out1601, out _out1602, out _out1603, out _out1604); + _2704_onString = _out1601; + _2705_onOwned = _out1602; + _2706_onErased = _out1603; + _2707_recIdents = _out1604; + if ((_2700_isDatatype) || (_2701_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2704_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2702_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2701_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16699,37 +16668,37 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2705_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2703_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2704_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2702_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2708_recIdents; + readIdents = _2707_recIdents; } } else if (_source80.is_SeqBoundedPool) { - DAST._IExpression _2709___mcc_h190 = _source80.dtor_of; - bool _2710___mcc_h191 = _source80.dtor_includeDuplicates; - bool _2711_isDatatype = _2388___mcc_h45; - bool _2712_isConstant = _2387___mcc_h44; - Dafny.ISequence _2713_field = _2386___mcc_h43; - DAST._IExpression _2714_on = _2385___mcc_h42; + DAST._IExpression _2708___mcc_h190 = _source80.dtor_of; + bool _2709___mcc_h191 = _source80.dtor_includeDuplicates; + bool _2710_isDatatype = _2387___mcc_h45; + bool _2711_isConstant = _2386___mcc_h44; + Dafny.ISequence _2712_field = _2385___mcc_h43; + DAST._IExpression _2713_on = _2384___mcc_h42; { - Dafny.ISequence _2715_onString; - bool _2716_onOwned; - bool _2717_onErased; - Dafny.ISet> _2718_recIdents; + Dafny.ISequence _2714_onString; + bool _2715_onOwned; + bool _2716_onErased; + Dafny.ISet> _2717_recIdents; Dafny.ISequence _out1605; bool _out1606; bool _out1607; Dafny.ISet> _out1608; - DCOMP.COMP.GenExpr(_2714_on, selfIdent, @params, false, out _out1605, out _out1606, out _out1607, out _out1608); - _2715_onString = _out1605; - _2716_onOwned = _out1606; - _2717_onErased = _out1607; - _2718_recIdents = _out1608; - if ((_2711_isDatatype) || (_2712_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2715_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2713_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2712_isConstant) { + DCOMP.COMP.GenExpr(_2713_on, selfIdent, @params, false, out _out1605, out _out1606, out _out1607, out _out1608); + _2714_onString = _out1605; + _2715_onOwned = _out1606; + _2716_onErased = _out1607; + _2717_recIdents = _out1608; + if ((_2710_isDatatype) || (_2711_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2714_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2712_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2711_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16739,37 +16708,37 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2715_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2713_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2714_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2712_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2718_recIdents; + readIdents = _2717_recIdents; } } else { - DAST._IExpression _2719___mcc_h194 = _source80.dtor_lo; - DAST._IExpression _2720___mcc_h195 = _source80.dtor_hi; - bool _2721_isDatatype = _2388___mcc_h45; - bool _2722_isConstant = _2387___mcc_h44; - Dafny.ISequence _2723_field = _2386___mcc_h43; - DAST._IExpression _2724_on = _2385___mcc_h42; + DAST._IExpression _2718___mcc_h194 = _source80.dtor_lo; + DAST._IExpression _2719___mcc_h195 = _source80.dtor_hi; + bool _2720_isDatatype = _2387___mcc_h45; + bool _2721_isConstant = _2386___mcc_h44; + Dafny.ISequence _2722_field = _2385___mcc_h43; + DAST._IExpression _2723_on = _2384___mcc_h42; { - Dafny.ISequence _2725_onString; - bool _2726_onOwned; - bool _2727_onErased; - Dafny.ISet> _2728_recIdents; + Dafny.ISequence _2724_onString; + bool _2725_onOwned; + bool _2726_onErased; + Dafny.ISet> _2727_recIdents; Dafny.ISequence _out1609; bool _out1610; bool _out1611; Dafny.ISet> _out1612; - DCOMP.COMP.GenExpr(_2724_on, selfIdent, @params, false, out _out1609, out _out1610, out _out1611, out _out1612); - _2725_onString = _out1609; - _2726_onOwned = _out1610; - _2727_onErased = _out1611; - _2728_recIdents = _out1612; - if ((_2721_isDatatype) || (_2722_isConstant)) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2725_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2723_field)), Dafny.Sequence.UnicodeFromString("()")); - if (_2722_isConstant) { + DCOMP.COMP.GenExpr(_2723_on, selfIdent, @params, false, out _out1609, out _out1610, out _out1611, out _out1612); + _2724_onString = _out1609; + _2725_onOwned = _out1610; + _2726_onErased = _out1611; + _2727_recIdents = _out1612; + if ((_2720_isDatatype) || (_2721_isConstant)) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2724_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2722_field)), Dafny.Sequence.UnicodeFromString("()")); + if (_2721_isConstant) { s = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), s); } if (mustOwn) { @@ -16779,143 +16748,143 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2725_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2723_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::std::ops::Deref::deref(&(("), _2724_onString), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".")), DCOMP.__default.escapeIdent(_2722_field)), Dafny.Sequence.UnicodeFromString(".borrow()))")); s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); isOwned = true; } isErased = false; - readIdents = _2728_recIdents; + readIdents = _2727_recIdents; } } } else if (_source20.is_SelectFn) { - DAST._IExpression _2729___mcc_h198 = _source20.dtor_expr; - Dafny.ISequence _2730___mcc_h199 = _source20.dtor_field; - bool _2731___mcc_h200 = _source20.dtor_onDatatype; - bool _2732___mcc_h201 = _source20.dtor_isStatic; - BigInteger _2733___mcc_h202 = _source20.dtor_arity; - BigInteger _2734_arity = _2733___mcc_h202; - bool _2735_isStatic = _2732___mcc_h201; - bool _2736_isDatatype = _2731___mcc_h200; - Dafny.ISequence _2737_field = _2730___mcc_h199; - DAST._IExpression _2738_on = _2729___mcc_h198; + DAST._IExpression _2728___mcc_h198 = _source20.dtor_expr; + Dafny.ISequence _2729___mcc_h199 = _source20.dtor_field; + bool _2730___mcc_h200 = _source20.dtor_onDatatype; + bool _2731___mcc_h201 = _source20.dtor_isStatic; + BigInteger _2732___mcc_h202 = _source20.dtor_arity; + BigInteger _2733_arity = _2732___mcc_h202; + bool _2734_isStatic = _2731___mcc_h201; + bool _2735_isDatatype = _2730___mcc_h200; + Dafny.ISequence _2736_field = _2729___mcc_h199; + DAST._IExpression _2737_on = _2728___mcc_h198; { - Dafny.ISequence _2739_onString; - bool _2740_onOwned; - bool _2741___v82; - Dafny.ISet> _2742_recIdents; + Dafny.ISequence _2738_onString; + bool _2739_onOwned; + bool _2740___v82; + Dafny.ISet> _2741_recIdents; Dafny.ISequence _out1613; bool _out1614; bool _out1615; Dafny.ISet> _out1616; - DCOMP.COMP.GenExpr(_2738_on, selfIdent, @params, false, out _out1613, out _out1614, out _out1615, out _out1616); - _2739_onString = _out1613; - _2740_onOwned = _out1614; - _2741___v82 = _out1615; - _2742_recIdents = _out1616; - if (_2735_isStatic) { - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2739_onString, Dafny.Sequence.UnicodeFromString("::")), _2737_field); + DCOMP.COMP.GenExpr(_2737_on, selfIdent, @params, false, out _out1613, out _out1614, out _out1615, out _out1616); + _2738_onString = _out1613; + _2739_onOwned = _out1614; + _2740___v82 = _out1615; + _2741_recIdents = _out1616; + if (_2734_isStatic) { + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2738_onString, Dafny.Sequence.UnicodeFromString("::")), _2736_field); } else { s = Dafny.Sequence.UnicodeFromString("{\n"); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("let callTarget = (")), _2739_onString), ((_2740_onOwned) ? (Dafny.Sequence.UnicodeFromString(")")) : (Dafny.Sequence.UnicodeFromString(").clone()")))), Dafny.Sequence.UnicodeFromString(";\n")); - Dafny.ISequence _2743_args; - _2743_args = Dafny.Sequence.UnicodeFromString(""); - BigInteger _2744_i; - _2744_i = BigInteger.Zero; - while ((_2744_i) < (_2734_arity)) { - if ((_2744_i).Sign == 1) { - _2743_args = Dafny.Sequence.Concat(_2743_args, Dafny.Sequence.UnicodeFromString(", ")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("let callTarget = (")), _2738_onString), ((_2739_onOwned) ? (Dafny.Sequence.UnicodeFromString(")")) : (Dafny.Sequence.UnicodeFromString(").clone()")))), Dafny.Sequence.UnicodeFromString(";\n")); + Dafny.ISequence _2742_args; + _2742_args = Dafny.Sequence.UnicodeFromString(""); + BigInteger _2743_i; + _2743_i = BigInteger.Zero; + while ((_2743_i) < (_2733_arity)) { + if ((_2743_i).Sign == 1) { + _2742_args = Dafny.Sequence.Concat(_2742_args, Dafny.Sequence.UnicodeFromString(", ")); } - _2743_args = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2743_args, Dafny.Sequence.UnicodeFromString("arg")), DCOMP.__default.natToString(_2744_i)); - _2744_i = (_2744_i) + (BigInteger.One); + _2742_args = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2742_args, Dafny.Sequence.UnicodeFromString("arg")), DCOMP.__default.natToString(_2743_i)); + _2743_i = (_2743_i) + (BigInteger.One); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("move |")), _2743_args), Dafny.Sequence.UnicodeFromString("| {\n")); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("callTarget.")), _2737_field), Dafny.Sequence.UnicodeFromString("(")), _2743_args), Dafny.Sequence.UnicodeFromString(")\n")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("move |")), _2742_args), Dafny.Sequence.UnicodeFromString("| {\n")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("callTarget.")), _2736_field), Dafny.Sequence.UnicodeFromString("(")), _2742_args), Dafny.Sequence.UnicodeFromString(")\n")); s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("}\n")); s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("}")); } - Dafny.ISequence _2745_typeShape; - _2745_typeShape = Dafny.Sequence.UnicodeFromString("dyn ::std::ops::Fn("); - BigInteger _2746_i; - _2746_i = BigInteger.Zero; - while ((_2746_i) < (_2734_arity)) { - if ((_2746_i).Sign == 1) { - _2745_typeShape = Dafny.Sequence.Concat(_2745_typeShape, Dafny.Sequence.UnicodeFromString(", ")); + Dafny.ISequence _2744_typeShape; + _2744_typeShape = Dafny.Sequence.UnicodeFromString("dyn ::std::ops::Fn("); + BigInteger _2745_i; + _2745_i = BigInteger.Zero; + while ((_2745_i) < (_2733_arity)) { + if ((_2745_i).Sign == 1) { + _2744_typeShape = Dafny.Sequence.Concat(_2744_typeShape, Dafny.Sequence.UnicodeFromString(", ")); } - _2745_typeShape = Dafny.Sequence.Concat(_2745_typeShape, Dafny.Sequence.UnicodeFromString("&_")); - _2746_i = (_2746_i) + (BigInteger.One); + _2744_typeShape = Dafny.Sequence.Concat(_2744_typeShape, Dafny.Sequence.UnicodeFromString("&_")); + _2745_i = (_2745_i) + (BigInteger.One); } - _2745_typeShape = Dafny.Sequence.Concat(_2745_typeShape, Dafny.Sequence.UnicodeFromString(") -> _")); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::FunctionWrapper(::std::rc::Rc::new("), s), Dafny.Sequence.UnicodeFromString(") as ::std::rc::Rc<")), _2745_typeShape), Dafny.Sequence.UnicodeFromString(">)")); + _2744_typeShape = Dafny.Sequence.Concat(_2744_typeShape, Dafny.Sequence.UnicodeFromString(") -> _")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::FunctionWrapper(::std::rc::Rc::new("), s), Dafny.Sequence.UnicodeFromString(") as ::std::rc::Rc<")), _2744_typeShape), Dafny.Sequence.UnicodeFromString(">)")); isOwned = true; isErased = false; - readIdents = _2742_recIdents; + readIdents = _2741_recIdents; } } else if (_source20.is_Index) { - DAST._IExpression _2747___mcc_h203 = _source20.dtor_expr; - DAST._ICollKind _2748___mcc_h204 = _source20.dtor_collKind; - Dafny.ISequence _2749___mcc_h205 = _source20.dtor_indices; - Dafny.ISequence _2750_indices = _2749___mcc_h205; - DAST._ICollKind _2751_collKind = _2748___mcc_h204; - DAST._IExpression _2752_on = _2747___mcc_h203; + DAST._IExpression _2746___mcc_h203 = _source20.dtor_expr; + DAST._ICollKind _2747___mcc_h204 = _source20.dtor_collKind; + Dafny.ISequence _2748___mcc_h205 = _source20.dtor_indices; + Dafny.ISequence _2749_indices = _2748___mcc_h205; + DAST._ICollKind _2750_collKind = _2747___mcc_h204; + DAST._IExpression _2751_on = _2746___mcc_h203; { - Dafny.ISequence _2753_onString; - bool _2754_onOwned; - bool _2755_onErased; - Dafny.ISet> _2756_recIdents; + Dafny.ISequence _2752_onString; + bool _2753_onOwned; + bool _2754_onErased; + Dafny.ISet> _2755_recIdents; Dafny.ISequence _out1617; bool _out1618; bool _out1619; Dafny.ISet> _out1620; - DCOMP.COMP.GenExpr(_2752_on, selfIdent, @params, false, out _out1617, out _out1618, out _out1619, out _out1620); - _2753_onString = _out1617; - _2754_onOwned = _out1618; - _2755_onErased = _out1619; - _2756_recIdents = _out1620; - readIdents = _2756_recIdents; - s = _2753_onString; - BigInteger _2757_i; - _2757_i = BigInteger.Zero; - while ((_2757_i) < (new BigInteger((_2750_indices).Count))) { - if (object.Equals(_2751_collKind, DAST.CollKind.create_Array())) { + DCOMP.COMP.GenExpr(_2751_on, selfIdent, @params, false, out _out1617, out _out1618, out _out1619, out _out1620); + _2752_onString = _out1617; + _2753_onOwned = _out1618; + _2754_onErased = _out1619; + _2755_recIdents = _out1620; + readIdents = _2755_recIdents; + s = _2752_onString; + BigInteger _2756_i; + _2756_i = BigInteger.Zero; + while ((_2756_i) < (new BigInteger((_2749_indices).Count))) { + if (object.Equals(_2750_collKind, DAST.CollKind.create_Array())) { s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").borrow()")); } - if (object.Equals(_2751_collKind, DAST.CollKind.create_Map())) { - Dafny.ISequence _2758_idx; - bool _2759_idxOwned; - bool _2760_idxErased; - Dafny.ISet> _2761_recIdentsIdx; + if (object.Equals(_2750_collKind, DAST.CollKind.create_Map())) { + Dafny.ISequence _2757_idx; + bool _2758_idxOwned; + bool _2759_idxErased; + Dafny.ISet> _2760_recIdentsIdx; Dafny.ISequence _out1621; bool _out1622; bool _out1623; Dafny.ISet> _out1624; - DCOMP.COMP.GenExpr((_2750_indices).Select(_2757_i), selfIdent, @params, false, out _out1621, out _out1622, out _out1623, out _out1624); - _2758_idx = _out1621; - _2759_idxOwned = _out1622; - _2760_idxErased = _out1623; - _2761_recIdentsIdx = _out1624; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(")[")), ((_2759_idxOwned) ? (Dafny.Sequence.UnicodeFromString("&")) : (Dafny.Sequence.UnicodeFromString("")))), _2758_idx), Dafny.Sequence.UnicodeFromString("]")); - readIdents = Dafny.Set>.Union(readIdents, _2761_recIdentsIdx); + DCOMP.COMP.GenExpr((_2749_indices).Select(_2756_i), selfIdent, @params, false, out _out1621, out _out1622, out _out1623, out _out1624); + _2757_idx = _out1621; + _2758_idxOwned = _out1622; + _2759_idxErased = _out1623; + _2760_recIdentsIdx = _out1624; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(")[")), ((_2758_idxOwned) ? (Dafny.Sequence.UnicodeFromString("&")) : (Dafny.Sequence.UnicodeFromString("")))), _2757_idx), Dafny.Sequence.UnicodeFromString("]")); + readIdents = Dafny.Set>.Union(readIdents, _2760_recIdentsIdx); } else { - Dafny.ISequence _2762_idx; - bool _2763___v83; - bool _2764_idxErased; - Dafny.ISet> _2765_recIdentsIdx; + Dafny.ISequence _2761_idx; + bool _2762___v83; + bool _2763_idxErased; + Dafny.ISet> _2764_recIdentsIdx; Dafny.ISequence _out1625; bool _out1626; bool _out1627; Dafny.ISet> _out1628; - DCOMP.COMP.GenExpr((_2750_indices).Select(_2757_i), selfIdent, @params, true, out _out1625, out _out1626, out _out1627, out _out1628); - _2762_idx = _out1625; - _2763___v83 = _out1626; - _2764_idxErased = _out1627; - _2765_recIdentsIdx = _out1628; - if (!(_2764_idxErased)) { - _2762_idx = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2762_idx), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr((_2749_indices).Select(_2756_i), selfIdent, @params, true, out _out1625, out _out1626, out _out1627, out _out1628); + _2761_idx = _out1625; + _2762___v83 = _out1626; + _2763_idxErased = _out1627; + _2764_recIdentsIdx = _out1628; + if (!(_2763_idxErased)) { + _2761_idx = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2761_idx), Dafny.Sequence.UnicodeFromString(")")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(")[::from(")), _2762_idx), Dafny.Sequence.UnicodeFromString(").unwrap()]")); - readIdents = Dafny.Set>.Union(readIdents, _2765_recIdentsIdx); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(")[::from(")), _2761_idx), Dafny.Sequence.UnicodeFromString(").unwrap()]")); + readIdents = Dafny.Set>.Union(readIdents, _2764_recIdentsIdx); } - _2757_i = (_2757_i) + (BigInteger.One); + _2756_i = (_2756_i) + (BigInteger.One); } if (mustOwn) { s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").clone()")); @@ -16924,133 +16893,133 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(&"), s), Dafny.Sequence.UnicodeFromString(")")); isOwned = false; } - isErased = _2755_onErased; + isErased = _2754_onErased; } } else if (_source20.is_IndexRange) { - DAST._IExpression _2766___mcc_h206 = _source20.dtor_expr; - bool _2767___mcc_h207 = _source20.dtor_isArray; - DAST._IOptional _2768___mcc_h208 = _source20.dtor_low; - DAST._IOptional _2769___mcc_h209 = _source20.dtor_high; - DAST._IOptional _2770_high = _2769___mcc_h209; - DAST._IOptional _2771_low = _2768___mcc_h208; - bool _2772_isArray = _2767___mcc_h207; - DAST._IExpression _2773_on = _2766___mcc_h206; + DAST._IExpression _2765___mcc_h206 = _source20.dtor_expr; + bool _2766___mcc_h207 = _source20.dtor_isArray; + DAST._IOptional _2767___mcc_h208 = _source20.dtor_low; + DAST._IOptional _2768___mcc_h209 = _source20.dtor_high; + DAST._IOptional _2769_high = _2768___mcc_h209; + DAST._IOptional _2770_low = _2767___mcc_h208; + bool _2771_isArray = _2766___mcc_h207; + DAST._IExpression _2772_on = _2765___mcc_h206; { - Dafny.ISequence _2774_onString; - bool _2775_onOwned; - bool _2776_onErased; - Dafny.ISet> _2777_recIdents; + Dafny.ISequence _2773_onString; + bool _2774_onOwned; + bool _2775_onErased; + Dafny.ISet> _2776_recIdents; Dafny.ISequence _out1629; bool _out1630; bool _out1631; Dafny.ISet> _out1632; - DCOMP.COMP.GenExpr(_2773_on, selfIdent, @params, false, out _out1629, out _out1630, out _out1631, out _out1632); - _2774_onString = _out1629; - _2775_onOwned = _out1630; - _2776_onErased = _out1631; - _2777_recIdents = _out1632; - readIdents = _2777_recIdents; - s = _2774_onString; - DAST._IOptional> _2778_lowString; - _2778_lowString = DAST.Optional>.create_None(); - DAST._IOptional _source81 = _2771_low; + DCOMP.COMP.GenExpr(_2772_on, selfIdent, @params, false, out _out1629, out _out1630, out _out1631, out _out1632); + _2773_onString = _out1629; + _2774_onOwned = _out1630; + _2775_onErased = _out1631; + _2776_recIdents = _out1632; + readIdents = _2776_recIdents; + s = _2773_onString; + DAST._IOptional> _2777_lowString; + _2777_lowString = DAST.Optional>.create_None(); + DAST._IOptional _source81 = _2770_low; if (_source81.is_Some) { - DAST._IExpression _2779___mcc_h1195 = _source81.dtor_Some_a0; - DAST._IExpression _2780_l = _2779___mcc_h1195; + DAST._IExpression _2778___mcc_h1195 = _source81.dtor_Some_a0; + DAST._IExpression _2779_l = _2778___mcc_h1195; { - Dafny.ISequence _2781_lString; - bool _2782___v84; - bool _2783_lErased; - Dafny.ISet> _2784_recIdentsL; + Dafny.ISequence _2780_lString; + bool _2781___v84; + bool _2782_lErased; + Dafny.ISet> _2783_recIdentsL; Dafny.ISequence _out1633; bool _out1634; bool _out1635; Dafny.ISet> _out1636; - DCOMP.COMP.GenExpr(_2780_l, selfIdent, @params, true, out _out1633, out _out1634, out _out1635, out _out1636); - _2781_lString = _out1633; - _2782___v84 = _out1634; - _2783_lErased = _out1635; - _2784_recIdentsL = _out1636; - if (!(_2783_lErased)) { - _2781_lString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2781_lString), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_2779_l, selfIdent, @params, true, out _out1633, out _out1634, out _out1635, out _out1636); + _2780_lString = _out1633; + _2781___v84 = _out1634; + _2782_lErased = _out1635; + _2783_recIdentsL = _out1636; + if (!(_2782_lErased)) { + _2780_lString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2780_lString), Dafny.Sequence.UnicodeFromString(")")); } - _2778_lowString = DAST.Optional>.create_Some(_2781_lString); - readIdents = Dafny.Set>.Union(readIdents, _2784_recIdentsL); + _2777_lowString = DAST.Optional>.create_Some(_2780_lString); + readIdents = Dafny.Set>.Union(readIdents, _2783_recIdentsL); } } else { } - DAST._IOptional> _2785_highString; - _2785_highString = DAST.Optional>.create_None(); - DAST._IOptional _source82 = _2770_high; + DAST._IOptional> _2784_highString; + _2784_highString = DAST.Optional>.create_None(); + DAST._IOptional _source82 = _2769_high; if (_source82.is_Some) { - DAST._IExpression _2786___mcc_h1196 = _source82.dtor_Some_a0; - DAST._IExpression _2787_h = _2786___mcc_h1196; + DAST._IExpression _2785___mcc_h1196 = _source82.dtor_Some_a0; + DAST._IExpression _2786_h = _2785___mcc_h1196; { - Dafny.ISequence _2788_hString; - bool _2789___v85; - bool _2790_hErased; - Dafny.ISet> _2791_recIdentsH; + Dafny.ISequence _2787_hString; + bool _2788___v85; + bool _2789_hErased; + Dafny.ISet> _2790_recIdentsH; Dafny.ISequence _out1637; bool _out1638; bool _out1639; Dafny.ISet> _out1640; - DCOMP.COMP.GenExpr(_2787_h, selfIdent, @params, true, out _out1637, out _out1638, out _out1639, out _out1640); - _2788_hString = _out1637; - _2789___v85 = _out1638; - _2790_hErased = _out1639; - _2791_recIdentsH = _out1640; - if (!(_2790_hErased)) { - _2788_hString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2788_hString), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_2786_h, selfIdent, @params, true, out _out1637, out _out1638, out _out1639, out _out1640); + _2787_hString = _out1637; + _2788___v85 = _out1638; + _2789_hErased = _out1639; + _2790_recIdentsH = _out1640; + if (!(_2789_hErased)) { + _2787_hString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2787_hString), Dafny.Sequence.UnicodeFromString(")")); } - _2785_highString = DAST.Optional>.create_Some(_2788_hString); - readIdents = Dafny.Set>.Union(readIdents, _2791_recIdentsH); + _2784_highString = DAST.Optional>.create_Some(_2787_hString); + readIdents = Dafny.Set>.Union(readIdents, _2790_recIdentsH); } } else { } - if (_2772_isArray) { + if (_2771_isArray) { s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(").borrow()")); } s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString("[")), ((System.Func>, Dafny.ISequence>)((_source83) => { if (_source83.is_Some) { - Dafny.ISequence _2792___mcc_h1197 = _source83.dtor_Some_a0; - Dafny.ISequence _2793_l = _2792___mcc_h1197; - return Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::from("), _2793_l), Dafny.Sequence.UnicodeFromString(").unwrap()")); + Dafny.ISequence _2791___mcc_h1197 = _source83.dtor_Some_a0; + Dafny.ISequence _2792_l = _2791___mcc_h1197; + return Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::from("), _2792_l), Dafny.Sequence.UnicodeFromString(").unwrap()")); } else { return Dafny.Sequence.UnicodeFromString(""); } - }))(_2778_lowString)), Dafny.Sequence.UnicodeFromString("..")), ((System.Func>, Dafny.ISequence>)((_source84) => { + }))(_2777_lowString)), Dafny.Sequence.UnicodeFromString("..")), ((System.Func>, Dafny.ISequence>)((_source84) => { if (_source84.is_Some) { - Dafny.ISequence _2794___mcc_h1198 = _source84.dtor_Some_a0; - Dafny.ISequence _2795_h = _2794___mcc_h1198; - return Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::from("), _2795_h), Dafny.Sequence.UnicodeFromString(").unwrap()")); + Dafny.ISequence _2793___mcc_h1198 = _source84.dtor_Some_a0; + Dafny.ISequence _2794_h = _2793___mcc_h1198; + return Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::from("), _2794_h), Dafny.Sequence.UnicodeFromString(").unwrap()")); } else { return Dafny.Sequence.UnicodeFromString(""); } - }))(_2785_highString)), Dafny.Sequence.UnicodeFromString("]")); - isErased = _2776_onErased; + }))(_2784_highString)), Dafny.Sequence.UnicodeFromString("]")); + isErased = _2775_onErased; s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(".to_vec())")); isOwned = true; } } else if (_source20.is_TupleSelect) { - DAST._IExpression _2796___mcc_h210 = _source20.dtor_expr; - BigInteger _2797___mcc_h211 = _source20.dtor_index; - BigInteger _2798_idx = _2797___mcc_h211; - DAST._IExpression _2799_on = _2796___mcc_h210; + DAST._IExpression _2795___mcc_h210 = _source20.dtor_expr; + BigInteger _2796___mcc_h211 = _source20.dtor_index; + BigInteger _2797_idx = _2796___mcc_h211; + DAST._IExpression _2798_on = _2795___mcc_h210; { - Dafny.ISequence _2800_onString; - bool _2801___v86; - bool _2802_tupErased; - Dafny.ISet> _2803_recIdents; + Dafny.ISequence _2799_onString; + bool _2800___v86; + bool _2801_tupErased; + Dafny.ISet> _2802_recIdents; Dafny.ISequence _out1641; bool _out1642; bool _out1643; Dafny.ISet> _out1644; - DCOMP.COMP.GenExpr(_2799_on, selfIdent, @params, false, out _out1641, out _out1642, out _out1643, out _out1644); - _2800_onString = _out1641; - _2801___v86 = _out1642; - _2802_tupErased = _out1643; - _2803_recIdents = _out1644; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2800_onString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.natToString(_2798_idx)); + DCOMP.COMP.GenExpr(_2798_on, selfIdent, @params, false, out _out1641, out _out1642, out _out1643, out _out1644); + _2799_onString = _out1641; + _2800___v86 = _out1642; + _2801_tupErased = _out1643; + _2802_recIdents = _out1644; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2799_onString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.natToString(_2797_idx)); if (mustOwn) { s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), s), Dafny.Sequence.UnicodeFromString(")")), Dafny.Sequence.UnicodeFromString(".clone()")); isOwned = true; @@ -17058,582 +17027,582 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional.Concat(Dafny.Sequence.UnicodeFromString("&"), s); isOwned = false; } - isErased = _2802_tupErased; - readIdents = _2803_recIdents; + isErased = _2801_tupErased; + readIdents = _2802_recIdents; } } else if (_source20.is_Call) { - DAST._IExpression _2804___mcc_h212 = _source20.dtor_on; - Dafny.ISequence _2805___mcc_h213 = _source20.dtor_name; - Dafny.ISequence _2806___mcc_h214 = _source20.dtor_typeArgs; - Dafny.ISequence _2807___mcc_h215 = _source20.dtor_args; - Dafny.ISequence _2808_args = _2807___mcc_h215; - Dafny.ISequence _2809_typeArgs = _2806___mcc_h214; - Dafny.ISequence _2810_name = _2805___mcc_h213; - DAST._IExpression _2811_on = _2804___mcc_h212; + DAST._IExpression _2803___mcc_h212 = _source20.dtor_on; + Dafny.ISequence _2804___mcc_h213 = _source20.dtor_name; + Dafny.ISequence _2805___mcc_h214 = _source20.dtor_typeArgs; + Dafny.ISequence _2806___mcc_h215 = _source20.dtor_args; + Dafny.ISequence _2807_args = _2806___mcc_h215; + Dafny.ISequence _2808_typeArgs = _2805___mcc_h214; + Dafny.ISequence _2809_name = _2804___mcc_h213; + DAST._IExpression _2810_on = _2803___mcc_h212; { readIdents = Dafny.Set>.FromElements(); - Dafny.ISequence _2812_typeArgString; - _2812_typeArgString = Dafny.Sequence.UnicodeFromString(""); - if ((new BigInteger((_2809_typeArgs).Count)) >= (BigInteger.One)) { - BigInteger _2813_typeI; - _2813_typeI = BigInteger.Zero; - _2812_typeArgString = Dafny.Sequence.UnicodeFromString("::<"); - while ((_2813_typeI) < (new BigInteger((_2809_typeArgs).Count))) { - if ((_2813_typeI).Sign == 1) { - _2812_typeArgString = Dafny.Sequence.Concat(_2812_typeArgString, Dafny.Sequence.UnicodeFromString(", ")); + Dafny.ISequence _2811_typeArgString; + _2811_typeArgString = Dafny.Sequence.UnicodeFromString(""); + if ((new BigInteger((_2808_typeArgs).Count)) >= (BigInteger.One)) { + BigInteger _2812_typeI; + _2812_typeI = BigInteger.Zero; + _2811_typeArgString = Dafny.Sequence.UnicodeFromString("::<"); + while ((_2812_typeI) < (new BigInteger((_2808_typeArgs).Count))) { + if ((_2812_typeI).Sign == 1) { + _2811_typeArgString = Dafny.Sequence.Concat(_2811_typeArgString, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _2814_typeString; + Dafny.ISequence _2813_typeString; Dafny.ISequence _out1645; - _out1645 = DCOMP.COMP.GenType((_2809_typeArgs).Select(_2813_typeI), false, false); - _2814_typeString = _out1645; - _2812_typeArgString = Dafny.Sequence.Concat(_2812_typeArgString, _2814_typeString); - _2813_typeI = (_2813_typeI) + (BigInteger.One); + _out1645 = DCOMP.COMP.GenType((_2808_typeArgs).Select(_2812_typeI), false, false); + _2813_typeString = _out1645; + _2811_typeArgString = Dafny.Sequence.Concat(_2811_typeArgString, _2813_typeString); + _2812_typeI = (_2812_typeI) + (BigInteger.One); } - _2812_typeArgString = Dafny.Sequence.Concat(_2812_typeArgString, Dafny.Sequence.UnicodeFromString(">")); + _2811_typeArgString = Dafny.Sequence.Concat(_2811_typeArgString, Dafny.Sequence.UnicodeFromString(">")); } - Dafny.ISequence _2815_argString; - _2815_argString = Dafny.Sequence.UnicodeFromString(""); - BigInteger _2816_i; - _2816_i = BigInteger.Zero; - while ((_2816_i) < (new BigInteger((_2808_args).Count))) { - if ((_2816_i).Sign == 1) { - _2815_argString = Dafny.Sequence.Concat(_2815_argString, Dafny.Sequence.UnicodeFromString(", ")); + Dafny.ISequence _2814_argString; + _2814_argString = Dafny.Sequence.UnicodeFromString(""); + BigInteger _2815_i; + _2815_i = BigInteger.Zero; + while ((_2815_i) < (new BigInteger((_2807_args).Count))) { + if ((_2815_i).Sign == 1) { + _2814_argString = Dafny.Sequence.Concat(_2814_argString, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _2817_argExpr; - bool _2818_isOwned; - bool _2819_argErased; - Dafny.ISet> _2820_argIdents; + Dafny.ISequence _2816_argExpr; + bool _2817_isOwned; + bool _2818_argErased; + Dafny.ISet> _2819_argIdents; Dafny.ISequence _out1646; bool _out1647; bool _out1648; Dafny.ISet> _out1649; - DCOMP.COMP.GenExpr((_2808_args).Select(_2816_i), selfIdent, @params, false, out _out1646, out _out1647, out _out1648, out _out1649); - _2817_argExpr = _out1646; - _2818_isOwned = _out1647; - _2819_argErased = _out1648; - _2820_argIdents = _out1649; - if (_2818_isOwned) { - _2817_argExpr = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&("), _2817_argExpr), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr((_2807_args).Select(_2815_i), selfIdent, @params, false, out _out1646, out _out1647, out _out1648, out _out1649); + _2816_argExpr = _out1646; + _2817_isOwned = _out1647; + _2818_argErased = _out1648; + _2819_argIdents = _out1649; + if (_2817_isOwned) { + _2816_argExpr = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&("), _2816_argExpr), Dafny.Sequence.UnicodeFromString(")")); } - if (!(_2819_argErased)) { - _2817_argExpr = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase("), _2817_argExpr), Dafny.Sequence.UnicodeFromString(")")); + if (!(_2818_argErased)) { + _2816_argExpr = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase("), _2816_argExpr), Dafny.Sequence.UnicodeFromString(")")); } - _2817_argExpr = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::unerase("), _2817_argExpr), Dafny.Sequence.UnicodeFromString(")")); - _2815_argString = Dafny.Sequence.Concat(_2815_argString, _2817_argExpr); - readIdents = Dafny.Set>.Union(readIdents, _2820_argIdents); - _2816_i = (_2816_i) + (BigInteger.One); + _2816_argExpr = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::unerase("), _2816_argExpr), Dafny.Sequence.UnicodeFromString(")")); + _2814_argString = Dafny.Sequence.Concat(_2814_argString, _2816_argExpr); + readIdents = Dafny.Set>.Union(readIdents, _2819_argIdents); + _2815_i = (_2815_i) + (BigInteger.One); } - Dafny.ISequence _2821_enclosingString; - bool _2822___v87; - bool _2823___v88; - Dafny.ISet> _2824_recIdents; + Dafny.ISequence _2820_enclosingString; + bool _2821___v87; + bool _2822___v88; + Dafny.ISet> _2823_recIdents; Dafny.ISequence _out1650; bool _out1651; bool _out1652; Dafny.ISet> _out1653; - DCOMP.COMP.GenExpr(_2811_on, selfIdent, @params, false, out _out1650, out _out1651, out _out1652, out _out1653); - _2821_enclosingString = _out1650; - _2822___v87 = _out1651; - _2823___v88 = _out1652; - _2824_recIdents = _out1653; - readIdents = Dafny.Set>.Union(readIdents, _2824_recIdents); - DAST._IExpression _source85 = _2811_on; + DCOMP.COMP.GenExpr(_2810_on, selfIdent, @params, false, out _out1650, out _out1651, out _out1652, out _out1653); + _2820_enclosingString = _out1650; + _2821___v87 = _out1651; + _2822___v88 = _out1652; + _2823_recIdents = _out1653; + readIdents = Dafny.Set>.Union(readIdents, _2823_recIdents); + DAST._IExpression _source85 = _2810_on; if (_source85.is_Literal) { - DAST._ILiteral _2825___mcc_h1199 = _source85.dtor_Literal_a0; + DAST._ILiteral _2824___mcc_h1199 = _source85.dtor_Literal_a0; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_Ident) { - Dafny.ISequence _2826___mcc_h1201 = _source85.dtor_Ident_a0; + Dafny.ISequence _2825___mcc_h1201 = _source85.dtor_Ident_a0; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_Companion) { - Dafny.ISequence> _2827___mcc_h1203 = _source85.dtor_Companion_a0; + Dafny.ISequence> _2826___mcc_h1203 = _source85.dtor_Companion_a0; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2821_enclosingString, Dafny.Sequence.UnicodeFromString("::")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2820_enclosingString, Dafny.Sequence.UnicodeFromString("::")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_Tuple) { - Dafny.ISequence _2828___mcc_h1205 = _source85.dtor_Tuple_a0; + Dafny.ISequence _2827___mcc_h1205 = _source85.dtor_Tuple_a0; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_New) { - Dafny.ISequence> _2829___mcc_h1207 = _source85.dtor_path; - Dafny.ISequence _2830___mcc_h1208 = _source85.dtor_typeArgs; - Dafny.ISequence _2831___mcc_h1209 = _source85.dtor_args; + Dafny.ISequence> _2828___mcc_h1207 = _source85.dtor_path; + Dafny.ISequence _2829___mcc_h1208 = _source85.dtor_typeArgs; + Dafny.ISequence _2830___mcc_h1209 = _source85.dtor_args; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_NewArray) { - Dafny.ISequence _2832___mcc_h1213 = _source85.dtor_dims; - DAST._IType _2833___mcc_h1214 = _source85.dtor_typ; + Dafny.ISequence _2831___mcc_h1213 = _source85.dtor_dims; + DAST._IType _2832___mcc_h1214 = _source85.dtor_typ; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_DatatypeValue) { - Dafny.ISequence> _2834___mcc_h1217 = _source85.dtor_path; - Dafny.ISequence _2835___mcc_h1218 = _source85.dtor_typeArgs; - Dafny.ISequence _2836___mcc_h1219 = _source85.dtor_variant; - bool _2837___mcc_h1220 = _source85.dtor_isCo; - Dafny.ISequence<_System._ITuple2, DAST._IExpression>> _2838___mcc_h1221 = _source85.dtor_contents; + Dafny.ISequence> _2833___mcc_h1217 = _source85.dtor_path; + Dafny.ISequence _2834___mcc_h1218 = _source85.dtor_typeArgs; + Dafny.ISequence _2835___mcc_h1219 = _source85.dtor_variant; + bool _2836___mcc_h1220 = _source85.dtor_isCo; + Dafny.ISequence<_System._ITuple2, DAST._IExpression>> _2837___mcc_h1221 = _source85.dtor_contents; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_Convert) { - DAST._IExpression _2839___mcc_h1227 = _source85.dtor_value; - DAST._IType _2840___mcc_h1228 = _source85.dtor_from; - DAST._IType _2841___mcc_h1229 = _source85.dtor_typ; + DAST._IExpression _2838___mcc_h1227 = _source85.dtor_value; + DAST._IType _2839___mcc_h1228 = _source85.dtor_from; + DAST._IType _2840___mcc_h1229 = _source85.dtor_typ; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_SeqConstruct) { - DAST._IExpression _2842___mcc_h1233 = _source85.dtor_length; - DAST._IExpression _2843___mcc_h1234 = _source85.dtor_elem; + DAST._IExpression _2841___mcc_h1233 = _source85.dtor_length; + DAST._IExpression _2842___mcc_h1234 = _source85.dtor_elem; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_SeqValue) { - Dafny.ISequence _2844___mcc_h1237 = _source85.dtor_elements; - DAST._IType _2845___mcc_h1238 = _source85.dtor_typ; + Dafny.ISequence _2843___mcc_h1237 = _source85.dtor_elements; + DAST._IType _2844___mcc_h1238 = _source85.dtor_typ; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_SetValue) { - Dafny.ISequence _2846___mcc_h1241 = _source85.dtor_elements; + Dafny.ISequence _2845___mcc_h1241 = _source85.dtor_elements; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_MapValue) { - Dafny.ISequence<_System._ITuple2> _2847___mcc_h1243 = _source85.dtor_mapElems; + Dafny.ISequence<_System._ITuple2> _2846___mcc_h1243 = _source85.dtor_mapElems; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_This) { { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_Ite) { - DAST._IExpression _2848___mcc_h1245 = _source85.dtor_cond; - DAST._IExpression _2849___mcc_h1246 = _source85.dtor_thn; - DAST._IExpression _2850___mcc_h1247 = _source85.dtor_els; + DAST._IExpression _2847___mcc_h1245 = _source85.dtor_cond; + DAST._IExpression _2848___mcc_h1246 = _source85.dtor_thn; + DAST._IExpression _2849___mcc_h1247 = _source85.dtor_els; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_UnOp) { - DAST._IUnaryOp _2851___mcc_h1251 = _source85.dtor_unOp; - DAST._IExpression _2852___mcc_h1252 = _source85.dtor_expr; + DAST._IUnaryOp _2850___mcc_h1251 = _source85.dtor_unOp; + DAST._IExpression _2851___mcc_h1252 = _source85.dtor_expr; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_BinOp) { - DAST._IBinOp _2853___mcc_h1255 = _source85.dtor_op; - DAST._IExpression _2854___mcc_h1256 = _source85.dtor_left; - DAST._IExpression _2855___mcc_h1257 = _source85.dtor_right; + DAST._IBinOp _2852___mcc_h1255 = _source85.dtor_op; + DAST._IExpression _2853___mcc_h1256 = _source85.dtor_left; + DAST._IExpression _2854___mcc_h1257 = _source85.dtor_right; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_ArrayLen) { - DAST._IExpression _2856___mcc_h1261 = _source85.dtor_expr; - BigInteger _2857___mcc_h1262 = _source85.dtor_dim; + DAST._IExpression _2855___mcc_h1261 = _source85.dtor_expr; + BigInteger _2856___mcc_h1262 = _source85.dtor_dim; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_Select) { - DAST._IExpression _2858___mcc_h1265 = _source85.dtor_expr; - Dafny.ISequence _2859___mcc_h1266 = _source85.dtor_field; - bool _2860___mcc_h1267 = _source85.dtor_isConstant; - bool _2861___mcc_h1268 = _source85.dtor_onDatatype; + DAST._IExpression _2857___mcc_h1265 = _source85.dtor_expr; + Dafny.ISequence _2858___mcc_h1266 = _source85.dtor_field; + bool _2859___mcc_h1267 = _source85.dtor_isConstant; + bool _2860___mcc_h1268 = _source85.dtor_onDatatype; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_SelectFn) { - DAST._IExpression _2862___mcc_h1273 = _source85.dtor_expr; - Dafny.ISequence _2863___mcc_h1274 = _source85.dtor_field; - bool _2864___mcc_h1275 = _source85.dtor_onDatatype; - bool _2865___mcc_h1276 = _source85.dtor_isStatic; - BigInteger _2866___mcc_h1277 = _source85.dtor_arity; + DAST._IExpression _2861___mcc_h1273 = _source85.dtor_expr; + Dafny.ISequence _2862___mcc_h1274 = _source85.dtor_field; + bool _2863___mcc_h1275 = _source85.dtor_onDatatype; + bool _2864___mcc_h1276 = _source85.dtor_isStatic; + BigInteger _2865___mcc_h1277 = _source85.dtor_arity; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_Index) { - DAST._IExpression _2867___mcc_h1283 = _source85.dtor_expr; - DAST._ICollKind _2868___mcc_h1284 = _source85.dtor_collKind; - Dafny.ISequence _2869___mcc_h1285 = _source85.dtor_indices; + DAST._IExpression _2866___mcc_h1283 = _source85.dtor_expr; + DAST._ICollKind _2867___mcc_h1284 = _source85.dtor_collKind; + Dafny.ISequence _2868___mcc_h1285 = _source85.dtor_indices; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_IndexRange) { - DAST._IExpression _2870___mcc_h1289 = _source85.dtor_expr; - bool _2871___mcc_h1290 = _source85.dtor_isArray; - DAST._IOptional _2872___mcc_h1291 = _source85.dtor_low; - DAST._IOptional _2873___mcc_h1292 = _source85.dtor_high; + DAST._IExpression _2869___mcc_h1289 = _source85.dtor_expr; + bool _2870___mcc_h1290 = _source85.dtor_isArray; + DAST._IOptional _2871___mcc_h1291 = _source85.dtor_low; + DAST._IOptional _2872___mcc_h1292 = _source85.dtor_high; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_TupleSelect) { - DAST._IExpression _2874___mcc_h1297 = _source85.dtor_expr; - BigInteger _2875___mcc_h1298 = _source85.dtor_index; + DAST._IExpression _2873___mcc_h1297 = _source85.dtor_expr; + BigInteger _2874___mcc_h1298 = _source85.dtor_index; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_Call) { - DAST._IExpression _2876___mcc_h1301 = _source85.dtor_on; - Dafny.ISequence _2877___mcc_h1302 = _source85.dtor_name; - Dafny.ISequence _2878___mcc_h1303 = _source85.dtor_typeArgs; - Dafny.ISequence _2879___mcc_h1304 = _source85.dtor_args; + DAST._IExpression _2875___mcc_h1301 = _source85.dtor_on; + Dafny.ISequence _2876___mcc_h1302 = _source85.dtor_name; + Dafny.ISequence _2877___mcc_h1303 = _source85.dtor_typeArgs; + Dafny.ISequence _2878___mcc_h1304 = _source85.dtor_args; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_Lambda) { - Dafny.ISequence _2880___mcc_h1309 = _source85.dtor_params; - DAST._IType _2881___mcc_h1310 = _source85.dtor_retType; - Dafny.ISequence _2882___mcc_h1311 = _source85.dtor_body; + Dafny.ISequence _2879___mcc_h1309 = _source85.dtor_params; + DAST._IType _2880___mcc_h1310 = _source85.dtor_retType; + Dafny.ISequence _2881___mcc_h1311 = _source85.dtor_body; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_BetaRedex) { - Dafny.ISequence<_System._ITuple2> _2883___mcc_h1315 = _source85.dtor_values; - DAST._IType _2884___mcc_h1316 = _source85.dtor_retType; - DAST._IExpression _2885___mcc_h1317 = _source85.dtor_expr; + Dafny.ISequence<_System._ITuple2> _2882___mcc_h1315 = _source85.dtor_values; + DAST._IType _2883___mcc_h1316 = _source85.dtor_retType; + DAST._IExpression _2884___mcc_h1317 = _source85.dtor_expr; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_IIFE) { - Dafny.ISequence _2886___mcc_h1321 = _source85.dtor_name; - DAST._IType _2887___mcc_h1322 = _source85.dtor_typ; - DAST._IExpression _2888___mcc_h1323 = _source85.dtor_value; - DAST._IExpression _2889___mcc_h1324 = _source85.dtor_iifeBody; + Dafny.ISequence _2885___mcc_h1321 = _source85.dtor_name; + DAST._IType _2886___mcc_h1322 = _source85.dtor_typ; + DAST._IExpression _2887___mcc_h1323 = _source85.dtor_value; + DAST._IExpression _2888___mcc_h1324 = _source85.dtor_iifeBody; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_Apply) { - DAST._IExpression _2890___mcc_h1329 = _source85.dtor_expr; - Dafny.ISequence _2891___mcc_h1330 = _source85.dtor_args; + DAST._IExpression _2889___mcc_h1329 = _source85.dtor_expr; + Dafny.ISequence _2890___mcc_h1330 = _source85.dtor_args; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_TypeTest) { - DAST._IExpression _2892___mcc_h1333 = _source85.dtor_on; - Dafny.ISequence> _2893___mcc_h1334 = _source85.dtor_dType; - Dafny.ISequence _2894___mcc_h1335 = _source85.dtor_variant; + DAST._IExpression _2891___mcc_h1333 = _source85.dtor_on; + Dafny.ISequence> _2892___mcc_h1334 = _source85.dtor_dType; + Dafny.ISequence _2893___mcc_h1335 = _source85.dtor_variant; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_InitializationValue) { - DAST._IType _2895___mcc_h1339 = _source85.dtor_typ; + DAST._IType _2894___mcc_h1339 = _source85.dtor_typ; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_BoolBoundedPool) { { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_SetBoundedPool) { - DAST._IExpression _2896___mcc_h1341 = _source85.dtor_of; + DAST._IExpression _2895___mcc_h1341 = _source85.dtor_of; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else if (_source85.is_SeqBoundedPool) { - DAST._IExpression _2897___mcc_h1343 = _source85.dtor_of; - bool _2898___mcc_h1344 = _source85.dtor_includeDuplicates; + DAST._IExpression _2896___mcc_h1343 = _source85.dtor_of; + bool _2897___mcc_h1344 = _source85.dtor_includeDuplicates; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } else { - DAST._IExpression _2899___mcc_h1347 = _source85.dtor_lo; - DAST._IExpression _2900___mcc_h1348 = _source85.dtor_hi; + DAST._IExpression _2898___mcc_h1347 = _source85.dtor_lo; + DAST._IExpression _2899___mcc_h1348 = _source85.dtor_hi; { - _2821_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2821_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2810_name))); + _2820_enclosingString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2820_enclosingString), Dafny.Sequence.UnicodeFromString(").")), DCOMP.__default.escapeIdent((_2809_name))); } } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2821_enclosingString, _2812_typeArgString), Dafny.Sequence.UnicodeFromString("(")), _2815_argString), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2820_enclosingString, _2811_typeArgString), Dafny.Sequence.UnicodeFromString("(")), _2814_argString), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; isErased = false; } } else if (_source20.is_Lambda) { - Dafny.ISequence _2901___mcc_h216 = _source20.dtor_params; - DAST._IType _2902___mcc_h217 = _source20.dtor_retType; - Dafny.ISequence _2903___mcc_h218 = _source20.dtor_body; - Dafny.ISequence _2904_body = _2903___mcc_h218; - DAST._IType _2905_retType = _2902___mcc_h217; - Dafny.ISequence _2906_params = _2901___mcc_h216; + Dafny.ISequence _2900___mcc_h216 = _source20.dtor_params; + DAST._IType _2901___mcc_h217 = _source20.dtor_retType; + Dafny.ISequence _2902___mcc_h218 = _source20.dtor_body; + Dafny.ISequence _2903_body = _2902___mcc_h218; + DAST._IType _2904_retType = _2901___mcc_h217; + Dafny.ISequence _2905_params = _2900___mcc_h216; { - Dafny.ISequence> _2907_paramNames; - _2907_paramNames = Dafny.Sequence>.FromElements(); - BigInteger _2908_i; - _2908_i = BigInteger.Zero; - while ((_2908_i) < (new BigInteger((_2906_params).Count))) { - _2907_paramNames = Dafny.Sequence>.Concat(_2907_paramNames, Dafny.Sequence>.FromElements(((_2906_params).Select(_2908_i)).dtor_name)); - _2908_i = (_2908_i) + (BigInteger.One); + Dafny.ISequence> _2906_paramNames; + _2906_paramNames = Dafny.Sequence>.FromElements(); + BigInteger _2907_i; + _2907_i = BigInteger.Zero; + while ((_2907_i) < (new BigInteger((_2905_params).Count))) { + _2906_paramNames = Dafny.Sequence>.Concat(_2906_paramNames, Dafny.Sequence>.FromElements(((_2905_params).Select(_2907_i)).dtor_name)); + _2907_i = (_2907_i) + (BigInteger.One); } - Dafny.ISequence _2909_recursiveGen; - Dafny.ISet> _2910_recIdents; + Dafny.ISequence _2908_recursiveGen; + Dafny.ISet> _2909_recIdents; Dafny.ISequence _out1654; Dafny.ISet> _out1655; - DCOMP.COMP.GenStmts(_2904_body, ((!object.Equals(selfIdent, DAST.Optional>.create_None())) ? (DAST.Optional>.create_Some(Dafny.Sequence.UnicodeFromString("_this"))) : (DAST.Optional>.create_None())), _2907_paramNames, true, Dafny.Sequence.UnicodeFromString(""), out _out1654, out _out1655); - _2909_recursiveGen = _out1654; - _2910_recIdents = _out1655; + DCOMP.COMP.GenStmts(_2903_body, ((!object.Equals(selfIdent, DAST.Optional>.create_None())) ? (DAST.Optional>.create_Some(Dafny.Sequence.UnicodeFromString("_this"))) : (DAST.Optional>.create_None())), _2906_paramNames, true, Dafny.Sequence.UnicodeFromString(""), out _out1654, out _out1655); + _2908_recursiveGen = _out1654; + _2909_recIdents = _out1655; readIdents = Dafny.Set>.FromElements(); - Dafny.ISequence _2911_allReadCloned; - _2911_allReadCloned = Dafny.Sequence.UnicodeFromString(""); - while (!(_2910_recIdents).Equals(Dafny.Set>.FromElements())) { - Dafny.ISequence _2912_next; - foreach (Dafny.ISequence _assign_such_that_1 in (_2910_recIdents).Elements) { - _2912_next = (Dafny.ISequence)_assign_such_that_1; - if ((_2910_recIdents).Contains(_2912_next)) { + Dafny.ISequence _2910_allReadCloned; + _2910_allReadCloned = Dafny.Sequence.UnicodeFromString(""); + while (!(_2909_recIdents).Equals(Dafny.Set>.FromElements())) { + Dafny.ISequence _2911_next; + foreach (Dafny.ISequence _assign_such_that_1 in (_2909_recIdents).Elements) { + _2911_next = (Dafny.ISequence)_assign_such_that_1; + if ((_2909_recIdents).Contains(_2911_next)) { goto after__ASSIGN_SUCH_THAT_1; } } - throw new System.Exception("assign-such-that search produced no value (line 1933)"); + throw new System.Exception("assign-such-that search produced no value (line 1924)"); after__ASSIGN_SUCH_THAT_1:; - if ((!object.Equals(selfIdent, DAST.Optional>.create_None())) && ((_2912_next).Equals(Dafny.Sequence.UnicodeFromString("_this")))) { + if ((!object.Equals(selfIdent, DAST.Optional>.create_None())) && ((_2911_next).Equals(Dafny.Sequence.UnicodeFromString("_this")))) { if (!object.Equals(selfIdent, DAST.Optional>.create_None())) { - _2911_allReadCloned = Dafny.Sequence.Concat(_2911_allReadCloned, Dafny.Sequence.UnicodeFromString("let _this = self.clone();\n")); + _2910_allReadCloned = Dafny.Sequence.Concat(_2910_allReadCloned, Dafny.Sequence.UnicodeFromString("let _this = self.clone();\n")); } - } else if (!((_2907_paramNames).Contains(_2912_next))) { - _2911_allReadCloned = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2911_allReadCloned, Dafny.Sequence.UnicodeFromString("let ")), DCOMP.__default.escapeIdent(_2912_next)), Dafny.Sequence.UnicodeFromString(" = ")), DCOMP.__default.escapeIdent(_2912_next)), Dafny.Sequence.UnicodeFromString(".clone();\n")); - readIdents = Dafny.Set>.Union(readIdents, Dafny.Set>.FromElements(_2912_next)); + } else if (!((_2906_paramNames).Contains(_2911_next))) { + _2910_allReadCloned = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2910_allReadCloned, Dafny.Sequence.UnicodeFromString("let ")), DCOMP.__default.escapeIdent(_2911_next)), Dafny.Sequence.UnicodeFromString(" = ")), DCOMP.__default.escapeIdent(_2911_next)), Dafny.Sequence.UnicodeFromString(".clone();\n")); + readIdents = Dafny.Set>.Union(readIdents, Dafny.Set>.FromElements(_2911_next)); } - _2910_recIdents = Dafny.Set>.Difference(_2910_recIdents, Dafny.Set>.FromElements(_2912_next)); + _2909_recIdents = Dafny.Set>.Difference(_2909_recIdents, Dafny.Set>.FromElements(_2911_next)); } - Dafny.ISequence _2913_paramsString; - _2913_paramsString = Dafny.Sequence.UnicodeFromString(""); - Dafny.ISequence _2914_paramTypes; - _2914_paramTypes = Dafny.Sequence.UnicodeFromString(""); - _2908_i = BigInteger.Zero; - while ((_2908_i) < (new BigInteger((_2906_params).Count))) { - if ((_2908_i).Sign == 1) { - _2913_paramsString = Dafny.Sequence.Concat(_2913_paramsString, Dafny.Sequence.UnicodeFromString(", ")); - _2914_paramTypes = Dafny.Sequence.Concat(_2914_paramTypes, Dafny.Sequence.UnicodeFromString(", ")); + Dafny.ISequence _2912_paramsString; + _2912_paramsString = Dafny.Sequence.UnicodeFromString(""); + Dafny.ISequence _2913_paramTypes; + _2913_paramTypes = Dafny.Sequence.UnicodeFromString(""); + _2907_i = BigInteger.Zero; + while ((_2907_i) < (new BigInteger((_2905_params).Count))) { + if ((_2907_i).Sign == 1) { + _2912_paramsString = Dafny.Sequence.Concat(_2912_paramsString, Dafny.Sequence.UnicodeFromString(", ")); + _2913_paramTypes = Dafny.Sequence.Concat(_2913_paramTypes, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _2915_typStr; + Dafny.ISequence _2914_typStr; Dafny.ISequence _out1656; - _out1656 = DCOMP.COMP.GenType(((_2906_params).Select(_2908_i)).dtor_typ, false, true); - _2915_typStr = _out1656; - _2913_paramsString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2913_paramsString, ((_2906_params).Select(_2908_i)).dtor_name), Dafny.Sequence.UnicodeFromString(": &")), _2915_typStr); - _2914_paramTypes = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2914_paramTypes, Dafny.Sequence.UnicodeFromString("&")), _2915_typStr); - _2908_i = (_2908_i) + (BigInteger.One); + _out1656 = DCOMP.COMP.GenType(((_2905_params).Select(_2907_i)).dtor_typ, false, true); + _2914_typStr = _out1656; + _2912_paramsString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2912_paramsString, ((_2905_params).Select(_2907_i)).dtor_name), Dafny.Sequence.UnicodeFromString(": &")), _2914_typStr); + _2913_paramTypes = Dafny.Sequence.Concat(Dafny.Sequence.Concat(_2913_paramTypes, Dafny.Sequence.UnicodeFromString("&")), _2914_typStr); + _2907_i = (_2907_i) + (BigInteger.One); } - Dafny.ISequence _2916_retTypeGen; + Dafny.ISequence _2915_retTypeGen; Dafny.ISequence _out1657; - _out1657 = DCOMP.COMP.GenType(_2905_retType, false, true); - _2916_retTypeGen = _out1657; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::FunctionWrapper::<::std::rc::Rc.UnicodeFromString(") -> ")), _2916_retTypeGen), Dafny.Sequence.UnicodeFromString(">>({\n")), _2911_allReadCloned), Dafny.Sequence.UnicodeFromString("::std::rc::Rc::new(move |")), _2913_paramsString), Dafny.Sequence.UnicodeFromString("| -> ")), _2916_retTypeGen), Dafny.Sequence.UnicodeFromString(" {\n")), _2909_recursiveGen), Dafny.Sequence.UnicodeFromString("\n})})")); + _out1657 = DCOMP.COMP.GenType(_2904_retType, false, true); + _2915_retTypeGen = _out1657; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::FunctionWrapper::<::std::rc::Rc.UnicodeFromString(") -> ")), _2915_retTypeGen), Dafny.Sequence.UnicodeFromString(">>({\n")), _2910_allReadCloned), Dafny.Sequence.UnicodeFromString("::std::rc::Rc::new(move |")), _2912_paramsString), Dafny.Sequence.UnicodeFromString("| -> ")), _2915_retTypeGen), Dafny.Sequence.UnicodeFromString(" {\n")), _2908_recursiveGen), Dafny.Sequence.UnicodeFromString("\n})})")); isOwned = true; isErased = false; } } else if (_source20.is_BetaRedex) { - Dafny.ISequence<_System._ITuple2> _2917___mcc_h219 = _source20.dtor_values; - DAST._IType _2918___mcc_h220 = _source20.dtor_retType; - DAST._IExpression _2919___mcc_h221 = _source20.dtor_expr; - DAST._IExpression _2920_expr = _2919___mcc_h221; - DAST._IType _2921_retType = _2918___mcc_h220; - Dafny.ISequence<_System._ITuple2> _2922_values = _2917___mcc_h219; + Dafny.ISequence<_System._ITuple2> _2916___mcc_h219 = _source20.dtor_values; + DAST._IType _2917___mcc_h220 = _source20.dtor_retType; + DAST._IExpression _2918___mcc_h221 = _source20.dtor_expr; + DAST._IExpression _2919_expr = _2918___mcc_h221; + DAST._IType _2920_retType = _2917___mcc_h220; + Dafny.ISequence<_System._ITuple2> _2921_values = _2916___mcc_h219; { - Dafny.ISequence> _2923_paramNames; - _2923_paramNames = Dafny.Sequence>.FromElements(); - Dafny.ISet> _2924_paramNamesSet; - _2924_paramNamesSet = Dafny.Set>.FromElements(); - BigInteger _2925_i; - _2925_i = BigInteger.Zero; - while ((_2925_i) < (new BigInteger((_2922_values).Count))) { - _2923_paramNames = Dafny.Sequence>.Concat(_2923_paramNames, Dafny.Sequence>.FromElements((((_2922_values).Select(_2925_i)).dtor__0).dtor_name)); - _2924_paramNamesSet = Dafny.Set>.Union(_2924_paramNamesSet, Dafny.Set>.FromElements((((_2922_values).Select(_2925_i)).dtor__0).dtor_name)); - _2925_i = (_2925_i) + (BigInteger.One); + Dafny.ISequence> _2922_paramNames; + _2922_paramNames = Dafny.Sequence>.FromElements(); + Dafny.ISet> _2923_paramNamesSet; + _2923_paramNamesSet = Dafny.Set>.FromElements(); + BigInteger _2924_i; + _2924_i = BigInteger.Zero; + while ((_2924_i) < (new BigInteger((_2921_values).Count))) { + _2922_paramNames = Dafny.Sequence>.Concat(_2922_paramNames, Dafny.Sequence>.FromElements((((_2921_values).Select(_2924_i)).dtor__0).dtor_name)); + _2923_paramNamesSet = Dafny.Set>.Union(_2923_paramNamesSet, Dafny.Set>.FromElements((((_2921_values).Select(_2924_i)).dtor__0).dtor_name)); + _2924_i = (_2924_i) + (BigInteger.One); } readIdents = Dafny.Set>.FromElements(); s = Dafny.Sequence.UnicodeFromString("{\n"); - Dafny.ISequence _2926_paramsString; - _2926_paramsString = Dafny.Sequence.UnicodeFromString(""); - _2925_i = BigInteger.Zero; - while ((_2925_i) < (new BigInteger((_2922_values).Count))) { - if ((_2925_i).Sign == 1) { - _2926_paramsString = Dafny.Sequence.Concat(_2926_paramsString, Dafny.Sequence.UnicodeFromString(", ")); + Dafny.ISequence _2925_paramsString; + _2925_paramsString = Dafny.Sequence.UnicodeFromString(""); + _2924_i = BigInteger.Zero; + while ((_2924_i) < (new BigInteger((_2921_values).Count))) { + if ((_2924_i).Sign == 1) { + _2925_paramsString = Dafny.Sequence.Concat(_2925_paramsString, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _2927_typStr; + Dafny.ISequence _2926_typStr; Dafny.ISequence _out1658; - _out1658 = DCOMP.COMP.GenType((((_2922_values).Select(_2925_i)).dtor__0).dtor_typ, false, true); - _2927_typStr = _out1658; - Dafny.ISequence _2928_valueGen; - bool _2929___v91; - bool _2930_valueErased; - Dafny.ISet> _2931_recIdents; + _out1658 = DCOMP.COMP.GenType((((_2921_values).Select(_2924_i)).dtor__0).dtor_typ, false, true); + _2926_typStr = _out1658; + Dafny.ISequence _2927_valueGen; + bool _2928___v91; + bool _2929_valueErased; + Dafny.ISet> _2930_recIdents; Dafny.ISequence _out1659; bool _out1660; bool _out1661; Dafny.ISet> _out1662; - DCOMP.COMP.GenExpr(((_2922_values).Select(_2925_i)).dtor__1, selfIdent, @params, true, out _out1659, out _out1660, out _out1661, out _out1662); - _2928_valueGen = _out1659; - _2929___v91 = _out1660; - _2930_valueErased = _out1661; - _2931_recIdents = _out1662; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("let ")), DCOMP.__default.escapeIdent((((_2922_values).Select(_2925_i)).dtor__0).dtor_name)), Dafny.Sequence.UnicodeFromString(": ")), _2927_typStr), Dafny.Sequence.UnicodeFromString(" = ")); - readIdents = Dafny.Set>.Union(readIdents, _2931_recIdents); - if (_2930_valueErased) { - _2928_valueGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned"), Dafny.Sequence.UnicodeFromString("(")), _2928_valueGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(((_2921_values).Select(_2924_i)).dtor__1, selfIdent, @params, true, out _out1659, out _out1660, out _out1661, out _out1662); + _2927_valueGen = _out1659; + _2928___v91 = _out1660; + _2929_valueErased = _out1661; + _2930_recIdents = _out1662; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("let ")), DCOMP.__default.escapeIdent((((_2921_values).Select(_2924_i)).dtor__0).dtor_name)), Dafny.Sequence.UnicodeFromString(": ")), _2926_typStr), Dafny.Sequence.UnicodeFromString(" = ")); + readIdents = Dafny.Set>.Union(readIdents, _2930_recIdents); + if (_2929_valueErased) { + _2927_valueGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned"), Dafny.Sequence.UnicodeFromString("(")), _2927_valueGen), Dafny.Sequence.UnicodeFromString(")")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, _2928_valueGen), Dafny.Sequence.UnicodeFromString(";\n")); - _2925_i = (_2925_i) + (BigInteger.One); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, _2927_valueGen), Dafny.Sequence.UnicodeFromString(";\n")); + _2924_i = (_2924_i) + (BigInteger.One); } - Dafny.ISequence _2932_recGen; - bool _2933_recOwned; - bool _2934_recErased; - Dafny.ISet> _2935_recIdents; + Dafny.ISequence _2931_recGen; + bool _2932_recOwned; + bool _2933_recErased; + Dafny.ISet> _2934_recIdents; Dafny.ISequence _out1663; bool _out1664; bool _out1665; Dafny.ISet> _out1666; - DCOMP.COMP.GenExpr(_2920_expr, selfIdent, _2923_paramNames, mustOwn, out _out1663, out _out1664, out _out1665, out _out1666); - _2932_recGen = _out1663; - _2933_recOwned = _out1664; - _2934_recErased = _out1665; - _2935_recIdents = _out1666; - readIdents = Dafny.Set>.Difference(_2935_recIdents, _2924_paramNamesSet); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, _2932_recGen), Dafny.Sequence.UnicodeFromString("\n}")); - isOwned = _2933_recOwned; - isErased = _2934_recErased; + DCOMP.COMP.GenExpr(_2919_expr, selfIdent, _2922_paramNames, mustOwn, out _out1663, out _out1664, out _out1665, out _out1666); + _2931_recGen = _out1663; + _2932_recOwned = _out1664; + _2933_recErased = _out1665; + _2934_recIdents = _out1666; + readIdents = Dafny.Set>.Difference(_2934_recIdents, _2923_paramNamesSet); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(s, _2931_recGen), Dafny.Sequence.UnicodeFromString("\n}")); + isOwned = _2932_recOwned; + isErased = _2933_recErased; } } else if (_source20.is_IIFE) { - Dafny.ISequence _2936___mcc_h222 = _source20.dtor_name; - DAST._IType _2937___mcc_h223 = _source20.dtor_typ; - DAST._IExpression _2938___mcc_h224 = _source20.dtor_value; - DAST._IExpression _2939___mcc_h225 = _source20.dtor_iifeBody; - DAST._IExpression _2940_iifeBody = _2939___mcc_h225; - DAST._IExpression _2941_value = _2938___mcc_h224; - DAST._IType _2942_tpe = _2937___mcc_h223; - Dafny.ISequence _2943_name = _2936___mcc_h222; + Dafny.ISequence _2935___mcc_h222 = _source20.dtor_name; + DAST._IType _2936___mcc_h223 = _source20.dtor_typ; + DAST._IExpression _2937___mcc_h224 = _source20.dtor_value; + DAST._IExpression _2938___mcc_h225 = _source20.dtor_iifeBody; + DAST._IExpression _2939_iifeBody = _2938___mcc_h225; + DAST._IExpression _2940_value = _2937___mcc_h224; + DAST._IType _2941_tpe = _2936___mcc_h223; + Dafny.ISequence _2942_name = _2935___mcc_h222; { - Dafny.ISequence _2944_valueGen; - bool _2945___v92; - bool _2946_valueErased; - Dafny.ISet> _2947_recIdents; + Dafny.ISequence _2943_valueGen; + bool _2944___v92; + bool _2945_valueErased; + Dafny.ISet> _2946_recIdents; Dafny.ISequence _out1667; bool _out1668; bool _out1669; Dafny.ISet> _out1670; - DCOMP.COMP.GenExpr(_2941_value, selfIdent, @params, true, out _out1667, out _out1668, out _out1669, out _out1670); - _2944_valueGen = _out1667; - _2945___v92 = _out1668; - _2946_valueErased = _out1669; - _2947_recIdents = _out1670; - if (_2946_valueErased) { - _2944_valueGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned"), Dafny.Sequence.UnicodeFromString("(")), _2944_valueGen), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_2940_value, selfIdent, @params, true, out _out1667, out _out1668, out _out1669, out _out1670); + _2943_valueGen = _out1667; + _2944___v92 = _out1668; + _2945_valueErased = _out1669; + _2946_recIdents = _out1670; + if (_2945_valueErased) { + _2943_valueGen = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyUnerasable::<_>::unerase_owned"), Dafny.Sequence.UnicodeFromString("(")), _2943_valueGen), Dafny.Sequence.UnicodeFromString(")")); } - readIdents = _2947_recIdents; - Dafny.ISequence _2948_valueTypeGen; + readIdents = _2946_recIdents; + Dafny.ISequence _2947_valueTypeGen; Dafny.ISequence _out1671; - _out1671 = DCOMP.COMP.GenType(_2942_tpe, false, true); - _2948_valueTypeGen = _out1671; - Dafny.ISequence _2949_bodyGen; - bool _2950___v93; - bool _2951_bodyErased; - Dafny.ISet> _2952_bodyIdents; + _out1671 = DCOMP.COMP.GenType(_2941_tpe, false, true); + _2947_valueTypeGen = _out1671; + Dafny.ISequence _2948_bodyGen; + bool _2949___v93; + bool _2950_bodyErased; + Dafny.ISet> _2951_bodyIdents; Dafny.ISequence _out1672; bool _out1673; bool _out1674; Dafny.ISet> _out1675; - DCOMP.COMP.GenExpr(_2940_iifeBody, selfIdent, @params, true, out _out1672, out _out1673, out _out1674, out _out1675); - _2949_bodyGen = _out1672; - _2950___v93 = _out1673; - _2951_bodyErased = _out1674; - _2952_bodyIdents = _out1675; - readIdents = Dafny.Set>.Union(readIdents, Dafny.Set>.Difference(_2952_bodyIdents, Dafny.Set>.FromElements((_2943_name)))); - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("{\nlet "), DCOMP.__default.escapeIdent((_2943_name))), Dafny.Sequence.UnicodeFromString(": ")), _2948_valueTypeGen), Dafny.Sequence.UnicodeFromString(" = ")), _2944_valueGen), Dafny.Sequence.UnicodeFromString(";\n")), _2949_bodyGen), Dafny.Sequence.UnicodeFromString("\n}")); + DCOMP.COMP.GenExpr(_2939_iifeBody, selfIdent, @params, true, out _out1672, out _out1673, out _out1674, out _out1675); + _2948_bodyGen = _out1672; + _2949___v93 = _out1673; + _2950_bodyErased = _out1674; + _2951_bodyIdents = _out1675; + readIdents = Dafny.Set>.Union(readIdents, Dafny.Set>.Difference(_2951_bodyIdents, Dafny.Set>.FromElements((_2942_name)))); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("{\nlet "), DCOMP.__default.escapeIdent((_2942_name))), Dafny.Sequence.UnicodeFromString(": ")), _2947_valueTypeGen), Dafny.Sequence.UnicodeFromString(" = ")), _2943_valueGen), Dafny.Sequence.UnicodeFromString(";\n")), _2948_bodyGen), Dafny.Sequence.UnicodeFromString("\n}")); isOwned = true; - isErased = _2951_bodyErased; + isErased = _2950_bodyErased; } } else if (_source20.is_Apply) { - DAST._IExpression _2953___mcc_h226 = _source20.dtor_expr; - Dafny.ISequence _2954___mcc_h227 = _source20.dtor_args; - Dafny.ISequence _2955_args = _2954___mcc_h227; - DAST._IExpression _2956_func = _2953___mcc_h226; + DAST._IExpression _2952___mcc_h226 = _source20.dtor_expr; + Dafny.ISequence _2953___mcc_h227 = _source20.dtor_args; + Dafny.ISequence _2954_args = _2953___mcc_h227; + DAST._IExpression _2955_func = _2952___mcc_h226; { - Dafny.ISequence _2957_funcString; - bool _2958___v94; - bool _2959_funcErased; - Dafny.ISet> _2960_recIdents; + Dafny.ISequence _2956_funcString; + bool _2957___v94; + bool _2958_funcErased; + Dafny.ISet> _2959_recIdents; Dafny.ISequence _out1676; bool _out1677; bool _out1678; Dafny.ISet> _out1679; - DCOMP.COMP.GenExpr(_2956_func, selfIdent, @params, false, out _out1676, out _out1677, out _out1678, out _out1679); - _2957_funcString = _out1676; - _2958___v94 = _out1677; - _2959_funcErased = _out1678; - _2960_recIdents = _out1679; - readIdents = _2960_recIdents; - Dafny.ISequence _2961_argString; - _2961_argString = Dafny.Sequence.UnicodeFromString(""); - BigInteger _2962_i; - _2962_i = BigInteger.Zero; - while ((_2962_i) < (new BigInteger((_2955_args).Count))) { - if ((_2962_i).Sign == 1) { - _2961_argString = Dafny.Sequence.Concat(_2961_argString, Dafny.Sequence.UnicodeFromString(", ")); + DCOMP.COMP.GenExpr(_2955_func, selfIdent, @params, false, out _out1676, out _out1677, out _out1678, out _out1679); + _2956_funcString = _out1676; + _2957___v94 = _out1677; + _2958_funcErased = _out1678; + _2959_recIdents = _out1679; + readIdents = _2959_recIdents; + Dafny.ISequence _2960_argString; + _2960_argString = Dafny.Sequence.UnicodeFromString(""); + BigInteger _2961_i; + _2961_i = BigInteger.Zero; + while ((_2961_i) < (new BigInteger((_2954_args).Count))) { + if ((_2961_i).Sign == 1) { + _2960_argString = Dafny.Sequence.Concat(_2960_argString, Dafny.Sequence.UnicodeFromString(", ")); } - Dafny.ISequence _2963_argExpr; - bool _2964_isOwned; - bool _2965_argErased; - Dafny.ISet> _2966_argIdents; + Dafny.ISequence _2962_argExpr; + bool _2963_isOwned; + bool _2964_argErased; + Dafny.ISet> _2965_argIdents; Dafny.ISequence _out1680; bool _out1681; bool _out1682; Dafny.ISet> _out1683; - DCOMP.COMP.GenExpr((_2955_args).Select(_2962_i), selfIdent, @params, false, out _out1680, out _out1681, out _out1682, out _out1683); - _2963_argExpr = _out1680; - _2964_isOwned = _out1681; - _2965_argErased = _out1682; - _2966_argIdents = _out1683; - if (_2964_isOwned) { - _2963_argExpr = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), _2963_argExpr); + DCOMP.COMP.GenExpr((_2954_args).Select(_2961_i), selfIdent, @params, false, out _out1680, out _out1681, out _out1682, out _out1683); + _2962_argExpr = _out1680; + _2963_isOwned = _out1681; + _2964_argErased = _out1682; + _2965_argIdents = _out1683; + if (_2963_isOwned) { + _2962_argExpr = Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("&"), _2962_argExpr); } - _2961_argString = Dafny.Sequence.Concat(_2961_argString, _2963_argExpr); - readIdents = Dafny.Set>.Union(readIdents, _2966_argIdents); - _2962_i = (_2962_i) + (BigInteger.One); + _2960_argString = Dafny.Sequence.Concat(_2960_argString, _2962_argExpr); + readIdents = Dafny.Set>.Union(readIdents, _2965_argIdents); + _2961_i = (_2961_i) + (BigInteger.One); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _2957_funcString), Dafny.Sequence.UnicodeFromString(").0")), Dafny.Sequence.UnicodeFromString("(")), _2961_argString), Dafny.Sequence.UnicodeFromString("))")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("(("), _2956_funcString), Dafny.Sequence.UnicodeFromString(").0")), Dafny.Sequence.UnicodeFromString("(")), _2960_argString), Dafny.Sequence.UnicodeFromString("))")); isOwned = true; isErased = false; } } else if (_source20.is_TypeTest) { - DAST._IExpression _2967___mcc_h228 = _source20.dtor_on; - Dafny.ISequence> _2968___mcc_h229 = _source20.dtor_dType; - Dafny.ISequence _2969___mcc_h230 = _source20.dtor_variant; - Dafny.ISequence _2970_variant = _2969___mcc_h230; - Dafny.ISequence> _2971_dType = _2968___mcc_h229; - DAST._IExpression _2972_on = _2967___mcc_h228; + DAST._IExpression _2966___mcc_h228 = _source20.dtor_on; + Dafny.ISequence> _2967___mcc_h229 = _source20.dtor_dType; + Dafny.ISequence _2968___mcc_h230 = _source20.dtor_variant; + Dafny.ISequence _2969_variant = _2968___mcc_h230; + Dafny.ISequence> _2970_dType = _2967___mcc_h229; + DAST._IExpression _2971_on = _2966___mcc_h228; { - Dafny.ISequence _2973_exprGen; - bool _2974___v95; - bool _2975_exprErased; - Dafny.ISet> _2976_recIdents; + Dafny.ISequence _2972_exprGen; + bool _2973___v95; + bool _2974_exprErased; + Dafny.ISet> _2975_recIdents; Dafny.ISequence _out1684; bool _out1685; bool _out1686; Dafny.ISet> _out1687; - DCOMP.COMP.GenExpr(_2972_on, selfIdent, @params, false, out _out1684, out _out1685, out _out1686, out _out1687); - _2973_exprGen = _out1684; - _2974___v95 = _out1685; - _2975_exprErased = _out1686; - _2976_recIdents = _out1687; - Dafny.ISequence _2977_dTypePath; + DCOMP.COMP.GenExpr(_2971_on, selfIdent, @params, false, out _out1684, out _out1685, out _out1686, out _out1687); + _2972_exprGen = _out1684; + _2973___v95 = _out1685; + _2974_exprErased = _out1686; + _2975_recIdents = _out1687; + Dafny.ISequence _2976_dTypePath; Dafny.ISequence _out1688; - _out1688 = DCOMP.COMP.GenPath(_2971_dType); - _2977_dTypePath = _out1688; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("matches!("), _2973_exprGen), Dafny.Sequence.UnicodeFromString(".as_ref(), ")), _2977_dTypePath), Dafny.Sequence.UnicodeFromString("::")), DCOMP.__default.escapeIdent(_2970_variant)), Dafny.Sequence.UnicodeFromString("{ .. })")); + _out1688 = DCOMP.COMP.GenPath(_2970_dType); + _2976_dTypePath = _out1688; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("matches!("), _2972_exprGen), Dafny.Sequence.UnicodeFromString(".as_ref(), ")), _2976_dTypePath), Dafny.Sequence.UnicodeFromString("::")), DCOMP.__default.escapeIdent(_2969_variant)), Dafny.Sequence.UnicodeFromString("{ .. })")); isOwned = true; isErased = true; - readIdents = _2976_recIdents; + readIdents = _2975_recIdents; } } else if (_source20.is_InitializationValue) { - DAST._IType _2978___mcc_h231 = _source20.dtor_typ; - DAST._IType _2979_typ = _2978___mcc_h231; + DAST._IType _2977___mcc_h231 = _source20.dtor_typ; + DAST._IType _2978_typ = _2977___mcc_h231; { - Dafny.ISequence _2980_typString; + Dafny.ISequence _2979_typString; Dafny.ISequence _out1689; - _out1689 = DCOMP.COMP.GenType(_2979_typ, false, false); - _2980_typString = _out1689; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _2980_typString), Dafny.Sequence.UnicodeFromString(" as std::default::Default>::default()")); + _out1689 = DCOMP.COMP.GenType(_2978_typ, false, false); + _2979_typString = _out1689; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("<"), _2979_typString), Dafny.Sequence.UnicodeFromString(" as std::default::Default>::default()")); isOwned = true; isErased = false; readIdents = Dafny.Set>.FromElements(); @@ -17646,96 +17615,96 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional>.FromElements(); } } else if (_source20.is_SetBoundedPool) { - DAST._IExpression _2981___mcc_h232 = _source20.dtor_of; - DAST._IExpression _2982_of = _2981___mcc_h232; + DAST._IExpression _2980___mcc_h232 = _source20.dtor_of; + DAST._IExpression _2981_of = _2980___mcc_h232; { - Dafny.ISequence _2983_exprGen; - bool _2984___v96; - bool _2985_exprErased; - Dafny.ISet> _2986_recIdents; + Dafny.ISequence _2982_exprGen; + bool _2983___v96; + bool _2984_exprErased; + Dafny.ISet> _2985_recIdents; Dafny.ISequence _out1690; bool _out1691; bool _out1692; Dafny.ISet> _out1693; - DCOMP.COMP.GenExpr(_2982_of, selfIdent, @params, false, out _out1690, out _out1691, out _out1692, out _out1693); - _2983_exprGen = _out1690; - _2984___v96 = _out1691; - _2985_exprErased = _out1692; - _2986_recIdents = _out1693; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2983_exprGen), Dafny.Sequence.UnicodeFromString(").iter()")); + DCOMP.COMP.GenExpr(_2981_of, selfIdent, @params, false, out _out1690, out _out1691, out _out1692, out _out1693); + _2982_exprGen = _out1690; + _2983___v96 = _out1691; + _2984_exprErased = _out1692; + _2985_recIdents = _out1693; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2982_exprGen), Dafny.Sequence.UnicodeFromString(").iter()")); isOwned = true; - isErased = _2985_exprErased; - readIdents = _2986_recIdents; + isErased = _2984_exprErased; + readIdents = _2985_recIdents; } } else if (_source20.is_SeqBoundedPool) { - DAST._IExpression _2987___mcc_h233 = _source20.dtor_of; - bool _2988___mcc_h234 = _source20.dtor_includeDuplicates; - bool _2989_includeDuplicates = _2988___mcc_h234; - DAST._IExpression _2990_of = _2987___mcc_h233; + DAST._IExpression _2986___mcc_h233 = _source20.dtor_of; + bool _2987___mcc_h234 = _source20.dtor_includeDuplicates; + bool _2988_includeDuplicates = _2987___mcc_h234; + DAST._IExpression _2989_of = _2986___mcc_h233; { - Dafny.ISequence _2991_exprGen; - bool _2992___v97; - bool _2993_exprErased; - Dafny.ISet> _2994_recIdents; + Dafny.ISequence _2990_exprGen; + bool _2991___v97; + bool _2992_exprErased; + Dafny.ISet> _2993_recIdents; Dafny.ISequence _out1694; bool _out1695; bool _out1696; Dafny.ISet> _out1697; - DCOMP.COMP.GenExpr(_2990_of, selfIdent, @params, false, out _out1694, out _out1695, out _out1696, out _out1697); - _2991_exprGen = _out1694; - _2992___v97 = _out1695; - _2993_exprErased = _out1696; - _2994_recIdents = _out1697; - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2991_exprGen), Dafny.Sequence.UnicodeFromString(").iter()")); - if (!(_2989_includeDuplicates)) { + DCOMP.COMP.GenExpr(_2989_of, selfIdent, @params, false, out _out1694, out _out1695, out _out1696, out _out1697); + _2990_exprGen = _out1694; + _2991___v97 = _out1695; + _2992_exprErased = _out1696; + _2993_recIdents = _out1697; + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("("), _2990_exprGen), Dafny.Sequence.UnicodeFromString(").iter()")); + if (!(_2988_includeDuplicates)) { s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::itertools::Itertools::unique("), s), Dafny.Sequence.UnicodeFromString(")")); } isOwned = true; - isErased = _2993_exprErased; - readIdents = _2994_recIdents; + isErased = _2992_exprErased; + readIdents = _2993_recIdents; } } else { - DAST._IExpression _2995___mcc_h235 = _source20.dtor_lo; - DAST._IExpression _2996___mcc_h236 = _source20.dtor_hi; - DAST._IExpression _2997_hi = _2996___mcc_h236; - DAST._IExpression _2998_lo = _2995___mcc_h235; + DAST._IExpression _2994___mcc_h235 = _source20.dtor_lo; + DAST._IExpression _2995___mcc_h236 = _source20.dtor_hi; + DAST._IExpression _2996_hi = _2995___mcc_h236; + DAST._IExpression _2997_lo = _2994___mcc_h235; { - Dafny.ISequence _2999_loString; - bool _3000___v98; - bool _3001_loErased; - Dafny.ISet> _3002_recIdentsLo; + Dafny.ISequence _2998_loString; + bool _2999___v98; + bool _3000_loErased; + Dafny.ISet> _3001_recIdentsLo; Dafny.ISequence _out1698; bool _out1699; bool _out1700; Dafny.ISet> _out1701; - DCOMP.COMP.GenExpr(_2998_lo, selfIdent, @params, true, out _out1698, out _out1699, out _out1700, out _out1701); - _2999_loString = _out1698; - _3000___v98 = _out1699; - _3001_loErased = _out1700; - _3002_recIdentsLo = _out1701; - Dafny.ISequence _3003_hiString; - bool _3004___v99; - bool _3005_hiErased; - Dafny.ISet> _3006_recIdentsHi; + DCOMP.COMP.GenExpr(_2997_lo, selfIdent, @params, true, out _out1698, out _out1699, out _out1700, out _out1701); + _2998_loString = _out1698; + _2999___v98 = _out1699; + _3000_loErased = _out1700; + _3001_recIdentsLo = _out1701; + Dafny.ISequence _3002_hiString; + bool _3003___v99; + bool _3004_hiErased; + Dafny.ISet> _3005_recIdentsHi; Dafny.ISequence _out1702; bool _out1703; bool _out1704; Dafny.ISet> _out1705; - DCOMP.COMP.GenExpr(_2997_hi, selfIdent, @params, true, out _out1702, out _out1703, out _out1704, out _out1705); - _3003_hiString = _out1702; - _3004___v99 = _out1703; - _3005_hiErased = _out1704; - _3006_recIdentsHi = _out1705; - if (!(_3001_loErased)) { - _2999_loString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2999_loString), Dafny.Sequence.UnicodeFromString(")")); + DCOMP.COMP.GenExpr(_2996_hi, selfIdent, @params, true, out _out1702, out _out1703, out _out1704, out _out1705); + _3002_hiString = _out1702; + _3003___v99 = _out1703; + _3004_hiErased = _out1704; + _3005_recIdentsHi = _out1705; + if (!(_3000_loErased)) { + _2998_loString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _2998_loString), Dafny.Sequence.UnicodeFromString(")")); } - if (!(_3005_hiErased)) { - _3003_hiString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _3003_hiString), Dafny.Sequence.UnicodeFromString(")")); + if (!(_3004_hiErased)) { + _3002_hiString = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::DafnyErasable::erase_owned("), _3002_hiString), Dafny.Sequence.UnicodeFromString(")")); } - s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::integer_range("), _2999_loString), Dafny.Sequence.UnicodeFromString(", ")), _3003_hiString), Dafny.Sequence.UnicodeFromString(")")); + s = Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.Concat(Dafny.Sequence.UnicodeFromString("::dafny_runtime::integer_range("), _2998_loString), Dafny.Sequence.UnicodeFromString(", ")), _3002_hiString), Dafny.Sequence.UnicodeFromString(")")); isOwned = true; isErased = true; - readIdents = Dafny.Set>.Union(_3002_recIdentsLo, _3006_recIdentsHi); + readIdents = Dafny.Set>.Union(_3001_recIdentsLo, _3005_recIdentsHi); } } } @@ -17743,32 +17712,32 @@ public static void GenExpr(DAST._IExpression e, DAST._IOptional s = Dafny.Sequence.Empty; s = Dafny.Sequence.UnicodeFromString("#![allow(warnings, unconditional_panic)]\n"); s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("extern crate dafny_runtime;\n")); - BigInteger _3007_i; - _3007_i = BigInteger.Zero; - while ((_3007_i) < (new BigInteger((p).Count))) { - Dafny.ISequence _3008_generated = Dafny.Sequence.Empty; + BigInteger _3006_i; + _3006_i = BigInteger.Zero; + while ((_3006_i) < (new BigInteger((p).Count))) { + Dafny.ISequence _3007_generated = Dafny.Sequence.Empty; Dafny.ISequence _out1706; - _out1706 = DCOMP.COMP.GenModule((p).Select(_3007_i), Dafny.Sequence>.FromElements()); - _3008_generated = _out1706; - if ((_3007_i).Sign == 1) { + _out1706 = DCOMP.COMP.GenModule((p).Select(_3006_i), Dafny.Sequence>.FromElements()); + _3007_generated = _out1706; + if ((_3006_i).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("\n")); } - s = Dafny.Sequence.Concat(s, _3008_generated); - _3007_i = (_3007_i) + (BigInteger.One); + s = Dafny.Sequence.Concat(s, _3007_generated); + _3006_i = (_3006_i) + (BigInteger.One); } return s; } public static Dafny.ISequence EmitCallToMain(Dafny.ISequence> fullName) { Dafny.ISequence s = Dafny.Sequence.Empty; s = Dafny.Sequence.UnicodeFromString("\nfn main() {\n"); - BigInteger _3009_i; - _3009_i = BigInteger.Zero; - while ((_3009_i) < (new BigInteger((fullName).Count))) { - if ((_3009_i).Sign == 1) { + BigInteger _3008_i; + _3008_i = BigInteger.Zero; + while ((_3008_i) < (new BigInteger((fullName).Count))) { + if ((_3008_i).Sign == 1) { s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("::")); } - s = Dafny.Sequence.Concat(s, (fullName).Select(_3009_i)); - _3009_i = (_3009_i) + (BigInteger.One); + s = Dafny.Sequence.Concat(s, (fullName).Select(_3008_i)); + _3008_i = (_3008_i) + (BigInteger.One); } s = Dafny.Sequence.Concat(s, Dafny.Sequence.UnicodeFromString("();\n}")); return s; diff --git a/Source/DafnyCore/Resolver/BoundsDiscovery.cs b/Source/DafnyCore/Resolver/BoundsDiscovery.cs index 8ac1512104..529affc6c9 100644 --- a/Source/DafnyCore/Resolver/BoundsDiscovery.cs +++ b/Source/DafnyCore/Resolver/BoundsDiscovery.cs @@ -775,10 +775,9 @@ static int SanitizeForBoundDiscovery(List boundVars, int bvi, BinaryExpr var fvThatSide = FreeVariables(thatSide); for (int j = boundVars.Count; bvi + 1 <= --j;) { if (fvThatSide.Contains(boundVars[j])) { - if (knownBounds[j] is ComprehensionExpr.IntBoundedPool) { - var jBounds = (ComprehensionExpr.IntBoundedPool)knownBounds[j]; + if (knownBounds[j] is ComprehensionExpr.IntBoundedPool jBounds) { Expression u = null; - if (op == BinaryExpr.ResolvedOpcode.Lt || op == BinaryExpr.ResolvedOpcode.Le) { + if (op is BinaryExpr.ResolvedOpcode.Lt or BinaryExpr.ResolvedOpcode.Le) { u = whereIsBv == 0 ? jBounds.UpperBound : jBounds.LowerBound; } else if (op == BinaryExpr.ResolvedOpcode.Gt || op == BinaryExpr.ResolvedOpcode.Ge) { u = whereIsBv == 0 ? jBounds.LowerBound : jBounds.UpperBound; diff --git a/Source/DafnyCore/Resolver/ExpressionTester.cs b/Source/DafnyCore/Resolver/ExpressionTester.cs index fa43076d63..8f678b6372 100644 --- a/Source/DafnyCore/Resolver/ExpressionTester.cs +++ b/Source/DafnyCore/Resolver/ExpressionTester.cs @@ -70,7 +70,7 @@ private bool CheckIsCompilable(Expression expr, ICodeContext codeContext, bool i Expression subexpressionsAreInsideBranchesOnlyExcept = null; if (expr is IdentifierExpr expression) { - if (expression.Var != null && expression.Var.IsGhost) { + if (expression.Var is { IsGhost: true }) { ReportError(ErrorId.r_ghost_var_only_in_specifications, expression, $"ghost variables such as {expression.Name} are allowed only in specification contexts. {expression.Name} was inferred to be ghost based on its declaration or initialization."); return false; @@ -279,6 +279,9 @@ private bool CheckIsCompilable(Expression expr, ICodeContext codeContext, bool i if (comprehensionExpr.Range != null) { isCompilable = CheckIsCompilable(comprehensionExpr.Range, codeContext) && isCompilable; } + if (comprehensionExpr is MapComprehension { TermLeft: { } termLeft }) { + isCompilable = CheckIsCompilable(termLeft, codeContext) && isCompilable; + } isCompilable = CheckIsCompilable(comprehensionExpr.Term, codeContext) && isCompilable; return isCompilable; @@ -546,10 +549,10 @@ public static bool UsesSpecFeatures(Expression expr) { return e.UncompilableBoundVars().Count != 0 || UsesSpecFeatures(e.LogicalBody()); } else if (expr is SetComprehension) { var e = (SetComprehension)expr; - return !e.Finite || e.UncompilableBoundVars().Count != 0 || (e.Range != null && UsesSpecFeatures(e.Range)) || (e.Term != null && UsesSpecFeatures(e.Term)); + return e.UncompilableBoundVars().Count != 0 || (e.Range != null && UsesSpecFeatures(e.Range)) || (e.Term != null && UsesSpecFeatures(e.Term)); } else if (expr is MapComprehension) { var e = (MapComprehension)expr; - return !e.Finite || e.UncompilableBoundVars().Count != 0 || UsesSpecFeatures(e.Range) || (e.TermLeft != null && UsesSpecFeatures(e.TermLeft)) || UsesSpecFeatures(e.Term); + return e.UncompilableBoundVars().Count != 0 || UsesSpecFeatures(e.Range) || (e.TermLeft != null && UsesSpecFeatures(e.TermLeft)) || UsesSpecFeatures(e.Term); } else if (expr is LambdaExpr) { var e = (LambdaExpr)expr; return UsesSpecFeatures(e.Term); diff --git a/Source/DafnyCore/Resolver/SubsetConstraintGhostChecker.cs b/Source/DafnyCore/Resolver/SubsetConstraintGhostChecker.cs index f7b3db3939..53f8ac32bd 100644 --- a/Source/DafnyCore/Resolver/SubsetConstraintGhostChecker.cs +++ b/Source/DafnyCore/Resolver/SubsetConstraintGhostChecker.cs @@ -83,14 +83,14 @@ public override bool Traverse(Expression expr, [CanBeNull] string field, [CanBeN if (e is QuantifierExpr or SetComprehension or MapComprehension) { foreach (var boundVar in e.BoundVars) { - if (boundVar.Type.NormalizeExpandKeepConstraints().AsRedirectingType is (SubsetTypeDecl or NewtypeDecl) and var declWithConstraint) { - if (!declWithConstraint.ConstraintIsCompilable) { + if (boundVar.Type.NormalizeExpandKeepConstraints().AsRedirectingType is (SubsetTypeDecl or NewtypeDecl) and var declWithConstraints) { + if (!declWithConstraints.ConstraintIsCompilable) { IToken finalToken = boundVar.tok; - if (declWithConstraint.Constraint != null && declWithConstraint.Constraint.tok.line != 0) { + if (declWithConstraints.Constraint != null && declWithConstraints.Constraint.tok.line != 0) { var errorCollector = new FirstErrorCollector(reporter.Options); - ExpressionTester.CheckIsCompilable(null, errorCollector, declWithConstraint.Constraint, - new CodeContextWrapper(declWithConstraint, true)); + ExpressionTester.CheckIsCompilable(null, errorCollector, declWithConstraints.Constraint, + new CodeContextWrapper(declWithConstraints, true)); if (errorCollector.Collected) { finalToken = new NestedToken(finalToken, errorCollector.FirstCollectedToken, "The constraint is not compilable because " + errorCollector.FirstCollectedMessage @@ -98,7 +98,7 @@ public override bool Traverse(Expression expr, [CanBeNull] string field, [CanBeN } } this.reporter.Error(MessageSource.Resolver, finalToken, - $"{boundVar.Type} is a {declWithConstraint.WhatKind} and its constraint is not compilable, " + + $"{boundVar.Type} is a {declWithConstraints.WhatKind} and its constraint is not compilable, " + $"hence it cannot yet be used as the type of a bound variable in {e.WhatKind}."); } } diff --git a/Source/DafnyCore/Rewriters/ExpectContracts.cs b/Source/DafnyCore/Rewriters/ExpectContracts.cs index 738996a252..e493d9d7b7 100644 --- a/Source/DafnyCore/Rewriters/ExpectContracts.cs +++ b/Source/DafnyCore/Rewriters/ExpectContracts.cs @@ -41,8 +41,7 @@ private Statement CreateContractExpectStatement(AttributedExpression expr, strin if (ExpressionTester.UsesSpecFeatures(exprToCheck)) { ReportWarning(ErrorId.rw_clause_cannot_be_compiled, tok, $"The {exprType} clause at this location cannot be compiled to be tested at runtime because it references ghost state."); - exprToCheck = new LiteralExpr(tok, true); - exprToCheck.Type = Type.Bool; + exprToCheck = Expression.CreateBoolLiteral(tok, true); msg += " (not compiled because it references ghost state)"; } var msgExpr = Expression.CreateStringLiteral(tok, msg); diff --git a/Source/DafnyCore/Verifier/BoogieGenerator.ExpressionTranslator.cs b/Source/DafnyCore/Verifier/BoogieGenerator.ExpressionTranslator.cs index 810e22102d..adca8fbdba 100644 --- a/Source/DafnyCore/Verifier/BoogieGenerator.ExpressionTranslator.cs +++ b/Source/DafnyCore/Verifier/BoogieGenerator.ExpressionTranslator.cs @@ -843,14 +843,14 @@ public Boogie.Expr TrExpr(Expression expr) { int bvWidth = e.E0.Type.IsBitVectorType ? e.E0.Type.AsBitVectorType.Width : -1; // -1 indicates "not a bitvector type" Boogie.Expr e0 = TrExpr(e.E0); if (e.ResolvedOp == BinaryExpr.ResolvedOpcode.InSet) { - return TrInSet(GetToken(binaryExpr), e0, e.E1, cce.NonNull(e.E0.Type), false, out var pr); // let TrInSet translate e.E1 + return TrInSet(GetToken(binaryExpr), e0, e.E1, e.E0.Type, false, out var pr); // let TrInSet translate e.E1 } else if (e.ResolvedOp == BinaryExpr.ResolvedOpcode.NotInSet) { - Boogie.Expr arg = TrInSet(GetToken(binaryExpr), e0, e.E1, cce.NonNull(e.E0.Type), false, out var pr); // let TrInSet translate e.E1 + Boogie.Expr arg = TrInSet(GetToken(binaryExpr), e0, e.E1, e.E0.Type, false, out var pr); // let TrInSet translate e.E1 return Boogie.Expr.Unary(GetToken(binaryExpr), UnaryOperator.Opcode.Not, arg); } else if (e.ResolvedOp == BinaryExpr.ResolvedOpcode.InMultiSet) { - return TrInMultiSet(GetToken(binaryExpr), e0, e.E1, cce.NonNull(e.E0.Type), false); // let TrInMultiSet translate e.E1 + return TrInMultiSet(GetToken(binaryExpr), e0, e.E1, e.E0.Type, false); // let TrInMultiSet translate e.E1 } else if (e.ResolvedOp == BinaryExpr.ResolvedOpcode.NotInMultiSet) { - Boogie.Expr arg = TrInMultiSet(GetToken(binaryExpr), e0, e.E1, cce.NonNull(e.E0.Type), false); // let TrInMultiSet translate e.E1 + Boogie.Expr arg = TrInMultiSet(GetToken(binaryExpr), e0, e.E1, e.E0.Type, false); // let TrInMultiSet translate e.E1 return Boogie.Expr.Unary(GetToken(binaryExpr), UnaryOperator.Opcode.Not, arg); } Boogie.Expr e1 = TrExpr(e.E1); @@ -1180,10 +1180,10 @@ public Boogie.Expr TrExpr(Expression expr) { return BoogieGenerator.FunctionCall(GetToken(binaryExpr), BuiltinFunction.SeqAppend, BoogieGenerator.TrType(binaryExpr.Type.AsSeqType.Arg), e0, e1); case BinaryExpr.ResolvedOpcode.InSeq: return BoogieGenerator.FunctionCall(GetToken(binaryExpr), BuiltinFunction.SeqContains, null, e1, - BoxIfNecessary(GetToken(binaryExpr), e0, cce.NonNull(e.E0.Type))); + BoxIfNecessary(GetToken(binaryExpr), e0, e.E0.Type)); case BinaryExpr.ResolvedOpcode.NotInSeq: Boogie.Expr arg = BoogieGenerator.FunctionCall(GetToken(binaryExpr), BuiltinFunction.SeqContains, null, e1, - BoxIfNecessary(GetToken(binaryExpr), e0, cce.NonNull(e.E0.Type))); + BoxIfNecessary(GetToken(binaryExpr), e0, e.E0.Type)); return Boogie.Expr.Unary(GetToken(binaryExpr), UnaryOperator.Opcode.Not, arg); case BinaryExpr.ResolvedOpcode.InMap: { bool finite = e.E1.Type.AsMapType.Finite; diff --git a/Source/DafnyCore/Verifier/BoogieGenerator.ExpressionWellformed.cs b/Source/DafnyCore/Verifier/BoogieGenerator.ExpressionWellformed.cs index 02af1554a1..1af27e9267 100644 --- a/Source/DafnyCore/Verifier/BoogieGenerator.ExpressionWellformed.cs +++ b/Source/DafnyCore/Verifier/BoogieGenerator.ExpressionWellformed.cs @@ -892,8 +892,7 @@ void CheckWellformedWithResult(Expression expr, WFOptions wfOptions, Bpl.Expr re case UnaryExpr unaryExpr: { UnaryExpr e = unaryExpr; CheckWellformed(e.E, wfOptions, locals, builder, etran); - if (e is ConversionExpr) { - var ee = (ConversionExpr)e; + if (e is ConversionExpr ee) { CheckResultToBeInType(unaryExpr.tok, ee.E, ee.ToType, locals, builder, etran, ee.messagePrefix); } diff --git a/Source/DafnyCore/Verifier/BoogieGenerator.Methods.cs b/Source/DafnyCore/Verifier/BoogieGenerator.Methods.cs index 1541a9dec2..c1ff659c74 100644 --- a/Source/DafnyCore/Verifier/BoogieGenerator.Methods.cs +++ b/Source/DafnyCore/Verifier/BoogieGenerator.Methods.cs @@ -622,9 +622,7 @@ private void AddMethodImpl(Method m, Boogie.Procedure proc, bool wellformednessP IsGhost = m.IsGhost }; - Expression parRange = new LiteralExpr(m.tok, true) { - Type = Type.Bool - }; + Expression parRange = Expression.CreateBoolLiteral(m.tok, true); foreach (var pre in m.Req) { parRange = Expression.CreateAnd(parRange, Substitute(pre.E, receiverSubst, substMap)); } diff --git a/Source/DafnyCore/Verifier/BoogieGenerator.TrStatement.cs b/Source/DafnyCore/Verifier/BoogieGenerator.TrStatement.cs index 647ee76a95..d6f88297b4 100644 --- a/Source/DafnyCore/Verifier/BoogieGenerator.TrStatement.cs +++ b/Source/DafnyCore/Verifier/BoogieGenerator.TrStatement.cs @@ -320,8 +320,7 @@ private void TrStmt(Statement stmt, BoogieStmtListBuilder builder, List GuessWitnesses(BoundVar x, Expression expr) { Contract.Requires(expr != null); var xType = x.Type.NormalizeExpand(); if (xType is BoolType) { - var lit = new LiteralExpr(x.tok, false); - lit.Type = Type.Bool; // resolve here + var lit = Expression.CreateBoolLiteral(x.tok, false); yield return lit; - lit = new LiteralExpr(x.tok, true); - lit.Type = Type.Bool; // resolve here + lit = Expression.CreateBoolLiteral(x.tok, true); yield return lit; yield break; // there are no more possible witnesses for booleans } else if (xType is CharType) { @@ -715,8 +713,7 @@ IEnumerable GuessWitnesses(BoundVar x, Expression expr) { } else if (xType.IsBitVectorType) { // TODO: something could be done for bitvectors } else if (xType.IsRefType) { - var lit = new LiteralExpr(x.tok); // null - lit.Type = xType; + var lit = new LiteralExpr(x.tok) { Type = xType }; // null yield return lit; } else if (xType.IsDatatype) { var dt = xType.AsDatatype; diff --git a/Source/DafnyCore/Verifier/BoogieGenerator.cs b/Source/DafnyCore/Verifier/BoogieGenerator.cs index d44e9acd79..82f2a38be2 100644 --- a/Source/DafnyCore/Verifier/BoogieGenerator.cs +++ b/Source/DafnyCore/Verifier/BoogieGenerator.cs @@ -4459,7 +4459,9 @@ private int ArithmeticSolver { return defaultSolver; } - Expression.IsIntLiteral(arg, out var value); + if (!Expression.IsIntLiteral(arg, out var value)) { + return 0; + } try { return (int)value; } catch (OverflowException) { diff --git a/Source/DafnyTestGeneration/Inlining/RemoveShortCircuitRewriter.cs b/Source/DafnyTestGeneration/Inlining/RemoveShortCircuitRewriter.cs index 9b6f12ebb9..0d43f20f5f 100644 --- a/Source/DafnyTestGeneration/Inlining/RemoveShortCircuitRewriter.cs +++ b/Source/DafnyTestGeneration/Inlining/RemoveShortCircuitRewriter.cs @@ -357,10 +357,10 @@ public override Expression CloneExpr(Expression expr) { new UnaryOpExpr(binaryExpr.E0.StartToken, UnaryOpExpr.Opcode.Not, identifierExpr), binaryExpr.E1, new IdentifierExpr(binaryExpr.E0.EndToken, tmpVarName), binaryExpr); case BinaryExpr { Op: BinaryExpr.Opcode.Imp } binaryExpr: return CreateIf(tmpVarName, Type.Bool, binaryExpr.E0, identifierExpr, binaryExpr.E1, - new LiteralExpr(binaryExpr.E0.EndToken, true), binaryExpr); + Expression.CreateBoolLiteral(binaryExpr.E0.EndToken, true), binaryExpr); case BinaryExpr { Op: BinaryExpr.Opcode.Exp } binaryExpr: return CreateIf(tmpVarName, Type.Bool, binaryExpr.E1, identifierExpr, binaryExpr.E0, - new LiteralExpr(binaryExpr.E1.EndToken, true), binaryExpr); + Expression.CreateBoolLiteral(binaryExpr.E1.EndToken, true), binaryExpr); case StmtExpr stmtExpr: newStmtStack.Last().Add(varDecl); updateStmt = new UpdateStmt(stmtExpr.E.RangeToken, new List { identifierExpr }, diff --git a/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBounds.dfy b/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBounds.dfy index 0df826126f..661c20a8a6 100644 --- a/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBounds.dfy +++ b/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBounds.dfy @@ -38,6 +38,8 @@ method Main() print x0, " ", x1, " ", x2, " ", x3, " ", x4, " ", x5, "\n"; x0, x1, x2, x3, x4, x5 := OtherEq(true, {}, [], map[198 := 200], multiset{}, iset{}, imap[]); print x0, " ", x1, " ", x2, " ", x3, " ", x4, " ", x5, "\n"; + + EnumerateOverInfiniteCollections(); } predicate P(x: int) @@ -69,3 +71,35 @@ method OtherEq(b: bool, s: set, t: seq, u: map, v: mult x' := var x'' :| x'' == x; x''; } } + +predicate LessThanFour(x: int) { + x < 4 +} + +method EnumerateOverInfiniteCollections() { + // ===== iset + + var s := {3, 3, 3, 5}; + + // Once, the following RHS caused "u" to be auto-ghost. (Oddly enough, when using the same RHS as a + // separate assignment, the RHS was not considered to be ghost. So, we test both here.) + var u := iset x | x in s; + u := iset x | x in s; + + // Once, the compilation of the following was rejected, because an iset was not considered enumerable. But it is. + var y :| y in u && LessThanFour(y); // an iset is enumerable, so it's compilable + print y, "\n"; // 3 + + // ===== imap + + var m := map[3 := true, 5 := false]; + + // Once, the following RHS caused "u" to be auto-ghost. (Oddly enough, when using the same RHS as a + // separate assignment, the RHS was not considered to be ghost. So, we test both here.) + var w := imap x | x in m :: true; + w := imap x | x in m :: true; + + // Once, the compilation of the following was rejected, because an imap was not considered enumerable. But it is. + var z :| z in w && LessThanFour(z); // an imap is enumerable, so it's compilable + print z, "\n"; // 3 +} diff --git a/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBounds.dfy.expect b/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBounds.dfy.expect index 909a58326d..2ca3a35b6a 100644 --- a/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBounds.dfy.expect +++ b/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBounds.dfy.expect @@ -5,3 +5,5 @@ -2 {} [] map[198 := 200] multiset{} {} map[] {} [] map[198 := 200] multiset{} {} map[] +3 +3 diff --git a/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBoundsErrors.dfy b/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBoundsErrors.dfy index 107447951d..168dfd51d7 100644 --- a/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBoundsErrors.dfy +++ b/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBoundsErrors.dfy @@ -77,3 +77,22 @@ lemma MaxExists(ks: set) MaxExists(ks - {k}); } } + +predicate LessThanFour(x: int) { + x < 4 +} + +ghost function PlusOne(x: int): int { + x + 1 +} + +method EnumerateOverInfiniteCollections() { + var s := {3, 3, 3, 5}; + var l; + // Once, the TermLeft of map comprehensions was not checked for ghost-ness. Thus, the following assignment + // had been allowed by the resolver, which caused the compiler to emit malformed target code. (Oddly enough, + // when using the same RHS as an initializing assignment, the ghost-ness was detected and caused the variable + // to become auto-ghost which means an error is reported about the print statement not being compilable.) + l := map x | x in s && LessThanFour(x) :: PlusOne(x) := x; + print l, "\n"; // map[3 := 3] +} diff --git a/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBoundsErrors.dfy.expect b/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBoundsErrors.dfy.expect index 22697debbe..0d086a60af 100644 --- a/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBoundsErrors.dfy.expect +++ b/Source/IntegrationTests/TestFiles/LitTests/LitTest/dafny0/DiscoverBoundsErrors.dfy.expect @@ -4,4 +4,5 @@ DiscoverBoundsErrors.dfy(13,7): Error: quantifiers in non-ghost contexts must be DiscoverBoundsErrors.dfy(31,2): Error: forall statements in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce or compile a bounded set of values for 'i' DiscoverBoundsErrors.dfy(34,2): Error: forall statements in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce or compile a bounded set of values for 'i' DiscoverBoundsErrors.dfy(52,2): Error: forall statements in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce or compile a bounded set of values for 'k' -6 resolution/type errors detected in DiscoverBoundsErrors.dfy +DiscoverBoundsErrors.dfy(96,44): Error: a call to a ghost function is allowed only in specification contexts (consider declaring the function without the 'ghost' keyword) +7 resolution/type errors detected in DiscoverBoundsErrors.dfy diff --git a/docs/dev/news/4975.fix b/docs/dev/news/4975.fix index fe67d2072d..3ed8ae7c3c 100644 --- a/docs/dev/news/4975.fix +++ b/docs/dev/news/4975.fix @@ -1 +1 @@ -The `{:rlimit N}` attribute, which multiplied `N` by 1000 before sending it to Z3, is deprecated in favor of the `{:resource_limit N}` attribute, which can accept string arguments with exponential notation for brevity. The `--resource-limit` flag also now omits the multiplication and allows exponential notation. +The `{:rlimit N}` attribute, which multiplied `N` by 1000 before sending it to Z3, is deprecated in favor of the `{:resource_limit N}` attribute, which can accept string arguments with exponential notation for brevity. The `--resource-limit` and `/rlimit` flags also now omit the multiplication, and the former allows exponential notation. diff --git a/docs/dev/news/5041.fix b/docs/dev/news/5041.fix new file mode 100644 index 0000000000..082a0e1777 --- /dev/null +++ b/docs/dev/news/5041.fix @@ -0,0 +1,3 @@ +Detect the same ghost usage in initializing assignments as in other expressions. The effect of this fix is to allow more iset/imap comprehensions to be compiled. + +Also, report errors if the LHS of `:=` in compiled `map`/`imap` comprehensions contains ghosts.