diff options
author | MichalMoskal <unknown> | 2010-08-18 00:13:29 +0000 |
---|---|---|
committer | MichalMoskal <unknown> | 2010-08-18 00:13:29 +0000 |
commit | a54af4e97ccf24b7bd8802d7411b67bc2b4c5e55 (patch) | |
tree | d45fdf422341f6b8df670c0bd8b3e7c5fff9b782 /Source/VCExpr | |
parent | 94b94b49c7efdf737c6b54fb6d7ae9dd2ab189e4 (diff) |
Make /typeEncoding:m work with arrays
Diffstat (limited to 'Source/VCExpr')
-rw-r--r-- | Source/VCExpr/TypeErasure.cs | 2 | ||||
-rw-r--r-- | Source/VCExpr/TypeErasureArguments.cs | 4 | ||||
-rw-r--r-- | Source/VCExpr/TypeErasurePremisses.cs | 2 | ||||
-rw-r--r-- | Source/VCExpr/VCExprASTVisitors.cs | 1 |
4 files changed, 5 insertions, 4 deletions
diff --git a/Source/VCExpr/TypeErasure.cs b/Source/VCExpr/TypeErasure.cs index c4deb76c..5029ba53 100644 --- a/Source/VCExpr/TypeErasure.cs +++ b/Source/VCExpr/TypeErasure.cs @@ -727,7 +727,7 @@ Contract.Ensures(Contract.ValueAtReturn(out var) != null); [Pure]
public override bool UnchangedType(Type type) {
Contract.Requires(type != null);
- return type.IsInt || type.IsBool || type.IsBv || (type.IsMap && CommandLineOptions.Clo.UseArrayTheory);
+ return type.IsInt || type.IsBool || type.IsBv || (type.IsMap && CommandLineOptions.Clo.MonomorphicArrays);
}
public VCExpr Cast(VCExpr expr, Type toType) {
diff --git a/Source/VCExpr/TypeErasureArguments.cs b/Source/VCExpr/TypeErasureArguments.cs index c1a32aba..62bc72ea 100644 --- a/Source/VCExpr/TypeErasureArguments.cs +++ b/Source/VCExpr/TypeErasureArguments.cs @@ -192,7 +192,7 @@ Contract.Ensures(Contract.ValueAtReturn(out store) != null); storeTypes[i] = AxBuilder.T;
}
// Fill in the map type
- if (CommandLineOptions.Clo.UseArrayTheory) {
+ if (CommandLineOptions.Clo.MonomorphicArrays) {
selectTypes[i] = abstractedType;
storeTypes[i] = abstractedType;
} else {
@@ -223,7 +223,7 @@ Contract.Ensures(Contract.ValueAtReturn(out store) != null); }
i++;
// Fill in the map type which is the output of the store function
- if (CommandLineOptions.Clo.UseArrayTheory)
+ if (CommandLineOptions.Clo.MonomorphicArrays)
storeTypes[i] = abstractedType;
else
storeTypes[i] = AxBuilder.U;
diff --git a/Source/VCExpr/TypeErasurePremisses.cs b/Source/VCExpr/TypeErasurePremisses.cs index 9d5eef26..cf0bcaa4 100644 --- a/Source/VCExpr/TypeErasurePremisses.cs +++ b/Source/VCExpr/TypeErasurePremisses.cs @@ -634,7 +634,7 @@ Contract.Requires(var != null); mapTypeParams.Add(var);
}
- if (CommandLineOptions.Clo.UseArrayTheory)
+ if (CommandLineOptions.Clo.MonomorphicArrays)
mapTypeSynonym = abstractedType;
else
mapTypeSynonym = new CtorType(Token.NoToken, synonymDecl, mapTypeParams);
diff --git a/Source/VCExpr/VCExprASTVisitors.cs b/Source/VCExpr/VCExprASTVisitors.cs index 4a13cbb5..1675a3a7 100644 --- a/Source/VCExpr/VCExprASTVisitors.cs +++ b/Source/VCExpr/VCExprASTVisitors.cs @@ -256,6 +256,7 @@ namespace Microsoft.Boogie.VCExprAST { Contract.Requires(node != null);
Result res = StandardResult(node, arg);
+
if (node.TypeParamArity == 0) {
Contract.Assert(node.Op != null);
VCExprOp op = node.Op;
|