[
	{
		"name": "WAll",
		"doc": "The mother of all warnings",
		"generic": true
	},
	{
		"name": "WInternal",
		"doc": "Reserved for internal use",
		"generic": true
	},
	{
		"name": "WTemp",
		"doc": "Reserved for internal use",
		"generic": true
	},
	{
		"name": "WInfo",
		"doc": "Generic information like $type",
		"generic": true
	},
	{
		"name": "WUser",
		"doc": "Custom user warnings, e.g. from Context.warning",
		"generic": true
	},
	{
		"name": "WCompiler",
		"doc": "Warnings from the compiler frontend, e.g. argument parsing",
		"generic": true
	},
	{
		"name": "WParser",
		"doc": "Warnings related to lexing and parsing",
		"generic": true
	},
	{
		"name": "WTyper",
		"doc": "Warnings from the typer",
		"generic": true
	},
	{
		"name": "WMacro",
		"doc": "Warning related to macros",
		"generic": true
	},
	{
		"name": "WOptimizer",
		"doc": "Warnings related to optimization",
		"generic": true
	},
	{
		"name": "WGenerator",
		"doc": "Warnings related to code generation",
		"generic": true
	},
	{
		"name": "WDeprecated",
		"doc": "This is deprecated and should no longer be used"
	},
	{
		"name": "WDeprecatedDefine",
		"doc": "This define is deprecated and should no longer be used",
		"parent": "WDeprecated"
	},
	{
		"name": "WDeprecatedEnumAbstract",
		"doc": "`@:enum abstract` is deprecated, `enum abstract` should be used instead",
		"parent": "WDeprecated"
	},
	{
		"name": "WVarInit",
		"doc": "A local variable might be used before being assigned a value",
		"parent": "WTyper"
	},
	{
		"name": "WVarShadow",
		"doc": "A local variable hides another by using the same name",
		"parent": "WTyper",
		"enabled": false
	},
	{
		"name": "WExternWithExpr",
		"doc": "A non-inline field marked as extern has an expression",
		"parent": "WTyper"
	},
	{
		"name": "WStaticInitOrder",
		"doc": "The compiler could not determine a type order due to mutually dependent static initializations",
		"parent": "WTyper"
	},
	{
		"name": "WClosureCompare",
		"doc": "Closures are being compared, which might be undefined",
		"parent": "WTyper"
	},
	{
		"name": "WReservedTypePath",
		"doc": "A type path is being used that is supposed to be reserved on the current target",
		"parent": "WTyper"
	},
	{
		"name": "WInlineOptimizedField",
		"doc": "A cached field which was optimized might lead to different output when inlined",
		"parent": "WTyper"
	},
	{
		"name": "WPatternMatcher",
		"doc": "Warnings related to the pattern matcher",
		"parent": "WTyper"
	},
	{
		"name": "WUnusedPattern",
		"doc": "The pattern is not used because previous cases cover",
		"parent": "WPatternMatcher"
	},
	{
		"name": "WConstructorInliningCancelled",
		"doc": "Constructor call could not be inlined because a field is uninitialized",
		"parent": "WTyper"
	},
	{
		"name": "WUnsafeEnumEquality",
		"doc": "Equality operations on enums with parameters might not work as expected",
		"parent": "WTyper",
		"enabled": false
	},
	{
		"name": "WHxb",
		"doc": "Hxb (either --hxb output or haxe compiler cache) related warnings"
	},
	{
		"name": "WUnboundTypeParameter",
		"doc": "Hxb (either --hxb output or haxe compiler cache) failed to link a type parameter to an actual type",
		"parent": "WHxb"
	},
	{
		"name": "WUnclosedMonomorph",
		"doc": "Hxb writer failed to close a monomorph (that monomorph should have been closed in the first place)",
		"parent": "WHxb"
	}
]
