[ { "name": "Abi", "metadata": ":abi", "doc": "Function ABI/calling convention.", "platforms": ["cpp"] }, { "name": "Access", "metadata": ":access", "doc": "Forces private access to package, type or field.", "params": ["Target path"], "targets": ["TClass", "TClassField"], "links": ["https://haxe.org/manual/lf-access-control.html"] }, { "name": "Accessor", "metadata": ":accessor", "doc": "Used internally by DCE to mark property accessors.", "targets": ["TClassField"], "internal": true }, { "name": "Allow", "metadata": ":allow", "doc": "Allows private access from package, type or field.", "params": ["Target path"], "links": ["https://haxe.org/manual/lf-access-control.html"] }, { "name": "Analyzer", "metadata": ":analyzer", "doc": "Used to configure the static analyzer." }, { "name": "Annotation", "metadata": ":annotation", "doc": "Marks a class as a Java annotation", "params": ["Retention policy"], "platforms": ["jvm"], "targets": ["TClass"] }, { "name": "ArrayAccess", "metadata": ":arrayAccess", "doc": "Allows array access on an abstract.", "targets": ["TAbstract", "TAbstractField"], "links": ["https://haxe.org/manual/types-abstract-array-access.html"] }, { "name": "Ast", "metadata": ":ast", "doc": "Internally used to pass the AST source into the typed AST.", "internal": true }, { "name": "AstSource", "metadata": ":astSource", "doc": "Filled by the compiler with the parsed expression of the field.", "targets": ["TClassField"] }, { "name": "AutoBuild", "metadata": ":autoBuild", "doc": "Extends `@:build` metadata to all extending and implementing classes.", "params": ["Build macro call"], "targets": ["TClass"], "links": ["https://haxe.org/manual/macro-auto-build.html"] }, { "name": "Bind", "metadata": ":bind", "doc": "Override SWF class declaration.", "platforms": ["flash"], "targets": ["TClass"] }, { "name": "Bitmap", "metadata": ":bitmap", "doc": "Embeds given bitmap data into the class (must extend `flash.display.BitmapData`).", "platforms": ["flash"], "params": ["Bitmap file path"], "targets": ["TClass"], "links": ["https://haxe.org/manual/target-flash-resources.html"] }, { "name": "Build", "metadata": ":build", "doc": "Builds a class, enum, or abstract from a macro.", "params": ["Build macro call"], "targets": ["TClass", "TEnum", "TAbstract"], "links": ["https://haxe.org/manual/macro-type-building.html"] }, { "name": "BuildXml", "metadata": ":buildXml", "doc": "Specify XML data to be injected into `Build.xml`.", "platforms": ["cpp"] }, { "name": "BypassAccessor", "metadata": ":bypassAccessor", "doc": "Do not call property accessor method and access the field directly.", "targets": ["TExpr"], "links": ["https://haxe.org/manual/class-field-property.html"] }, { "name": "Callable", "metadata": ":callable", "doc": "Abstract forwards call to its underlying type.", "targets": ["TAbstract"] }, { "name": "Commutative", "metadata": ":commutative", "doc": "Declares an abstract operator as commutative.", "targets": ["TAbstractField"], "links": ["https://haxe.org/manual/types-abstract-operator-overloading.html"] }, { "name": "CompilerGenerated", "metadata": ":compilerGenerated", "doc": "Marks a field as generated by the compiler. Should not be used by the end user.", "internal": true }, { "name": "Const", "metadata": ":const", "doc": "Allows a type parameter to accept expression values.", "targets": ["TTypeParameter"] }, { "name": "CoreApi", "metadata": ":coreApi", "doc": "Identifies this class as a core API class (forces API check).", "targets": ["TClass", "TEnum", "TTypedef", "TAbstract"] }, { "name": "CoreType", "metadata": ":coreType", "doc": "Identifies an abstract as core type so that it requires no implementation.", "targets": ["TAbstract"], "links": ["https://haxe.org/manual/types-abstract-core-type.html"] }, { "name": "CppFileCode", "metadata": ":cppFileCode", "doc": "Code to be injected into generated cpp file.", "platforms": ["cpp"] }, { "name": "CppInclude", "metadata": ":cppInclude", "doc": "File to be included in generated cpp file.", "platforms": ["cpp"] }, { "name": "CppNamespaceCode", "metadata": ":cppNamespaceCode", "doc": "", "platforms": ["cpp"] }, { "name": "Dce", "metadata": ":dce", "doc": "Forces dead code elimination even when `--dce full` is not specified.", "targets": ["TClass", "TEnum"], "links": ["https://haxe.org/manual/cr-dce.html"] }, { "name": "Debug", "metadata": ":debug", "doc": "Forces debug information to be generated into the SWF even without `--debug`.", "platforms": ["flash"], "targets": ["TClass", "TClassField"] }, { "name": "Decl", "metadata": ":decl", "doc": "", "platforms": ["cpp"] }, { "name": "DefParam", "metadata": ":defParam", "doc": "Default function argument value loaded from the SWF and used for documentation in Genxml.", "platforms": ["flash"], "internal": true }, { "name": "Depend", "metadata": ":depend", "doc": "", "platforms": ["cpp"] }, { "name": "Deprecated", "metadata": ":deprecated", "doc": "Mark a type or field as deprecated." }, { "name": "DirectlyUsed", "metadata": ":directlyUsed", "doc": "Marks types that are directly referenced by non-extern code.", "internal": true }, { "name": "DisplayOverride", "metadata": ":?display.override", "doc": "Internally used to mark override fields for completion", "internal": true }, { "name": "Eager", "metadata": ":eager", "doc": "Forces typedefs to be followed early.", "targets": ["TTypedef"] }, { "name": "Enum", "metadata": ":enum", "doc": "Defines finite value sets to abstract definitions.", "targets": ["TAbstract"], "links": ["https://haxe.org/manual/types-abstract-enum.html"] }, { "name": "Exhaustive", "metadata": ":exhaustive", "doc": "Used internally to mark that a switch is exhaustive.", "internal": true, "links": ["https://haxe.org/manual/lf-pattern-matching-exhaustiveness.html"] }, { "name": "Expose", "metadata": ":expose", "doc": "Includes the class or field in Haxe exports (default name is the classpath).", "platforms": ["js", "lua"], "params": ["name"], "links": ["https://haxe.org/manual/target-javascript-expose.html"] }, { "name": "Extern", "metadata": ":extern", "doc": "Marks the field as extern so it is not generated.", "targets": ["TClassField"] }, { "name": "File", "metadata": ":file", "doc": "Includes a given binary file into the target SWF and associates it with the class (must extend `flash.utils.ByteArray`).", "platforms": ["flash"], "params": ["File path"], "targets": ["TClass"], "links": ["https://haxe.org/manual/target-flash-resources.html"] }, { "name": "FileXml", "metadata": ":fileXml", "doc": "Include a given XML attribute snippet in the `Build.xml` entry for the file.", "platforms": ["cpp"], "targets": ["TClass"] }, { "name": "Final", "metadata": ":final", "doc": "Prevents a class or interface from being extended or a method from being overridden. Deprecated by the keyword `final`.", "targets": ["TClass", "TClassField"], "links": ["https://haxe.org/manual/class-field-final.html"] }, { "devcomment": "this used to have UsedOn TObjectDecl(_)", "name": "Fixed", "metadata": ":fixed", "doc": "Declares an anonymous object to have fixed fields." }, { "name": "FlashProperty", "metadata": ":flash.property", "doc": "", "platforms": ["flash"], "targets": ["TClassField"] }, { "name": "FlatEnum", "metadata": ":flatEnum", "doc": "Internally used to mark an enum as being flat, i.e. having no function constructors.", "targets": ["TEnum"], "internal": true }, { "name": "Font", "metadata": ":font", "doc": "Embeds the given TrueType font into the class (must extend `flash.text.Font`).", "params": ["TTF path", "Range String"], "targets": ["TClass"], "links": ["https://haxe.org/manual/target-flash-resources.html"] }, { "name": "ForLoopVariable", "metadata": ":forLoopVariable", "doc": "Internally used to mark for-loop variables.", "internal": true }, { "name": "Forward", "metadata": ":forward", "doc": "Forwards field access to underlying type.", "params": ["List of field names"], "targets": ["TAbstract"], "links": ["https://haxe.org/manual/types-abstract-forward.html"] }, { "name": "ForwardNew", "metadata": ":forward.new", "doc": "Forwards constructor call to underlying type.", "targets": ["TAbstract"] }, { "name": "ForwardStatics", "metadata": ":forwardStatics", "doc": "Forwards static field access to underlying type.", "params": ["List of field names"], "targets": ["TAbstract"], "links": ["https://haxe.org/manual/types-abstract-forward.html"] }, { "name": "ForwardVariance", "metadata": ":forward.variance", "doc": "Forwards variance unification to underlying type.", "targets": ["TAbstract"] }, { "name": "From", "metadata": ":from", "doc": "Specifies that the field of the abstract is a cast operation from the type identified in the function.", "targets": ["TAbstractField"], "links": ["https://haxe.org/manual/types-abstract-implicit-casts.html"] }, { "name": "FunctionalInterface", "metadata": ":functionalInterface", "doc": "Mark an interface as a functional interface", "platforms": ["jvm"] }, { "name": "FunctionCode", "metadata": ":functionCode", "doc": "Used to inject platform-native code into a function.", "platforms": ["cpp"] }, { "name": "FunctionTailCode", "metadata": ":functionTailCode", "doc": "", "platforms": ["cpp"] }, { "name": "Generic", "metadata": ":generic", "doc": "Marks a class or class field as generic so each type parameter combination generates its own type/field.", "links": ["https://haxe.org/manual/type-system-generic.html"] }, { "name": "GenericBuild", "metadata": ":genericBuild", "doc": "Builds instances of a type using the specified macro.", "targets": ["TClass"] }, { "name": "GenericInstance", "metadata": ":genericInstance", "doc": "Internally used to mark instances of `@:generic` methods.", "targets": ["TClassField"], "internal": true }, { "name": "GenericClassPerMethod", "metadata": ":genericClassPerMethod", "doc": "Makes compiler generate separate class per generic static method specialization", "targets": ["TClass"] }, { "name": "Getter", "metadata": ":getter", "doc": "Generates a native getter function on the given field.", "platforms": ["flash"], "params": ["Class field name"], "targets": ["TClassField"] }, { "name": "Hack", "metadata": ":hack", "doc": "Allows extending classes marked as `@:final`. Not guaranteed to work on all targets.", "targets": ["TClass"] }, { "name": "HasUntyped", "metadata": ":has_untyped", "doc": "Used by the typer to mark fields that have untyped expressions.", "internal": true }, { "name": "HeaderClassCode", "metadata": ":headerClassCode", "doc": "Code to be injected into the generated class, in the header.", "platforms": ["cpp"] }, { "name": "HeaderCode", "metadata": ":headerCode", "doc": "Code to be injected into the generated header file.", "platforms": ["cpp"] }, { "name": "HeaderInclude", "metadata": ":headerInclude", "doc": "File to be included in generated header file.", "platforms": ["cpp"] }, { "name": "HeaderNamespaceCode", "metadata": ":headerNamespaceCode", "doc": "", "platforms": ["cpp"] }, { "name": "HlNative", "metadata": ":hlNative", "doc": "Specifies `hdll` name and function prefix for native functions.", "platforms": ["hl"], "targets": ["TClass", "TClassField"] }, { "name": "HxbId", "metadata": ":hxb.id", "doc": "Internally used by hxb", "internal": true }, { "name": "HxCompletion", "metadata": ":hx.completion", "doc": "Internally used for completion", "internal": true }, { "name": "HxGen", "metadata": ":hxGen", "doc": "Annotates that an extern class was generated by Haxe.", "targets": ["TClass", "TEnum"] }, { "name": "IfFeature", "metadata": ":ifFeature", "doc": "Causes a field to be kept by DCE if the given feature is part of the compilation.", "params": ["Feature name"], "targets": ["TClassField"], "links": ["https://haxe.org/manual/cr-dce.html"] }, { "name": "PythonImport", "metadata": ":pythonImport", "doc": "Generates python import statement for extern classes.", "platforms": ["python"], "targets": ["TClass"] }, { "name": "ImplicitCast", "metadata": ":implicitCast", "doc": "Generated automatically on the AST when an implicit abstract cast happens.", "targets": ["TExpr"], "internal": true }, { "name": "ImplicitReturn", "metadata": ":implicitReturn", "doc": "Generated automatically on the AST when an implicit return is inserted for arrow function.", "targets": ["TExpr"], "internal": true }, { "name": "Include", "metadata": ":include", "doc": "", "platforms": ["cpp"] }, { "name": "InheritDoc", "metadata": ":inheritDoc", "doc": "Append documentation from a parent field or class (if used without an argument) or from a specified class or field (if used like @:inheritDoc(pack.Some.field)).", "targets": ["TClass", "TEnum", "TAbstract", "TAnyField"] }, { "name": "InitPackage", "metadata": ":initPackage", "doc": "Some weird thing for Genjs we want to remove someday.", "platforms": ["js"], "internal": true }, { "name": "Inline", "metadata": ":inline", "doc": "Inserted by the parser in case of `inline expr` and `inline function`.", "targets": ["TExpr"] }, { "name": "InlineConstructorArgument", "metadata": ":inlineConstructorArgument", "doc": "Internally used to mark expressions that were passed as arguments of an inlined constructor.", "internal": true }, { "name": "InlineObject", "metadata": ":inlineObject", "doc": "Internally used by inline constructors filter to mark potentially inlineable objects.", "internal": true }, { "name": "IsVar", "metadata": ":isVar", "doc": "Forces a physical field to be generated for properties that otherwise would not require one.", "targets": ["TClassField"], "links": ["https://haxe.org/manual/class-field-property-rules.html"] }, { "name": "JavaDefault", "metadata": ":java.default", "doc": "Equivalent to the default modifier of the Java language", "platforms": ["jvm"], "targets": ["TClassField"] }, { "name": "JvmSynthetic", "metadata": ":jvm.synthetic", "doc": "Mark generated class, field or method as synthetic", "platforms": ["jvm"], "targets": ["TClass", "TEnum", "TAnyField"] }, { "name": "JsRequire", "metadata": ":jsRequire", "doc": "Generate JavaScript module require expression for given extern.", "platforms": ["js"], "targets": ["TClass"], "links": ["https://haxe.org/manual/target-javascript-require.html"] }, { "name": "LuaRequire", "metadata": ":luaRequire", "doc": "Generate Lua module require expression for given extern.", "platforms": ["lua"], "targets": ["TClass"] }, { "name": "LuaDotMethod", "metadata": ":luaDotMethod", "doc": "Indicates that the given extern type instance should have dot-style invocation for methods instead of colon.", "platforms": ["lua"] }, { "name": "Keep", "metadata": ":keep", "doc": "Causes a field or type to be kept by DCE.", "links": ["https://haxe.org/manual/cr-dce.html"] }, { "name": "KeepInit", "metadata": ":keepInit", "doc": "Causes a class to be kept by DCE even if all its field are removed.", "targets": ["TClass"], "links": ["https://haxe.org/manual/cr-dce.html"] }, { "name": "KeepSub", "metadata": ":keepSub", "doc": "Extends `@:keep` metadata to all implementing and extending classes.", "targets": ["TClass"], "links": ["https://haxe.org/manual/cr-dce.html"] }, { "name": "LibType", "metadata": ":libType", "doc": "Used by `--net-lib` and `--java-lib` to mark a class that should not be checked (overrides, interfaces, etc) by the type loader.", "platforms": ["jvm"], "targets": ["TClass"], "internal": true }, { "name": "LoopLabel", "metadata": ":loopLabel", "doc": "Mark loop and break expressions with a label to support breaking from within switch.", "internal": true }, { "name": "Markup", "metadata": ":markup", "doc": "Used as a result of inline XML parsing.", "links": ["https://haxe.org/manual/lf-markup.html"] }, { "name": "Meta", "metadata": ":meta", "doc": "Internally used to mark a class field as being the metadata field.", "internal": true }, { "name": "MergeBlock", "metadata": ":mergeBlock", "doc": "Merge the annotated block into the current scope.", "targets": ["TExpr"] }, { "name": "MultiReturn", "metadata": ":multiReturn", "doc": "Annotates an extern class as the result of multi-return function.", "platforms": ["lua"], "targets": ["TClass"], "links": ["https://haxe.org/manual/target-lua-multireturns.html"] }, { "name": "MultiType", "metadata": ":multiType", "doc": "Specifies that an abstract chooses its this-type from its `@:to` functions.", "params": ["Relevant type parameters"], "targets": ["TAbstract"] }, { "name": "Native", "metadata": ":native", "doc": "Rewrites the path of a type or class field during generation.", "params": ["Output path"], "targets": ["TClass", "TEnum", "TAbstract", "TClassField"], "links": ["https://haxe.org/manual/lf-externs.html"] }, { "name": "NativeJni", "metadata": ":java.native", "doc": "Annotates that a function has implementation in native code through JNI.", "platforms": ["jvm"], "targets": ["TClassField"] }, { "name": "NativeGen", "metadata": ":nativeGen", "doc": "Annotates that a type should be treated as if it were an extern definition - platform native.", "platforms": ["python"], "targets": ["TClass", "TEnum"] }, { "name": "NativeProperty", "metadata": ":nativeProperty", "doc": "Use native properties which will execute even with dynamic usage.", "platforms": ["cpp"] }, { "name": "NativeStaticExtension", "metadata": ":nativeStaticExtension", "doc": "Converts static function syntax into member call.", "platforms": ["cpp"] }, { "name": "NoCompletion", "metadata": ":noCompletion", "doc": "Prevents the compiler from suggesting completion on this field or type.", "targets": ["TClassField"], "links": ["https://haxe.org/manual/cr-completion.html"] }, { "name": "NoClosure", "metadata": ":noClosure", "doc": "Prevents a method or all methods in a class from being used as a value.", "targets": ["TClass", "TClassField"] }, { "name": "NoDebug", "metadata": ":noDebug", "doc": "Does not generate debug information even if `--debug` is set.", "platforms": ["flash", "cpp"], "targets": ["TClass", "TClassField"] }, { "name": "NoDoc", "metadata": ":noDoc", "doc": "Prevents a type or field from being included in documentation generation." }, { "name": "NoExpr", "metadata": ":noExpr", "doc": "Internally used to mark abstract fields which have no expression by design.", "internal": true }, { "name": "NoImportGlobal", "metadata": ":noImportGlobal", "doc": "Prevents a static field from being imported with `import Class.*`.", "targets": ["TAnyField"] }, { "name": "NonVirtual", "metadata": ":nonVirtual", "doc": "Declares function to be non-virtual in cpp.", "platforms": ["cpp"] }, { "name": "NoPackageRestrict", "metadata": ":noPackageRestrict", "doc": "Allows a module to be accessed across all targets if found on its first type.", "internal": true }, { "name": "NoPrivateAccess", "metadata": ":noPrivateAccess", "doc": "Disallow private access to anything for the annotated expression.", "targets": ["TExpr"] }, { "name": "NoStack", "metadata": ":noStack", "doc": "", "platforms": ["cpp"] }, { "name": "NotNull", "metadata": ":notNull", "doc": "Declares an abstract type as not accepting null values.", "targets": ["TAbstract"], "links": ["https://haxe.org/manual/types-nullability.html"] }, { "name": "NoUsing", "metadata": ":noUsing", "doc": "Prevents a field from being used with static extension.", "targets": ["TClassField"], "links": ["https://haxe.org/manual/lf-static-extension.html"] }, { "name": "Ns", "metadata": ":ns", "doc": "Internally used by the SWF generator to handle namespaces.", "platforms": ["flash"], "internal": true }, { "name": "NullSafety", "metadata": ":nullSafety", "doc": "Enables null safety for classes or fields. Disables null safety for classes, fields or expressions if provided with `Off` as an argument.", "params": ["Off | Loose | Strict | StrictThreaded"], "targets": ["TClass", "TClassField", "TExpr"], "links": ["https://haxe.org/manual/cr-null-safety.html"] }, { "name": "Objc", "metadata": ":objc", "doc": "Declares a class or interface that is used to interoperate with Objective-C code.", "platforms": ["cpp"], "targets": ["TClass"] }, { "name": "ObjcProtocol", "metadata": ":objcProtocol", "doc": "Associates an interface with, or describes a function in, a native Objective-C protocol.", "platforms": ["cpp"] }, { "name": "Op", "metadata": ":op", "doc": "Declares an abstract field as being an operator overload.", "params": ["The operation"], "targets": ["TAbstractField"], "links": ["https://haxe.org/manual/types-abstract-operator-overloading.html"] }, { "name": "Optional", "metadata": ":optional", "doc": "Marks the field of a structure as optional.", "targets": ["TClassField"], "links": ["https://haxe.org/manual/types-nullability-optional-arguments.html"] }, { "name": "Overload", "metadata": ":overload", "doc": "Allows the field to be called with different argument types.", "params": ["Function specification (no expression)"], "targets": ["TClassField"], "links": ["https://haxe.org/manual/target-javascript-external-libraries.html"] }, { "name": "Persistent", "metadata": ":persistent", "doc": "Keeps the value of static variables in macro context across compilations.", "targets": ["TAnyField"], "platforms": ["eval"] }, { "name": "PhpAttribute", "metadata": ":php.attribute", "doc": "Adds a PHP attribute to the annotated symbol. Meta argument expects a string constant. E.g. `@:php.attribute('\\\\my\\\\Attr(123)')` will be generated as `#[\\my\\Attr(123)]` in the compiled php file.", "platforms": ["php"], "links": ["https://www.php.net/manual/en/language.attributes.overview.php"] }, { "name": "PhpGlobal", "metadata": ":phpGlobal", "doc": "Indicates that static fields of an extern class actually are located in the global PHP namespace.", "platforms": ["php"], "targets": ["TClass"] }, { "name": "PhpClassConst", "metadata": ":phpClassConst", "doc": "Indicates that a static var of an extern class is a PHP class constant.", "platforms": ["php"], "targets": ["TClassField"] }, { "name": "PhpMagic", "metadata": ":phpMagic", "doc": "Treat annotated field as special PHP magic field - this meta makes compiler avoid renaming such fields on generating PHP code.", "platforms": ["php"], "targets": ["TClassField"] }, { "name": "PhpNoConstructor", "metadata": ":phpNoConstructor", "doc": "Special meta for extern classes which do not have native constructor in PHP, but need a constructor in Haxe extern.", "platforms": ["php"], "targets": ["TClass"] }, { "name": "Pos", "metadata": ":pos", "doc": "Sets the position of a reified expression.", "params": ["Position"], "targets": ["TExpr"], "links": ["https://haxe.org/manual/macro-reification.html"] }, { "name": "Public", "metadata": ":public", "doc": "Marks a class field as being public.", "targets": ["TClassField"], "internal": true }, { "name": "PublicFields", "metadata": ":publicFields", "doc": "Forces all class fields of inheriting classes to be public.", "targets": ["TClass"] }, { "name": "Private", "metadata": ":private", "doc": "Marks a class field as being private.", "platforms": ["jvm"], "targets": ["TClassField"] }, { "name": "PrivateAccess", "metadata": ":privateAccess", "doc": "Allow private access to anything for the annotated expression.", "targets": ["TExpr"] }, { "name": "Protected", "metadata": ":protected", "doc": "Marks a class field as being protected.", "platforms": ["jvm", "flash"], "targets": ["TClassField"] }, { "name": "Pure", "metadata": ":pure", "doc": "Marks a class field, class or expression as pure (side-effect free).", "targets": ["TClass", "TClassField", "TExpr"] }, { "name": "RealPath", "metadata": ":realPath", "doc": "Internally used on `@:native` types to retain original path information.", "internal": true }, { "name": "Remove", "metadata": ":remove", "doc": "Causes an interface to be removed from all implementing classes before generation.", "targets": ["TClass"] }, { "name": "Require", "metadata": ":require", "doc": "Allows access to a field only if the specified compiler flag is set.", "params": ["Compiler flag to check"], "targets": ["TClassField"], "links": ["https://haxe.org/manual/lf-condition-compilation.html"] }, { "name": "Resolve", "metadata": ":resolve", "doc": "Abstract fields marked with this metadata can be used to resolve unknown fields.", "targets": ["TClassField"] }, { "name": "Rtti", "metadata": ":rtti", "doc": "Adds runtime type information.", "targets": ["TClass"], "links": ["https://haxe.org/manual/cr-rtti.html"] }, { "name": "Runtime", "metadata": ":runtime", "doc": "", "internal": true }, { "name": "RuntimeValue", "metadata": ":runtimeValue", "doc": "Marks an abstract as being a runtime value.", "targets": ["TAbstract"] }, { "name": "Scalar", "metadata": ":scalar", "doc": "Used by hxcpp to mark a custom coreType abstract.", "platforms": ["cpp"], "targets": ["TAbstract"] }, { "name": "SelfCall", "metadata": ":selfCall", "doc": "Translates method calls into calling object directly.", "platforms": ["js", "lua"], "targets": ["TClassField"], "links": ["https://haxe.org/manual/target-javascript-external-libraries.html"] }, { "name": "Semantics", "metadata": ":semantics", "doc": "The native semantics of the type.", "params": ["value | reference | variable"], "targets": ["TClass", "TTypedef", "TAbstract"] }, { "name": "Setter", "metadata": ":setter", "doc": "Generates a native setter function on the given field.", "platforms": ["flash"], "params": ["Class field name"], "targets": ["TClassField"] }, { "name": "Sound", "metadata": ":sound", "doc": "Includes a given .wav or .mp3 file into the target SWF and associates it with the class (must extend `flash.media.Sound`).", "platforms": ["flash"], "params": ["File path"], "targets": ["TClass"], "links": ["https://haxe.org/manual/target-flash-resources.html"] }, { "name": "SourceFile", "metadata": ":sourceFile", "doc": "Source code filename for external class.", "platforms": ["cpp"] }, { "name": "StackOnly", "metadata": ":stackOnly", "doc": "Instances of this type can only appear on the stack.", "platforms": ["cpp"] }, { "name": "StaticExtension", "metadata": "haxe.internal.static_extension", "doc": "Used internally to mark static extension fields.", "internal": true }, { "name": "StoredTypedExpr", "metadata": ":storedTypedExpr", "doc": "Used internally to reference a typed expression returned from a macro.", "internal": true }, { "name": "Strict", "metadata": ":strict", "doc": "Used to declare a native Java metadata; is type checked.", "platforms": ["jvm"] }, { "name": "Struct", "metadata": ":struct", "doc": "Marks a class definition as a struct.", "platforms": ["hl"], "targets": ["TClass"] }, { "name": "StructAccess", "metadata": ":structAccess", "doc": "Marks an extern class as using struct access (`.`) not pointer (`->`).", "platforms": ["cpp"], "targets": ["TClass"] }, { "name": "StructInit", "metadata": ":structInit", "doc": "Allows one to initialize the class with a structure that matches constructor parameters.", "targets": ["TClass"] }, { "name": "TailRecursion", "metadata": ":tailRecursion", "doc": "Internally used for tail recursion elimination.", "internal": true }, { "name": "TemplatedCall", "metadata": ":templatedCall", "doc": "Indicates that the first parameter of static call should be treated as a template argument.", "platforms": ["cpp"], "targets": ["TClassField"] }, { "name": "This", "metadata": ":this", "doc": "Internally used to pass a `this` expression to macros.", "targets": ["TExpr"], "internal": true }, { "name": "To", "metadata": ":to", "doc": "Specifies that the field of the abstract is a cast operation to the type identified in the function.", "targets": ["TAbstractField"], "links": ["https://haxe.org/manual/types-abstract-implicit-casts.html"] }, { "name": "ToString", "metadata": ":toString", "doc": "Internally used.", "internal": true }, { "name": "Transitive", "metadata": ":transitive", "doc": "Allows transitive casts with an abstract.", "targets": ["TAbstract"] }, { "name": "ValueUsed", "metadata": ":valueUsed", "doc": "Internally used by DCE to mark an abstract value as used.", "internal": true }, { "name": "Volatile", "metadata": ":volatile", "doc": "", "platforms": ["jvm"] }, { "name": "UnifyMinDynamic", "metadata": ":unifyMinDynamic", "doc": "Allows a collection of types to unify to `Dynamic`.", "targets": ["TClassField"] }, { "name": "Unreflective", "metadata": ":unreflective", "doc": "", "platforms": ["cpp"] }, { "name": "Used", "metadata": ":used", "doc": "Internally used by DCE to mark a class or field as used.", "internal": true }, { "name": "Using", "metadata": ":using", "doc": "Automatically uses the argument types as static extensions for the annotated type.", "targets": ["TClass", "TEnum", "TAbstract"], "links": ["https://haxe.org/manual/lf-static-extension-metadata.html"] }, { "name": "Value", "metadata": ":value", "doc": "Used to store default values for fields and function arguments.", "targets": ["TClassField"], "internal": true }, { "name": "HaxeArguments", "metadata": ":haxe.arguments", "doc": "Used to store function arguments.", "targets": ["TClassField"], "internal": true }, { "name": "HaxeWarning", "metadata": ":haxe.warning", "doc": "Modifies warning options, equivalent to the -w CLI argument", "targets": ["TClass","TClassField"] }, { "name": "Void", "metadata": ":void", "doc": "Use Cpp native `void` return type.", "platforms": ["cpp"] }, { "name": "NeedsExceptionStack", "metadata": ":needsExceptionStack", "doc": "Internally used for some of auto-generated `catch` vars", "internal": true }, { "name": "WrappedException", "metadata": ":wrappedException", "doc": "Internally used for exceptions wrapping in `throw` expressions.", "internal": true }, { "name": "NativeArrayAccess", "metadata": ":nativeArrayAccess", "doc": "When used on an extern class which implements haxe.ArrayAccess native array access syntax will be generated", "platforms": ["cpp"] } ]