diff --git a/core/math/big/doc.odin b/core/math/big/doc.odin index f5e0900f5..0f9b88d01 100644 --- a/core/math/big/doc.odin +++ b/core/math/big/doc.odin @@ -2,27 +2,5 @@ A BigInt implementation in Odin. For the theoretical underpinnings, see Knuth's The Art of Computer Programming, Volume 2, section 4.3. The code started out as an idiomatic source port of libTomMath, which is in the public domain, with thanks. - -========================== Low-level routines ========================== - -IMPORTANT: `internal_*` procedures make certain assumptions about their input. - -The public functions that call them are expected to satisfy their sanity check requirements. -This allows `internal_*` call `internal_*` without paying this overhead multiple times. - -Where errors can occur, they are of course still checked and returned as appropriate. - -When importing `math:core/big` to implement an involved algorithm of your own, you are welcome -to use these procedures instead of their public counterparts. - -Most inputs and outputs are expected to be passed an initialized `Int`, for example. -Exceptions include `quotient` and `remainder`, which are allowed to be `nil` when the calling code doesn't need them. - -Check the comments above each `internal_*` implementation to see what constraints it expects to have met. - -We pass the custom allocator to procedures by default using the pattern `context.allocator = allocator`. -This way we don't have to add `, allocator` at the end of each call. - -TODO: Handle +/- Infinity and NaN. */ package math_big diff --git a/core/math/big/internal.odin b/core/math/big/internal.odin index 5085898e5..dbcd16509 100644 --- a/core/math/big/internal.odin +++ b/core/math/big/internal.odin @@ -1,10 +1,32 @@ -//+ignore /* Copyright 2021 Jeroen van Rijn . Made available under Odin's BSD-3 license. + + ========================== Low-level routines ========================== + + IMPORTANT: `internal_*` procedures make certain assumptions about their input. + + The public functions that call them are expected to satisfy their sanity check requirements. + This allows `internal_*` call `internal_*` without paying this overhead multiple times. + + Where errors can occur, they are of course still checked and returned as appropriate. + + When importing `math:core/big` to implement an involved algorithm of your own, you are welcome + to use these procedures instead of their public counterparts. + + Most inputs and outputs are expected to be passed an initialized `Int`, for example. + Exceptions include `quotient` and `remainder`, which are allowed to be `nil` when the calling code doesn't need them. + + Check the comments above each `internal_*` implementation to see what constraints it expects to have met. + + We pass the custom allocator to procedures by default using the pattern `context.allocator = allocator`. + This way we don't have to add `, allocator` at the end of each call. + + TODO: Handle +/- Infinity and NaN. */ +//+ignore package math_big import "core:mem" diff --git a/core/math/big/tune.odin b/core/math/big/tune.odin index 64a73b656..78a20c12b 100644 --- a/core/math/big/tune.odin +++ b/core/math/big/tune.odin @@ -1,4 +1,3 @@ -//+ignore /* Copyright 2021 Jeroen van Rijn . Made available under Odin's BSD-3 license. @@ -8,7 +7,7 @@ The code started out as an idiomatic source port of libTomMath, which is in the public domain, with thanks. */ - +//+ignore package math_big import "core:time" diff --git a/src/docs_writer.cpp b/src/docs_writer.cpp index 94b43be99..762a2afe1 100644 --- a/src/docs_writer.cpp +++ b/src/docs_writer.cpp @@ -513,7 +513,7 @@ OdinDocTypeIndex odin_doc_type(OdinDocWriter *w, Type *type) { break; case Type_Generic: doc_type.kind = OdinDocType_Generic; - doc_type.name = odin_doc_write_string(w, type->Generic.name); + doc_type.name = odin_doc_write_string(w, type->Generic.entity->token.string); if (type->Generic.specialized) { doc_type.types = odin_doc_type_as_slice(w, type->Generic.specialized); } diff --git a/src/types.cpp b/src/types.cpp index f621d4346..6162a5aa8 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -3933,7 +3933,7 @@ gbString write_type_to_string(gbString str, Type *type) { str = gb_string_appendc(str, " = "); str = write_exact_value_to_string(str, var->Constant.value); } else { - str = gb_string_appendc(str, "="); + str = gb_string_appendc(str, " := "); str = write_exact_value_to_string(str, var->Constant.value); } continue; @@ -3961,14 +3961,10 @@ gbString write_type_to_string(gbString str, Type *type) { str = gb_string_appendc(str, "typeid/"); str = write_type_to_string(str, var->type); } else { - if (var->kind == Entity_TypeName) { - str = gb_string_appendc(str, "$"); - str = gb_string_append_length(str, name.text, name.len); - str = gb_string_appendc(str, "="); - str = write_type_to_string(str, var->type); - } else { - str = gb_string_appendc(str, "typeid"); - } + str = gb_string_appendc(str, "$"); + str = gb_string_append_length(str, name.text, name.len); + str = gb_string_appendc(str, "="); + str = write_type_to_string(str, var->type); } } }