{"record":{"id":"2895251578cf5dd2","repo":"BoundaryML/baml","slug":"tolowercase-method-takes-no-arguments-at","errorCode":null,"errorMessage":"toLowerCase() method takes no arguments at {:?}","messagePattern":"toLowerCase\\(\\) method takes no arguments at (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"engine/baml-compiler/src/thir/interpret.rs","lineNumber":2843,"sourceCode":"                    }\n                    Ok(BamlValueWithMeta::Int(map.len() as i64, meta.clone()))\n                }\n                _ => bail!(\n                    \"length() method not available on type {:?} at {:?}\",\n                    receiver,\n                    meta.0\n                ),\n            }\n        }\n        \"toLowerCase\" => {\n            let BamlValueWithMeta::String(s, _) = receiver else {\n                bail!(\n                    \"toLowerCase() method only available on strings at {:?}\",\n                    meta.0\n                );\n            };\n            if !args.is_empty() {\n                bail!(\"toLowerCase() method takes no arguments at {:?}\", meta.0);\n            }\n            Ok(BamlValueWithMeta::String(s.to_lowercase(), meta.clone()))\n        }\n        \"toUpperCase\" => {\n            let BamlValueWithMeta::String(s, _) = receiver else {\n                bail!(\n                    \"toUpperCase() method only available on strings at {:?}\",\n                    meta.0\n                );\n            };\n            if !args.is_empty() {\n                bail!(\"toUpperCase() method takes no arguments at {:?}\", meta.0);\n            }\n            Ok(BamlValueWithMeta::String(s.to_uppercase(), meta.clone()))\n        }\n        \"trim\" => {\n            let BamlValueWithMeta::String(s, _) = receiver else {\n                bail!(\"trim() method only available on strings at {:?}\", meta.0);","sourceCodeStart":2825,"sourceCodeEnd":2861,"githubUrl":"https://github.com/BoundaryML/baml/blob/bd85ce9dee1463ff04d27efd20531013a4ff46c1/engine/baml-compiler/src/thir/interpret.rs#L2825-L2861","documentation":"THIR interpreter runtime error: `toLowerCase()` was invoked with arguments. The builtin string method takes none; any arguments at the call site are a mistake and abort evaluation with the expression location attached.","triggerScenarios":"Evaluating s.toLowerCase(arg) with a non-empty argument list, regardless of argument type.","commonSituations":"Porting locale-aware lowercase calls (e.g. toLowerCase(locale)) from other languages; accidentally passing extra arguments in generated code.","solutions":["Call toLowerCase() with empty parentheses","Remove any locale or extra arguments; the BAML builtin performs an unconditional lowercase"],"exampleFix":"// before\nlet lower = name.toLowerCase(\"en-US\")\n// after\nlet lower = name.toLowerCase()","handlingStrategy":"validation","validationCode":"if !args.is_empty() {\n    return Err(\"toLowerCase() takes no arguments\".into());\n}","typeGuard":"fn is_string(v: &BamlValueWithMeta<ExprMetadata>) -> bool {\n    matches!(v, BamlValueWithMeta::String(_, _))\n}","tryCatchPattern":null,"preventionTips":["Call toLowerCase() with empty parentheses","Do not port locale arguments from other languages","Lint generated code for extra arguments on zero-arg methods"],"tags":["baml","method-call","arity","string"],"backgroundTag":"missing-required-argument","analyzedSha":"bd85ce9dee1463ff04d27efd20531013a4ff46c1","analyzedAt":"2026-09-12T03:38:25.718Z","contentChangedAt":"2026-09-12T03:38:25.718Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}