File tree 3 files changed +5
-4
lines changed
3 files changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -901,8 +901,9 @@ func (ctx Ctx) unaryExpr(e *ast.UnaryExpr) coq.Expr {
901
901
if e .Op == token .AND {
902
902
if x , ok := e .X .(* ast.IndexExpr ); ok {
903
903
// e is &a[b] where x is a.b
904
- if _ , ok := ctx .typeOf (x .X ).(* types.Slice ); ok {
904
+ if xTy , ok := ctx .typeOf (x .X ).(* types.Slice ); ok {
905
905
return coq .NewCallExpr ("SliceRef" ,
906
+ ctx .coqTypeOfType (e , xTy .Elem ()),
906
907
ctx .expr (x .X ), ctx .expr (x .Index ))
907
908
}
908
909
}
Original file line number Diff line number Diff line change @@ -1265,7 +1265,7 @@ Definition testSliceOps: val :=
1265
1265
let : "v1" := SliceGet uint64T "x" #2 in
1266
1266
let : "v2" := SliceSubslice uint64T "x" #2 #3 in
1267
1267
let : "v3" := SliceTake "x" #3 in
1268
- let : "v4" := SliceRef "x" #2 in
1268
+ let : "v4" := SliceRef uint64T "x" #2 in
1269
1269
let : "ok" := ref_to boolT #true in
1270
1270
"ok" <-[boolT] (![boolT] "ok") && ("v1" = #10);;
1271
1271
"ok" <-[boolT] (![boolT] "ok") && (SliceGet uint64T "v2" #0 = #10);;
Original file line number Diff line number Diff line change @@ -752,7 +752,7 @@ Definition sliceOps: val :=
752
752
let : "v1" := SliceGet uint64T "x" #2 in
753
753
let : "v2" := SliceSubslice uint64T "x" #2 #3 in
754
754
let : "v3" := SliceTake "x" #3 in
755
- let : "v4" := SliceRef "x" #2 in
755
+ let : "v4" := SliceRef uint64T "x" #2 in
756
756
"v1" + SliceGet uint64T "v2" #0 + SliceGet uint64T "v3" #1 + ![uint64T] "v4".
757
757
758
758
Definition makeSingletonSlice: val :=
@@ -769,7 +769,7 @@ Definition sliceOfThings := struct.decl [
769
769
770
770
Definition sliceOfThings__getThingRef: val :=
771
771
rec: "sliceOfThings__getThingRef" "ts" "i" :=
772
- SliceRef (struct .get sliceOfThings "things" "ts") "i".
772
+ SliceRef (struct .t thing) ( struct . get sliceOfThings "things" "ts") "i".
773
773
774
774
Definition makeAlias: val :=
775
775
rec: "makeAlias" <> :=
You can’t perform that action at this time.
0 commit comments