{"record":{"id":"8e88c35c31187f2b","repo":"AvaloniaUI/Avalonia","slug":"material","errorCode":null,"errorMessage":"material","messagePattern":"material","errorType":"validation","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"src/Avalonia.Base/Media/MaterialExtensions.cs","lineNumber":17,"sourceCode":"﻿using System;\n\nnamespace Avalonia.Media\n{\n    public static class MaterialExtensions\n    {\n        /// <summary>\n        /// Converts a brush to an immutable brush.\n        /// </summary>\n        /// <param name=\"material\">The brush.</param>\n        /// <returns>\n        /// The result of calling <see cref=\"IMutableBrush.ToImmutable\"/> if the brush is mutable,\n        /// otherwise <paramref name=\"material\"/>.\n        /// </returns>\n        public static IExperimentalAcrylicMaterial ToImmutable(this IExperimentalAcrylicMaterial material)\n        {\n            _ = material ?? throw new ArgumentNullException(nameof(material));\n\n            return (material as IMutableExperimentalAcrylicMaterial)?.ToImmutable() ?? material;\n        }\n    }\n}\n","sourceCodeStart":1,"sourceCodeEnd":23,"githubUrl":"https://github.com/AvaloniaUI/Avalonia/blob/11c542726898ae954a1ef668c65ec79ec92ab17d/src/Avalonia.Base/Media/MaterialExtensions.cs#L1-L23","documentation":"MaterialExtensions.ToImmutable throws ArgumentNullException(nameof(material)) when the IExperimentalAcrylicMaterial is null. It needs a non-null material to attempt the IMutableExperimentalAcrylicMaterial.ToImmutable() conversion or return the instance unchanged.","triggerScenarios":"Calling material.ToImmutable() (the extension method) on a null IExperimentalAcrylicMaterial reference.","commonSituations":"A null acrylic material field/property being flattened; binding that resolved to null; default-constructed brushes before initialization.","solutions":["Null-check the material before calling ToImmutable.","Initialize the material before use.","Provide a default immutable acrylic material as a fallback."],"exampleFix":"// before\nvar imm = _acrylic.ToImmutable(); // _acrylic may be null\n\n// after\nvar imm = _acrylic is null ? ExperimentalAcrylicMaterial.Default : _acrylic.ToImmutable();","handlingStrategy":"validation","validationCode":"if (material is null)\n    throw new ArgumentNullException(nameof(material));\nvar imm = material.ToImmutable();","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Null-check materials before calling ToImmutable.","Initialize acrylic materials before use.","Provide a default immutable material as a fallback."],"tags":["media","acrylic","argumentnull"],"backgroundTag":null,"analyzedSha":"11c542726898ae954a1ef668c65ec79ec92ab17d","analyzedAt":"2026-08-13T11:57:40.261Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}