From 953b3d0f77fd36e332dfcd9e054790163efb2730 Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Sat, 04 Apr 2026 17:24:02 +0000 Subject: [PATCH] doc: clarify string pooling error --- --- a/crates/jrsonnet-evaluator/src/typed/conversions.rs +++ b/crates/jrsonnet-evaluator/src/typed/conversions.rs @@ -5,23 +5,23 @@ use jrsonnet_types::{ComplexValType, ValType}; use crate::{ + ObjValue, ObjValueBuilder, Result, ResultExt, Thunk, Val, arr::{ArrValue, BytesArray}, bail, function::FuncVal, typed::CheckType, val::{IndexableVal, NumValue, StrValue, ThunkMapper}, - ObjValue, ObjValueBuilder, Result, ResultExt, Thunk, Val, }; #[doc(hidden)] pub mod __typed_macro_prelude { pub use ::jrsonnet_evaluator::{ + IStr, ObjValue, ObjValueBuilder, State, Val, error::{ErrorKind, Result as JrResult}, typed::{ CheckType, ComplexValType, FromUntyped, IntoUntyped, ParseTypedObj, SerializeTypedObj, Typed, }, - IStr, ObjValue, ObjValueBuilder, State, Val, }; } pub use jrsonnet_macros::{FromUntyped, IntoUntyped, Typed}; --- a/crates/jrsonnet-interner/src/lib.rs +++ b/crates/jrsonnet-interner/src/lib.rs @@ -175,10 +175,9 @@ // destructor is called, but instead re-initialize the TLS with the empty pool. // Allow non-pooled Drop in this case. // https://github.com/CertainLach/jrsonnet/issues/98#issuecomment-1591624016 - // - // However, if pool is not empty, most likely this is issue #113, and then I don't - // have any explainations for now. - assert!(pool.is_empty(), "received an unpooled string not during the program termination, please write any info regarding this crash to https://github.com/CertainLach/jrsonnet/issues/113, thanks!"); + // Another cause might be that you have improperly used jrsonnet in multi-threaded environment: + // https://github.com/CertainLach/jrsonnet/issues/113 + debug_assert!(pool.is_empty(), "if you have landed here - you most likely did something naughty with multi-threading. jrsonnet string pooling uses thread_local pool"); } }); } --- a/crates/jrsonnet-rowan-parser/src/generated/nodes.rs +++ b/crates/jrsonnet-rowan-parser/src/generated/nodes.rs @@ -3,9 +3,9 @@ #![allow(non_snake_case, clippy::match_like_matches_macro)] use crate::{ - ast::{support, AstChildren, AstNode, AstToken}, SyntaxKind::{self, *}, SyntaxNode, SyntaxToken, T, + ast::{AstChildren, AstNode, AstToken, support}, }; #[derive(Debug, Clone, PartialEq, Eq, Hash)] -- gitstuff