diff --git a/src/caller.jl b/src/caller.jl index ab77ed708..c8a097b3e 100644 --- a/src/caller.jl +++ b/src/caller.jl @@ -192,17 +192,11 @@ function create_ring_from_singular_ring(r::libSingular.ring_ptr) minpoly = F(libSingular.algExt_GetMinpoly(c, F.ptr)) basering = N_AlgExtField(libSingular.nCopyCoeff(c), minpoly) T = n_algExt - elseif libSingular.nCoeff_is_Nemo_Field(c) + elseif libSingular.nCoeff_is_Nemo_Field(c) || libSingular.nCoeff_is_Nemo_Ring(c) cf = libSingular.nCopyCoeff(c) data_ptr = libSingular.nGetCoeffData(cf) R = unsafe_pointer_to_objref(data_ptr) - basering = N_Field{elem_type(R)}(R) - T = elem_type(basering) - elseif libSingular.nCoeff_is_Nemo_Ring(c) - cf = libSingular.nCopyCoeff(c) - data_ptr = libSingular.nGetCoeffData(cf) - R = unsafe_pointer_to_objref(data_ptr) - basering = N_Ring{elem_type(R)}(R) + basering = CoefficientRing(R) # FIXME: should we set cache=false ? T = elem_type(basering) else basering = N_UnknownSingularCoefficientRing(libSingular.nCopyCoeff(c))