diff --git a/src/ariths.c b/src/ariths.c index 743e91f6fd..ebf8f23f94 100644 --- a/src/ariths.c +++ b/src/ariths.c @@ -1741,7 +1741,7 @@ static Int InitKernel ( assert(ZeroMutFuncs[t1] == 0); ZeroMutFuncs[t1] = ZeroMutObject; } - InstallZeroObject(0); + InstallZeroMutObject(0); /* make and install the 'AINV' arithmetic operation */ for ( t1 = FIRST_REAL_TNUM; t1 <= LAST_REAL_TNUM; t1++ ) { diff --git a/src/opers.c b/src/opers.c index 16b2ece5d4..18de957f43 100644 --- a/src/opers.c +++ b/src/opers.c @@ -3943,10 +3943,16 @@ void ChangeDoOperations ( if ( oper == PowOper ) { InstallPowObject(verb); } if ( oper == CommOper ) { InstallCommObject(verb); } if ( oper == ModOper ) { InstallModObject(verb); } + if ( oper == InvOp ) { InstallInvObject(verb); } if ( oper == OneOp ) { InstallOneObject(verb); } if ( oper == AInvOp ) { InstallAinvObject(verb); } - if ( oper == ZeroOp ) { InstallZeroObject(verb); } + if ( oper == ZEROOp ) { InstallZeroObject(verb); } + + if ( oper == InvMutOp ) { InstallInvMutObject(verb); } + if ( oper == OneMutOp ) { InstallOneMutObject(verb); } + if ( oper == AdditiveInverseOp ) { InstallAinvMutObject(verb); } + if ( oper == ZeroOp ) { InstallZeroMutObject(verb); } /* be verbose */ if ( verb ) { diff --git a/src/range.c b/src/range.c index bcdb5948f0..95f32ad17d 100644 --- a/src/range.c +++ b/src/range.c @@ -623,21 +623,6 @@ Obj PosRange ( } } - /* I have no idea how a record can ever be equal to an integer. I'll leave - * the code in comments for a while, in case someone digs out what this is - * good for. FL - * */ - /* for a record compare every entry */ -/* else if ( TNUM_OBJ(val) == T_PREC ) { - for ( k = istart+1; k <= lenList; k++ ) { - if ( EQ( INTOBJ_INT( low + (k-1) * inc ), val ) ) - break; - } - if ( lenList < k ) { - k = 0; - } - } */ - /* otherwise it can not be an element of the range */ else { k = 0; diff --git a/tst/test-error/trace.g b/tst/test-error/trace.g new file mode 100644 index 0000000000..3f3be03bfb --- /dev/null +++ b/tst/test-error/trace.g @@ -0,0 +1,9 @@ +m:=ImmutableMatrix(GF(2),IdentityMat(2,GF(2)));; + +InverseMutable(m); +TraceMethods(InverseMutable); +InverseMutable(m); + +AdditiveInverseMutable(m); +TraceMethods(AdditiveInverseMutable); +AdditiveInverseMutable(m); diff --git a/tst/test-error/trace.g.out b/tst/test-error/trace.g.out new file mode 100644 index 0000000000..388b1ed3a9 --- /dev/null +++ b/tst/test-error/trace.g.out @@ -0,0 +1,16 @@ +gap> m:=ImmutableMatrix(GF(2),IdentityMat(2,GF(2)));; +gap> +gap> InverseMutable(m); + +gap> TraceMethods(InverseMutable); +gap> InverseMutable(m); +#I InverseMutable: for GF2 matrix at src/vecgf2.c:fail + +gap> +gap> AdditiveInverseMutable(m); + +gap> TraceMethods(AdditiveInverseMutable); +gap> AdditiveInverseMutable(m); +#I AdditiveInverseMutable: for GF2 matrix at GAPROOT/lib/vecmat.gi:763 + +gap> QUIT;