{"record":{"id":"20df986b8093f6f8","repo":"oxc-project/oxc","slug":"fixed-size-allocators-are-only-supported-on-64-bit","errorCode":null,"errorMessage":"Fixed size allocators are only supported on 64-bit little-endian platforms","messagePattern":"Fixed size allocators are only supported on 64-bit little-endian platforms","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"crates/oxc_allocator/src/pool/mod.rs","lineNumber":59,"sourceCode":"    /// Create a new [`AllocatorPool`] for use across the specified number of threads,\n    /// which uses standard allocators.\n    pub fn new(thread_count: usize) -> AllocatorPool {\n        Self(AllocatorPoolInner::Standard(StandardAllocatorPool::new(thread_count)))\n    }\n\n    /// Create a new [`AllocatorPool`] for use across the specified number of threads,\n    /// which uses fixed-size allocators (suitable for raw transfer).\n    #[cfg(feature = \"fixed_size\")]\n    pub fn new_fixed_size(thread_count: usize) -> AllocatorPool {\n        #[cfg(all(target_pointer_width = \"64\", target_endian = \"little\"))]\n        {\n            Self(AllocatorPoolInner::FixedSize(FixedSizeAllocatorPool::new(thread_count)))\n        }\n\n        #[cfg(not(all(target_pointer_width = \"64\", target_endian = \"little\")))]\n        {\n            let _thread_count = thread_count; // Avoid unused vars lint warning\n            panic!(\"Fixed size allocators are only supported on 64-bit little-endian platforms\");\n        }\n    }\n\n    /// Retrieve an [`Allocator`] from the pool, or create a new one if the pool is empty.\n    ///\n    /// Returns an [`AllocatorGuard`] that gives access to the allocator.\n    ///\n    /// # Panics\n    ///\n    /// * Panics if the underlying mutex is poisoned.\n    /// * Panics if a new allocator needs to be created but memory allocation fails.\n    pub fn get(&self) -> AllocatorGuard<'_> {\n        let allocator = match &self.0 {\n            AllocatorPoolInner::Standard(pool) => pool.get(),\n            #[cfg(all(\n                feature = \"fixed_size\",\n                target_pointer_width = \"64\",\n                target_endian = \"little\"","sourceCodeStart":41,"sourceCodeEnd":77,"githubUrl":"https://github.com/oxc-project/oxc/blob/e1e7af627c8843ab64044ed466b128fcc21a035b/crates/oxc_allocator/src/pool/mod.rs#L41-L77","documentation":"Diagnostic from oxlint's vue/require-prop-type-constructor rule (crates/oxc_linter/src/rules/vue/require_prop_type_constructor.rs). Each prop's type (or a bare prop value) must be a constructor — `String`, `Number`, `Boolean`, `Function`, `Object`, `Array`, `Symbol`, or a custom class — not a string like 'String' or a number. Vue performs prop validation only when given actual constructors; string values silently disable it. The rule includes a fixer that can rewrite eligible string literals to constructor references.","triggerScenarios":"`props: { status: 'String' }` or `props: { count: { type: 'Number' } }` inside a Vue component options object. Values that are valid identifier names (checked with oxc_syntax::identifier) are candidates for the auto-fix to the matching constructor.","commonSituations":"Props authored as JSON-like config or copied from docs/JSON schemas; codebases generating prop definitions from data; assuming string type names work as they do in some validation libraries.","solutions":["Replace string/number types with constructors: `status: String`, `count: { type: Number }`.","Run `oxlint --fix` to auto-convert eligible string literals.","For union types use an array of constructors: `type: [String, Number]`."],"exampleFix":"// before\nprops: { status: 'String', count: { type: 'Number' } }\n\n// after\nprops: { status: String, count: { type: Number } }","handlingStrategy":"validation","validationCode":"// ensure every prop type is a constructor before shipping\nfunction propTypesOk(defs) {\n  for (const [name, def] of Object.entries(defs)) {\n    const t = typeof def === 'object' && def !== null ? def.type : def;\n    const ok = Array.isArray(t) ? t.every((x) => typeof x === 'function') : typeof t === 'function';\n    if (!ok) throw new Error(`prop '${name}': type must be a constructor, got ${String(t)}`);\n  }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Never quote prop type names; reference the global constructors.","Add a mount test with invalid props expecting a Vue warning — string types produce none, so the test catches regressions.","Autofix legacy definitions with `oxlint --fix` during migration."],"tags":["vue","oxlint","lint","props","type","constructor","autofix"],"backgroundTag":"vue-prop-type-constructor","analyzedSha":"e1e7af627c8843ab64044ed466b128fcc21a035b","analyzedAt":"2026-08-20T07:01:07.079Z","contentChangedAt":"2026-08-20T07:01:07.079Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}