{"id":"language--flags-enums","name":"Flags enums","owner":"yeho","package":"language","kind":"language","signature":"[flags] enum Name { A, B, C }\nvalue.Has(Name.Member)","description":"A [flags] enum represents combinable named bits. Test membership with .Has rather than treating a combination as one match case.","context":"Use flags for independent capabilities or state bits that can be combined.","parameters":[],"returns":"","members":[],"tags":["Has","[flags]","cpu","enum","flags","language","logic","yeho"],"updated":"2026-09-09","source":{"repository":"yeho","path":"parser_core.cpp parseTopLevelEnum; language-core.md §5.6"},"status":"experimental","notes":["Flags enums cannot have payload members.","The parser accepts .Has, but the current CPU oracle build does not lower it. Enum bitwise combinations are also rejected. Use integer masks for executable combinations, or compare one named enum value directly."],"examples":[{"id":"complete","title":"Declare named access flags","description":"Store and compare one named document capability. Enum bitwise combinations and native .Has lowering are not qualified by this example.","code":"[flags]\nenum Access { Read, Write }\nAccess granted = Access.Read\nif granted == Access.Read { Console.Log(\"Read access\") }\n","tags":["cpu","enum","flags"],"run":"cpu-oracle","expected":"Read access","verifyRun":true,"manifest":"manifestVersion = \"2\"\npackage = \"api.example.language__flags_enums\"\nversion = \"0.1.0\"\nlanguageEdition = \"yeho-core-2026.1\"\n\n[app]\nkind = \"headless\"\n","verification":"executed","sha256":"57e7b7f3d56f7b3b93fa220e18141be78567f3205e7ad37cbd00fbfe893f4c2f","checked":"2026-09-09","diagnostic":"","observedOutput":"Read access","checkedBackend":"cpu-oracle"}],"searchTerms":[],"url":"https://demonhunterlabs.com/academy/api?item=language--flags-enums","json":"https://demonhunterlabs.com/reference/items/language--flags-enums.json","markdown":"https://demonhunterlabs.com/reference/text/language--flags-enums.md"}
