From 93bad850eb9db0bc9be89999e566b4a78bd35fee Mon Sep 17 00:00:00 2001 From: Max Horn Date: Thu, 19 Sep 2024 13:55:38 +0200 Subject: [PATCH] Add some type assertions (#831) ... to improve type stability in some situations. Also remove two redundant dict writes: get! already stores these --- src/ideal/IdealTypes.jl | 2 +- src/matrix/MatrixTypes.jl | 2 +- src/module/ModuleTypes.jl | 4 ++-- src/number/NumberTypes.jl | 6 ++---- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/ideal/IdealTypes.jl b/src/ideal/IdealTypes.jl index 475536639..22b011f7c 100644 --- a/src/ideal/IdealTypes.jl +++ b/src/ideal/IdealTypes.jl @@ -12,7 +12,7 @@ mutable struct IdealSet{T <: AbstractAlgebra.NCRingElem} <: Set function IdealSet{T}(R::PolyRing) where T return get!(IdealSetID, R) do new(R) - end + end::IdealSet{T} end end diff --git a/src/matrix/MatrixTypes.jl b/src/matrix/MatrixTypes.jl index f56fb872a..dca0cc647 100644 --- a/src/matrix/MatrixTypes.jl +++ b/src/matrix/MatrixTypes.jl @@ -14,7 +14,7 @@ mutable struct matrix_space{T <: Nemo.RingElem} <: Set function matrix_space{T}(R::PolyRing, r::Int, c::Int) where T return get!(MatrixSpaceID, (R, r, c)) do new{T}(R, r, c) - end + end::matrix_space{T} end end diff --git a/src/module/ModuleTypes.jl b/src/module/ModuleTypes.jl index 58013aed6..819743c7d 100644 --- a/src/module/ModuleTypes.jl +++ b/src/module/ModuleTypes.jl @@ -13,7 +13,7 @@ mutable struct FreeMod{T <: Nemo.RingElem} <: Module{T} function FreeMod{T}(R::PolyRing, r::Int) where T return get!(FreeModID, (R, r)) do new(R, r) - end + end::FreeMod{T} end end @@ -63,7 +63,7 @@ mutable struct ModuleClass{T <: Nemo.RingElem} <: Set function ModuleClass{T}(R::PolyRing) where T return get!(ModuleClassID, R) do new(R) - end + end::ModuleClass{T} end end diff --git a/src/number/NumberTypes.jl b/src/number/NumberTypes.jl index 142dfd763..0b5a6db62 100644 --- a/src/number/NumberTypes.jl +++ b/src/number/NumberTypes.jl @@ -35,10 +35,9 @@ mutable struct Integers <: Ring return get!(IntegersID, :ZZ) do ptr = libSingular.nInitChar(libSingular.n_Z, Ptr{Nothing}(0)) d = new(ptr, 0) - IntegersID[:ZZ] = d finalizer(_Ring_finalizer, d) return d - end + end::Integers end end @@ -78,10 +77,9 @@ mutable struct Rationals <: Field return get!(RationalsID, :QQ) do ptr = libSingular.nInitChar(libSingular.n_Q, Ptr{Nothing}(0)) d = new(ptr, 0) - RationalsID[:QQ] = d finalizer(_Ring_finalizer, d) return d - end + end::Rationals end end