meta.json 31 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129
  1. [
  2. {
  3. "name": "Abi",
  4. "metadata": ":abi",
  5. "doc": "Function ABI/calling convention.",
  6. "platforms": ["cpp"]
  7. },
  8. {
  9. "name": "Access",
  10. "metadata": ":access",
  11. "doc": "Forces private access to package, type or field.",
  12. "params": ["Target path"],
  13. "targets": ["TClass", "TClassField"],
  14. "links": ["https://haxe.org/manual/lf-access-control.html"]
  15. },
  16. {
  17. "name": "Accessor",
  18. "metadata": ":accessor",
  19. "doc": "Used internally by DCE to mark property accessors.",
  20. "targets": ["TClassField"],
  21. "internal": true
  22. },
  23. {
  24. "name": "Allow",
  25. "metadata": ":allow",
  26. "doc": "Allows private access from package, type or field.",
  27. "params": ["Target path"],
  28. "links": ["https://haxe.org/manual/lf-access-control.html"]
  29. },
  30. {
  31. "name": "Analyzer",
  32. "metadata": ":analyzer",
  33. "doc": "Used to configure the static analyzer."
  34. },
  35. {
  36. "name": "Annotation",
  37. "metadata": ":annotation",
  38. "doc": "Marks a class as a Java annotation",
  39. "params": ["Retention policy"],
  40. "platforms": ["jvm"],
  41. "targets": ["TClass"]
  42. },
  43. {
  44. "name": "ArrayAccess",
  45. "metadata": ":arrayAccess",
  46. "doc": "Allows array access on an abstract.",
  47. "targets": ["TAbstract", "TAbstractField"],
  48. "links": ["https://haxe.org/manual/types-abstract-array-access.html"]
  49. },
  50. {
  51. "name": "Ast",
  52. "metadata": ":ast",
  53. "doc": "Internally used to pass the AST source into the typed AST.",
  54. "internal": true
  55. },
  56. {
  57. "name": "AstSource",
  58. "metadata": ":astSource",
  59. "doc": "Filled by the compiler with the parsed expression of the field.",
  60. "targets": ["TClassField"]
  61. },
  62. {
  63. "name": "AutoBuild",
  64. "metadata": ":autoBuild",
  65. "doc": "Extends `@:build` metadata to all extending and implementing classes.",
  66. "params": ["Build macro call"],
  67. "targets": ["TClass"],
  68. "links": ["https://haxe.org/manual/macro-auto-build.html"]
  69. },
  70. {
  71. "name": "Bind",
  72. "metadata": ":bind",
  73. "doc": "Override SWF class declaration.",
  74. "platforms": ["flash"],
  75. "targets": ["TClass"]
  76. },
  77. {
  78. "name": "Bitmap",
  79. "metadata": ":bitmap",
  80. "doc": "Embeds given bitmap data into the class (must extend `flash.display.BitmapData`).",
  81. "platforms": ["flash"],
  82. "params": ["Bitmap file path"],
  83. "targets": ["TClass"],
  84. "links": ["https://haxe.org/manual/target-flash-resources.html"]
  85. },
  86. {
  87. "name": "Build",
  88. "metadata": ":build",
  89. "doc": "Builds a class, enum, or abstract from a macro.",
  90. "params": ["Build macro call"],
  91. "targets": ["TClass", "TEnum", "TAbstract"],
  92. "links": ["https://haxe.org/manual/macro-type-building.html"]
  93. },
  94. {
  95. "name": "BuildXml",
  96. "metadata": ":buildXml",
  97. "doc": "Specify XML data to be injected into `Build.xml`.",
  98. "platforms": ["cpp"]
  99. },
  100. {
  101. "name": "BypassAccessor",
  102. "metadata": ":bypassAccessor",
  103. "doc": "Do not call property accessor method and access the field directly.",
  104. "targets": ["TExpr"],
  105. "links": ["https://haxe.org/manual/class-field-property.html"]
  106. },
  107. {
  108. "name": "Callable",
  109. "metadata": ":callable",
  110. "doc": "Abstract forwards call to its underlying type.",
  111. "targets": ["TAbstract"]
  112. },
  113. {
  114. "name": "Commutative",
  115. "metadata": ":commutative",
  116. "doc": "Declares an abstract operator as commutative.",
  117. "targets": ["TAbstractField"],
  118. "links": ["https://haxe.org/manual/types-abstract-operator-overloading.html"]
  119. },
  120. {
  121. "name": "CompilerGenerated",
  122. "metadata": ":compilerGenerated",
  123. "doc": "Marks a field as generated by the compiler. Should not be used by the end user.",
  124. "internal": true
  125. },
  126. {
  127. "name": "Const",
  128. "metadata": ":const",
  129. "doc": "Allows a type parameter to accept expression values.",
  130. "targets": ["TTypeParameter"]
  131. },
  132. {
  133. "name": "CoreApi",
  134. "metadata": ":coreApi",
  135. "doc": "Identifies this class as a core API class (forces API check).",
  136. "targets": ["TClass", "TEnum", "TTypedef", "TAbstract"]
  137. },
  138. {
  139. "name": "CoreType",
  140. "metadata": ":coreType",
  141. "doc": "Identifies an abstract as core type so that it requires no implementation.",
  142. "targets": ["TAbstract"],
  143. "links": ["https://haxe.org/manual/types-abstract-core-type.html"]
  144. },
  145. {
  146. "name": "CppFileCode",
  147. "metadata": ":cppFileCode",
  148. "doc": "Code to be injected into generated cpp file.",
  149. "platforms": ["cpp"]
  150. },
  151. {
  152. "name": "CppInclude",
  153. "metadata": ":cppInclude",
  154. "doc": "File to be included in generated cpp file.",
  155. "platforms": ["cpp"]
  156. },
  157. {
  158. "name": "CppNamespaceCode",
  159. "metadata": ":cppNamespaceCode",
  160. "doc": "",
  161. "platforms": ["cpp"]
  162. },
  163. {
  164. "name": "Dce",
  165. "metadata": ":dce",
  166. "doc": "Forces dead code elimination even when `--dce full` is not specified.",
  167. "targets": ["TClass", "TEnum"],
  168. "links": ["https://haxe.org/manual/cr-dce.html"]
  169. },
  170. {
  171. "name": "Debug",
  172. "metadata": ":debug",
  173. "doc": "Forces debug information to be generated into the SWF even without `--debug`.",
  174. "platforms": ["flash"],
  175. "targets": ["TClass", "TClassField"]
  176. },
  177. {
  178. "name": "Decl",
  179. "metadata": ":decl",
  180. "doc": "",
  181. "platforms": ["cpp"]
  182. },
  183. {
  184. "name": "DefParam",
  185. "metadata": ":defParam",
  186. "doc": "Default function argument value loaded from the SWF and used for documentation in Genxml.",
  187. "platforms": ["flash"],
  188. "internal": true
  189. },
  190. {
  191. "name": "Depend",
  192. "metadata": ":depend",
  193. "doc": "",
  194. "platforms": ["cpp"]
  195. },
  196. {
  197. "name": "Deprecated",
  198. "metadata": ":deprecated",
  199. "doc": "Mark a type or field as deprecated."
  200. },
  201. {
  202. "name": "DirectlyUsed",
  203. "metadata": ":directlyUsed",
  204. "doc": "Marks types that are directly referenced by non-extern code.",
  205. "internal": true
  206. },
  207. {
  208. "name": "DisplayOverride",
  209. "metadata": ":?display.override",
  210. "doc": "Internally used to mark override fields for completion",
  211. "internal": true
  212. },
  213. {
  214. "name": "Eager",
  215. "metadata": ":eager",
  216. "doc": "Forces typedefs to be followed early.",
  217. "targets": ["TTypedef"]
  218. },
  219. {
  220. "name": "Enum",
  221. "metadata": ":enum",
  222. "doc": "Defines finite value sets to abstract definitions.",
  223. "targets": ["TAbstract"],
  224. "links": ["https://haxe.org/manual/types-abstract-enum.html"]
  225. },
  226. {
  227. "name": "Exhaustive",
  228. "metadata": ":exhaustive",
  229. "doc": "Used internally to mark that a switch is exhaustive.",
  230. "internal": true,
  231. "links": ["https://haxe.org/manual/lf-pattern-matching-exhaustiveness.html"]
  232. },
  233. {
  234. "name": "Expose",
  235. "metadata": ":expose",
  236. "doc": "Includes the class or field in Haxe exports (default name is the classpath).",
  237. "platforms": ["js", "lua"],
  238. "params": ["name"],
  239. "links": ["https://haxe.org/manual/target-javascript-expose.html"]
  240. },
  241. {
  242. "name": "Extern",
  243. "metadata": ":extern",
  244. "doc": "Marks the field as extern so it is not generated.",
  245. "targets": ["TClassField"]
  246. },
  247. {
  248. "name": "File",
  249. "metadata": ":file",
  250. "doc": "Includes a given binary file into the target SWF and associates it with the class (must extend `flash.utils.ByteArray`).",
  251. "platforms": ["flash"],
  252. "params": ["File path"],
  253. "targets": ["TClass"],
  254. "links": ["https://haxe.org/manual/target-flash-resources.html"]
  255. },
  256. {
  257. "name": "FileXml",
  258. "metadata": ":fileXml",
  259. "doc": "Include a given XML attribute snippet in the `Build.xml` entry for the file.",
  260. "platforms": ["cpp"],
  261. "targets": ["TClass"]
  262. },
  263. {
  264. "name": "Final",
  265. "metadata": ":final",
  266. "doc": "Prevents a class or interface from being extended or a method from being overridden. Deprecated by the keyword `final`.",
  267. "targets": ["TClass", "TClassField"],
  268. "links": ["https://haxe.org/manual/class-field-final.html"]
  269. },
  270. {
  271. "devcomment": "this used to have UsedOn TObjectDecl(_)",
  272. "name": "Fixed",
  273. "metadata": ":fixed",
  274. "doc": "Declares an anonymous object to have fixed fields."
  275. },
  276. {
  277. "name": "FlashProperty",
  278. "metadata": ":flash.property",
  279. "doc": "",
  280. "platforms": ["flash"],
  281. "targets": ["TClassField"]
  282. },
  283. {
  284. "name": "FlatEnum",
  285. "metadata": ":flatEnum",
  286. "doc": "Internally used to mark an enum as being flat, i.e. having no function constructors.",
  287. "targets": ["TEnum"],
  288. "internal": true
  289. },
  290. {
  291. "name": "Font",
  292. "metadata": ":font",
  293. "doc": "Embeds the given TrueType font into the class (must extend `flash.text.Font`).",
  294. "params": ["TTF path", "Range String"],
  295. "targets": ["TClass"],
  296. "links": ["https://haxe.org/manual/target-flash-resources.html"]
  297. },
  298. {
  299. "name": "ForLoopVariable",
  300. "metadata": ":forLoopVariable",
  301. "doc": "Internally used to mark for-loop variables.",
  302. "internal": true
  303. },
  304. {
  305. "name": "Forward",
  306. "metadata": ":forward",
  307. "doc": "Forwards field access to underlying type.",
  308. "params": ["List of field names"],
  309. "targets": ["TAbstract"],
  310. "links": ["https://haxe.org/manual/types-abstract-forward.html"]
  311. },
  312. {
  313. "name": "ForwardNew",
  314. "metadata": ":forward.new",
  315. "doc": "Forwards constructor call to underlying type.",
  316. "targets": ["TAbstract"]
  317. },
  318. {
  319. "name": "ForwardStatics",
  320. "metadata": ":forwardStatics",
  321. "doc": "Forwards static field access to underlying type.",
  322. "params": ["List of field names"],
  323. "targets": ["TAbstract"],
  324. "links": ["https://haxe.org/manual/types-abstract-forward.html"]
  325. },
  326. {
  327. "name": "ForwardVariance",
  328. "metadata": ":forward.variance",
  329. "doc": "Forwards variance unification to underlying type.",
  330. "targets": ["TAbstract"]
  331. },
  332. {
  333. "name": "From",
  334. "metadata": ":from",
  335. "doc": "Specifies that the field of the abstract is a cast operation from the type identified in the function.",
  336. "targets": ["TAbstractField"],
  337. "links": ["https://haxe.org/manual/types-abstract-implicit-casts.html"]
  338. },
  339. {
  340. "name": "FunctionalInterface",
  341. "metadata": ":functionalInterface",
  342. "doc": "Mark an interface as a functional interface",
  343. "platforms": ["jvm"]
  344. },
  345. {
  346. "name": "FunctionCode",
  347. "metadata": ":functionCode",
  348. "doc": "Used to inject platform-native code into a function.",
  349. "platforms": ["cpp"]
  350. },
  351. {
  352. "name": "FunctionTailCode",
  353. "metadata": ":functionTailCode",
  354. "doc": "",
  355. "platforms": ["cpp"]
  356. },
  357. {
  358. "name": "Generic",
  359. "metadata": ":generic",
  360. "doc": "Marks a class or class field as generic so each type parameter combination generates its own type/field.",
  361. "links": ["https://haxe.org/manual/type-system-generic.html"]
  362. },
  363. {
  364. "name": "GenericBuild",
  365. "metadata": ":genericBuild",
  366. "doc": "Builds instances of a type using the specified macro.",
  367. "targets": ["TClass"]
  368. },
  369. {
  370. "name": "GenericInstance",
  371. "metadata": ":genericInstance",
  372. "doc": "Internally used to mark instances of `@:generic` methods.",
  373. "targets": ["TClassField"],
  374. "internal": true
  375. },
  376. {
  377. "name": "GenericClassPerMethod",
  378. "metadata": ":genericClassPerMethod",
  379. "doc": "Makes compiler generate separate class per generic static method specialization",
  380. "targets": ["TClass"]
  381. },
  382. {
  383. "name": "Getter",
  384. "metadata": ":getter",
  385. "doc": "Generates a native getter function on the given field.",
  386. "platforms": ["flash"],
  387. "params": ["Class field name"],
  388. "targets": ["TClassField"]
  389. },
  390. {
  391. "name": "Hack",
  392. "metadata": ":hack",
  393. "doc": "Allows extending classes marked as `@:final`. Not guaranteed to work on all targets.",
  394. "targets": ["TClass"]
  395. },
  396. {
  397. "name": "HasUntyped",
  398. "metadata": ":has_untyped",
  399. "doc": "Used by the typer to mark fields that have untyped expressions.",
  400. "internal": true
  401. },
  402. {
  403. "name": "HeaderClassCode",
  404. "metadata": ":headerClassCode",
  405. "doc": "Code to be injected into the generated class, in the header.",
  406. "platforms": ["cpp"]
  407. },
  408. {
  409. "name": "HeaderCode",
  410. "metadata": ":headerCode",
  411. "doc": "Code to be injected into the generated header file.",
  412. "platforms": ["cpp"]
  413. },
  414. {
  415. "name": "HeaderInclude",
  416. "metadata": ":headerInclude",
  417. "doc": "File to be included in generated header file.",
  418. "platforms": ["cpp"]
  419. },
  420. {
  421. "name": "HeaderNamespaceCode",
  422. "metadata": ":headerNamespaceCode",
  423. "doc": "",
  424. "platforms": ["cpp"]
  425. },
  426. {
  427. "name": "HlNative",
  428. "metadata": ":hlNative",
  429. "doc": "Specifies `hdll` name and function prefix for native functions.",
  430. "platforms": ["hl"],
  431. "targets": ["TClass", "TClassField"]
  432. },
  433. {
  434. "name": "HxbId",
  435. "metadata": ":hxb.id",
  436. "doc": "Internally used by hxb",
  437. "internal": true
  438. },
  439. {
  440. "name": "HxCompletion",
  441. "metadata": ":hx.completion",
  442. "doc": "Internally used for completion",
  443. "internal": true
  444. },
  445. {
  446. "name": "HxGen",
  447. "metadata": ":hxGen",
  448. "doc": "Annotates that an extern class was generated by Haxe.",
  449. "targets": ["TClass", "TEnum"]
  450. },
  451. {
  452. "name": "IfFeature",
  453. "metadata": ":ifFeature",
  454. "doc": "Causes a field to be kept by DCE if the given feature is part of the compilation.",
  455. "params": ["Feature name"],
  456. "targets": ["TClassField"],
  457. "links": ["https://haxe.org/manual/cr-dce.html"]
  458. },
  459. {
  460. "name": "PythonImport",
  461. "metadata": ":pythonImport",
  462. "doc": "Generates python import statement for extern classes.",
  463. "platforms": ["python"],
  464. "targets": ["TClass"]
  465. },
  466. {
  467. "name": "ImplicitCast",
  468. "metadata": ":implicitCast",
  469. "doc": "Generated automatically on the AST when an implicit abstract cast happens.",
  470. "targets": ["TExpr"],
  471. "internal": true
  472. },
  473. {
  474. "name": "ImplicitReturn",
  475. "metadata": ":implicitReturn",
  476. "doc": "Generated automatically on the AST when an implicit return is inserted for arrow function.",
  477. "targets": ["TExpr"],
  478. "internal": true
  479. },
  480. {
  481. "name": "Include",
  482. "metadata": ":include",
  483. "doc": "",
  484. "platforms": ["cpp"]
  485. },
  486. {
  487. "name": "InheritDoc",
  488. "metadata": ":inheritDoc",
  489. "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)).",
  490. "targets": ["TClass", "TEnum", "TAbstract", "TAnyField"]
  491. },
  492. {
  493. "name": "InitPackage",
  494. "metadata": ":initPackage",
  495. "doc": "Some weird thing for Genjs we want to remove someday.",
  496. "platforms": ["js"],
  497. "internal": true
  498. },
  499. {
  500. "name": "Inline",
  501. "metadata": ":inline",
  502. "doc": "Inserted by the parser in case of `inline expr` and `inline function`.",
  503. "targets": ["TExpr"]
  504. },
  505. {
  506. "name": "InlineConstructorArgument",
  507. "metadata": ":inlineConstructorArgument",
  508. "doc": "Internally used to mark expressions that were passed as arguments of an inlined constructor.",
  509. "internal": true
  510. },
  511. {
  512. "name": "InlineObject",
  513. "metadata": ":inlineObject",
  514. "doc": "Internally used by inline constructors filter to mark potentially inlineable objects.",
  515. "internal": true
  516. },
  517. {
  518. "name": "IsVar",
  519. "metadata": ":isVar",
  520. "doc": "Forces a physical field to be generated for properties that otherwise would not require one.",
  521. "targets": ["TClassField"],
  522. "links": ["https://haxe.org/manual/class-field-property-rules.html"]
  523. },
  524. {
  525. "name": "JavaDefault",
  526. "metadata": ":java.default",
  527. "doc": "Equivalent to the default modifier of the Java language",
  528. "platforms": ["jvm"],
  529. "targets": ["TClassField"]
  530. },
  531. {
  532. "name": "JvmSynthetic",
  533. "metadata": ":jvm.synthetic",
  534. "doc": "Mark generated class, field or method as synthetic",
  535. "platforms": ["jvm"],
  536. "targets": ["TClass", "TEnum", "TAnyField"]
  537. },
  538. {
  539. "name": "JsRequire",
  540. "metadata": ":jsRequire",
  541. "doc": "Generate JavaScript module require expression for given extern.",
  542. "platforms": ["js"],
  543. "targets": ["TClass"],
  544. "links": ["https://haxe.org/manual/target-javascript-require.html"]
  545. },
  546. {
  547. "name": "LuaRequire",
  548. "metadata": ":luaRequire",
  549. "doc": "Generate Lua module require expression for given extern.",
  550. "platforms": ["lua"],
  551. "targets": ["TClass"]
  552. },
  553. {
  554. "name": "LuaDotMethod",
  555. "metadata": ":luaDotMethod",
  556. "doc": "Indicates that the given extern type instance should have dot-style invocation for methods instead of colon.",
  557. "platforms": ["lua"]
  558. },
  559. {
  560. "name": "Keep",
  561. "metadata": ":keep",
  562. "doc": "Causes a field or type to be kept by DCE.",
  563. "links": ["https://haxe.org/manual/cr-dce.html"]
  564. },
  565. {
  566. "name": "KeepInit",
  567. "metadata": ":keepInit",
  568. "doc": "Causes a class to be kept by DCE even if all its field are removed.",
  569. "targets": ["TClass"],
  570. "links": ["https://haxe.org/manual/cr-dce.html"]
  571. },
  572. {
  573. "name": "KeepSub",
  574. "metadata": ":keepSub",
  575. "doc": "Extends `@:keep` metadata to all implementing and extending classes.",
  576. "targets": ["TClass"],
  577. "links": ["https://haxe.org/manual/cr-dce.html"]
  578. },
  579. {
  580. "name": "LibType",
  581. "metadata": ":libType",
  582. "doc": "Used by `--net-lib` and `--java-lib` to mark a class that should not be checked (overrides, interfaces, etc) by the type loader.",
  583. "platforms": ["jvm"],
  584. "targets": ["TClass"],
  585. "internal": true
  586. },
  587. {
  588. "name": "LoopLabel",
  589. "metadata": ":loopLabel",
  590. "doc": "Mark loop and break expressions with a label to support breaking from within switch.",
  591. "internal": true
  592. },
  593. {
  594. "name": "Markup",
  595. "metadata": ":markup",
  596. "doc": "Used as a result of inline XML parsing.",
  597. "links": ["https://haxe.org/manual/lf-markup.html"]
  598. },
  599. {
  600. "name": "Meta",
  601. "metadata": ":meta",
  602. "doc": "Internally used to mark a class field as being the metadata field.",
  603. "internal": true
  604. },
  605. {
  606. "name": "MergeBlock",
  607. "metadata": ":mergeBlock",
  608. "doc": "Merge the annotated block into the current scope.",
  609. "targets": ["TExpr"]
  610. },
  611. {
  612. "name": "MultiReturn",
  613. "metadata": ":multiReturn",
  614. "doc": "Annotates an extern class as the result of multi-return function.",
  615. "platforms": ["lua"],
  616. "targets": ["TClass"],
  617. "links": ["https://haxe.org/manual/target-lua-multireturns.html"]
  618. },
  619. {
  620. "name": "MultiType",
  621. "metadata": ":multiType",
  622. "doc": "Specifies that an abstract chooses its this-type from its `@:to` functions.",
  623. "params": ["Relevant type parameters"],
  624. "targets": ["TAbstract"]
  625. },
  626. {
  627. "name": "Native",
  628. "metadata": ":native",
  629. "doc": "Rewrites the path of a type or class field during generation.",
  630. "params": ["Output path"],
  631. "targets": ["TClass", "TEnum", "TAbstract", "TClassField"],
  632. "links": ["https://haxe.org/manual/lf-externs.html"]
  633. },
  634. {
  635. "name": "NativeJni",
  636. "metadata": ":java.native",
  637. "doc": "Annotates that a function has implementation in native code through JNI.",
  638. "platforms": ["jvm"],
  639. "targets": ["TClassField"]
  640. },
  641. {
  642. "name": "NativeGen",
  643. "metadata": ":nativeGen",
  644. "doc": "Annotates that a type should be treated as if it were an extern definition - platform native.",
  645. "platforms": ["python"],
  646. "targets": ["TClass", "TEnum"]
  647. },
  648. {
  649. "name": "NativeProperty",
  650. "metadata": ":nativeProperty",
  651. "doc": "Use native properties which will execute even with dynamic usage.",
  652. "platforms": ["cpp"]
  653. },
  654. {
  655. "name": "NativeStaticExtension",
  656. "metadata": ":nativeStaticExtension",
  657. "doc": "Converts static function syntax into member call.",
  658. "platforms": ["cpp"]
  659. },
  660. {
  661. "name": "NoCompletion",
  662. "metadata": ":noCompletion",
  663. "doc": "Prevents the compiler from suggesting completion on this field or type.",
  664. "targets": ["TClassField"],
  665. "links": ["https://haxe.org/manual/cr-completion.html"]
  666. },
  667. {
  668. "name": "NoClosure",
  669. "metadata": ":noClosure",
  670. "doc": "Prevents a method or all methods in a class from being used as a value.",
  671. "targets": ["TClass", "TClassField"]
  672. },
  673. {
  674. "name": "NoDebug",
  675. "metadata": ":noDebug",
  676. "doc": "Does not generate debug information even if `--debug` is set.",
  677. "platforms": ["flash", "cpp"],
  678. "targets": ["TClass", "TClassField"]
  679. },
  680. {
  681. "name": "NoDoc",
  682. "metadata": ":noDoc",
  683. "doc": "Prevents a type or field from being included in documentation generation."
  684. },
  685. {
  686. "name": "NoExpr",
  687. "metadata": ":noExpr",
  688. "doc": "Internally used to mark abstract fields which have no expression by design.",
  689. "internal": true
  690. },
  691. {
  692. "name": "NoImportGlobal",
  693. "metadata": ":noImportGlobal",
  694. "doc": "Prevents a static field from being imported with `import Class.*`.",
  695. "targets": ["TAnyField"]
  696. },
  697. {
  698. "name": "NonVirtual",
  699. "metadata": ":nonVirtual",
  700. "doc": "Declares function to be non-virtual in cpp.",
  701. "platforms": ["cpp"]
  702. },
  703. {
  704. "name": "NoPackageRestrict",
  705. "metadata": ":noPackageRestrict",
  706. "doc": "Allows a module to be accessed across all targets if found on its first type.",
  707. "internal": true
  708. },
  709. {
  710. "name": "NoPrivateAccess",
  711. "metadata": ":noPrivateAccess",
  712. "doc": "Disallow private access to anything for the annotated expression.",
  713. "targets": ["TExpr"]
  714. },
  715. {
  716. "name": "NoStack",
  717. "metadata": ":noStack",
  718. "doc": "",
  719. "platforms": ["cpp"]
  720. },
  721. {
  722. "name": "NotNull",
  723. "metadata": ":notNull",
  724. "doc": "Declares an abstract type as not accepting null values.",
  725. "targets": ["TAbstract"],
  726. "links": ["https://haxe.org/manual/types-nullability.html"]
  727. },
  728. {
  729. "name": "NoUsing",
  730. "metadata": ":noUsing",
  731. "doc": "Prevents a field from being used with static extension.",
  732. "targets": ["TClassField"],
  733. "links": ["https://haxe.org/manual/lf-static-extension.html"]
  734. },
  735. {
  736. "name": "Ns",
  737. "metadata": ":ns",
  738. "doc": "Internally used by the SWF generator to handle namespaces.",
  739. "platforms": ["flash"],
  740. "internal": true
  741. },
  742. {
  743. "name": "NullSafety",
  744. "metadata": ":nullSafety",
  745. "doc": "Enables null safety for classes or fields. Disables null safety for classes, fields or expressions if provided with `Off` as an argument.",
  746. "params": ["Off | Loose | Strict | StrictThreaded"],
  747. "targets": ["TClass", "TClassField", "TExpr"],
  748. "links": ["https://haxe.org/manual/cr-null-safety.html"]
  749. },
  750. {
  751. "name": "Objc",
  752. "metadata": ":objc",
  753. "doc": "Declares a class or interface that is used to interoperate with Objective-C code.",
  754. "platforms": ["cpp"],
  755. "targets": ["TClass"]
  756. },
  757. {
  758. "name": "ObjcProtocol",
  759. "metadata": ":objcProtocol",
  760. "doc": "Associates an interface with, or describes a function in, a native Objective-C protocol.",
  761. "platforms": ["cpp"]
  762. },
  763. {
  764. "name": "Op",
  765. "metadata": ":op",
  766. "doc": "Declares an abstract field as being an operator overload.",
  767. "params": ["The operation"],
  768. "targets": ["TAbstractField"],
  769. "links": ["https://haxe.org/manual/types-abstract-operator-overloading.html"]
  770. },
  771. {
  772. "name": "Optional",
  773. "metadata": ":optional",
  774. "doc": "Marks the field of a structure as optional.",
  775. "targets": ["TClassField"],
  776. "links": ["https://haxe.org/manual/types-nullability-optional-arguments.html"]
  777. },
  778. {
  779. "name": "Overload",
  780. "metadata": ":overload",
  781. "doc": "Allows the field to be called with different argument types.",
  782. "params": ["Function specification (no expression)"],
  783. "targets": ["TClassField"],
  784. "links": ["https://haxe.org/manual/target-javascript-external-libraries.html"]
  785. },
  786. {
  787. "name": "Persistent",
  788. "metadata": ":persistent",
  789. "doc": "Keeps the value of static variables in macro context across compilations.",
  790. "targets": ["TAnyField"],
  791. "platforms": ["eval"]
  792. },
  793. {
  794. "name": "PhpAttribute",
  795. "metadata": ":php.attribute",
  796. "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.",
  797. "platforms": ["php"],
  798. "links": ["https://www.php.net/manual/en/language.attributes.overview.php"]
  799. },
  800. {
  801. "name": "PhpGlobal",
  802. "metadata": ":phpGlobal",
  803. "doc": "Indicates that static fields of an extern class actually are located in the global PHP namespace.",
  804. "platforms": ["php"],
  805. "targets": ["TClass"]
  806. },
  807. {
  808. "name": "PhpClassConst",
  809. "metadata": ":phpClassConst",
  810. "doc": "Indicates that a static var of an extern class is a PHP class constant.",
  811. "platforms": ["php"],
  812. "targets": ["TClassField"]
  813. },
  814. {
  815. "name": "PhpMagic",
  816. "metadata": ":phpMagic",
  817. "doc": "Treat annotated field as special PHP magic field - this meta makes compiler avoid renaming such fields on generating PHP code.",
  818. "platforms": ["php"],
  819. "targets": ["TClassField"]
  820. },
  821. {
  822. "name": "PhpNoConstructor",
  823. "metadata": ":phpNoConstructor",
  824. "doc": "Special meta for extern classes which do not have native constructor in PHP, but need a constructor in Haxe extern.",
  825. "platforms": ["php"],
  826. "targets": ["TClass"]
  827. },
  828. {
  829. "name": "Pos",
  830. "metadata": ":pos",
  831. "doc": "Sets the position of a reified expression.",
  832. "params": ["Position"],
  833. "targets": ["TExpr"],
  834. "links": ["https://haxe.org/manual/macro-reification.html"]
  835. },
  836. {
  837. "name": "Public",
  838. "metadata": ":public",
  839. "doc": "Marks a class field as being public.",
  840. "targets": ["TClassField"],
  841. "internal": true
  842. },
  843. {
  844. "name": "PublicFields",
  845. "metadata": ":publicFields",
  846. "doc": "Forces all class fields of inheriting classes to be public.",
  847. "targets": ["TClass"]
  848. },
  849. {
  850. "name": "Private",
  851. "metadata": ":private",
  852. "doc": "Marks a class field as being private.",
  853. "platforms": ["jvm"],
  854. "targets": ["TClassField"]
  855. },
  856. {
  857. "name": "PrivateAccess",
  858. "metadata": ":privateAccess",
  859. "doc": "Allow private access to anything for the annotated expression.",
  860. "targets": ["TExpr"]
  861. },
  862. {
  863. "name": "Protected",
  864. "metadata": ":protected",
  865. "doc": "Marks a class field as being protected.",
  866. "platforms": ["jvm", "flash"],
  867. "targets": ["TClassField"]
  868. },
  869. {
  870. "name": "Pure",
  871. "metadata": ":pure",
  872. "doc": "Marks a class field, class or expression as pure (side-effect free).",
  873. "targets": ["TClass", "TClassField", "TExpr"]
  874. },
  875. {
  876. "name": "RealPath",
  877. "metadata": ":realPath",
  878. "doc": "Internally used on `@:native` types to retain original path information.",
  879. "internal": true
  880. },
  881. {
  882. "name": "Remove",
  883. "metadata": ":remove",
  884. "doc": "Causes an interface to be removed from all implementing classes before generation.",
  885. "targets": ["TClass"]
  886. },
  887. {
  888. "name": "Require",
  889. "metadata": ":require",
  890. "doc": "Allows access to a field only if the specified compiler flag is set.",
  891. "params": ["Compiler flag to check"],
  892. "targets": ["TClassField"],
  893. "links": ["https://haxe.org/manual/lf-condition-compilation.html"]
  894. },
  895. {
  896. "name": "Resolve",
  897. "metadata": ":resolve",
  898. "doc": "Abstract fields marked with this metadata can be used to resolve unknown fields.",
  899. "targets": ["TClassField"]
  900. },
  901. {
  902. "name": "Rtti",
  903. "metadata": ":rtti",
  904. "doc": "Adds runtime type information.",
  905. "targets": ["TClass"],
  906. "links": ["https://haxe.org/manual/cr-rtti.html"]
  907. },
  908. {
  909. "name": "Runtime",
  910. "metadata": ":runtime",
  911. "doc": "",
  912. "internal": true
  913. },
  914. {
  915. "name": "RuntimeValue",
  916. "metadata": ":runtimeValue",
  917. "doc": "Marks an abstract as being a runtime value.",
  918. "targets": ["TAbstract"]
  919. },
  920. {
  921. "name": "Scalar",
  922. "metadata": ":scalar",
  923. "doc": "Used by hxcpp to mark a custom coreType abstract.",
  924. "platforms": ["cpp"],
  925. "targets": ["TAbstract"]
  926. },
  927. {
  928. "name": "SelfCall",
  929. "metadata": ":selfCall",
  930. "doc": "Translates method calls into calling object directly.",
  931. "platforms": ["js", "lua"],
  932. "targets": ["TClassField"],
  933. "links": ["https://haxe.org/manual/target-javascript-external-libraries.html"]
  934. },
  935. {
  936. "name": "Semantics",
  937. "metadata": ":semantics",
  938. "doc": "The native semantics of the type.",
  939. "params": ["value | reference | variable"],
  940. "targets": ["TClass", "TTypedef", "TAbstract"]
  941. },
  942. {
  943. "name": "Setter",
  944. "metadata": ":setter",
  945. "doc": "Generates a native setter function on the given field.",
  946. "platforms": ["flash"],
  947. "params": ["Class field name"],
  948. "targets": ["TClassField"]
  949. },
  950. {
  951. "name": "Sound",
  952. "metadata": ":sound",
  953. "doc": "Includes a given .wav or .mp3 file into the target SWF and associates it with the class (must extend `flash.media.Sound`).",
  954. "platforms": ["flash"],
  955. "params": ["File path"],
  956. "targets": ["TClass"],
  957. "links": ["https://haxe.org/manual/target-flash-resources.html"]
  958. },
  959. {
  960. "name": "SourceFile",
  961. "metadata": ":sourceFile",
  962. "doc": "Source code filename for external class.",
  963. "platforms": ["cpp"]
  964. },
  965. {
  966. "name": "StackOnly",
  967. "metadata": ":stackOnly",
  968. "doc": "Instances of this type can only appear on the stack.",
  969. "platforms": ["cpp"]
  970. },
  971. {
  972. "name": "StaticExtension",
  973. "metadata": "haxe.internal.static_extension",
  974. "doc": "Used internally to mark static extension fields.",
  975. "internal": true
  976. },
  977. {
  978. "name": "StoredTypedExpr",
  979. "metadata": ":storedTypedExpr",
  980. "doc": "Used internally to reference a typed expression returned from a macro.",
  981. "internal": true
  982. },
  983. {
  984. "name": "Strict",
  985. "metadata": ":strict",
  986. "doc": "Used to declare a native Java metadata; is type checked.",
  987. "platforms": ["jvm"]
  988. },
  989. {
  990. "name": "Struct",
  991. "metadata": ":struct",
  992. "doc": "Marks a class definition as a struct.",
  993. "platforms": ["hl"],
  994. "targets": ["TClass"]
  995. },
  996. {
  997. "name": "StructAccess",
  998. "metadata": ":structAccess",
  999. "doc": "Marks an extern class as using struct access (`.`) not pointer (`->`).",
  1000. "platforms": ["cpp"],
  1001. "targets": ["TClass"]
  1002. },
  1003. {
  1004. "name": "StructInit",
  1005. "metadata": ":structInit",
  1006. "doc": "Allows one to initialize the class with a structure that matches constructor parameters.",
  1007. "targets": ["TClass"]
  1008. },
  1009. {
  1010. "name": "TailRecursion",
  1011. "metadata": ":tailRecursion",
  1012. "doc": "Internally used for tail recursion elimination.",
  1013. "internal": true
  1014. },
  1015. {
  1016. "name": "TemplatedCall",
  1017. "metadata": ":templatedCall",
  1018. "doc": "Indicates that the first parameter of static call should be treated as a template argument.",
  1019. "platforms": ["cpp"],
  1020. "targets": ["TClassField"]
  1021. },
  1022. {
  1023. "name": "This",
  1024. "metadata": ":this",
  1025. "doc": "Internally used to pass a `this` expression to macros.",
  1026. "targets": ["TExpr"],
  1027. "internal": true
  1028. },
  1029. {
  1030. "name": "To",
  1031. "metadata": ":to",
  1032. "doc": "Specifies that the field of the abstract is a cast operation to the type identified in the function.",
  1033. "targets": ["TAbstractField"],
  1034. "links": ["https://haxe.org/manual/types-abstract-implicit-casts.html"]
  1035. },
  1036. {
  1037. "name": "ToString",
  1038. "metadata": ":toString",
  1039. "doc": "Internally used.",
  1040. "internal": true
  1041. },
  1042. {
  1043. "name": "Transitive",
  1044. "metadata": ":transitive",
  1045. "doc": "Allows transitive casts with an abstract.",
  1046. "targets": ["TAbstract"]
  1047. },
  1048. {
  1049. "name": "ValueUsed",
  1050. "metadata": ":valueUsed",
  1051. "doc": "Internally used by DCE to mark an abstract value as used.",
  1052. "internal": true
  1053. },
  1054. {
  1055. "name": "Volatile",
  1056. "metadata": ":volatile",
  1057. "doc": "",
  1058. "platforms": ["jvm"]
  1059. },
  1060. {
  1061. "name": "UnifyMinDynamic",
  1062. "metadata": ":unifyMinDynamic",
  1063. "doc": "Allows a collection of types to unify to `Dynamic`.",
  1064. "targets": ["TClassField"]
  1065. },
  1066. {
  1067. "name": "Unreflective",
  1068. "metadata": ":unreflective",
  1069. "doc": "",
  1070. "platforms": ["cpp"]
  1071. },
  1072. {
  1073. "name": "Used",
  1074. "metadata": ":used",
  1075. "doc": "Internally used by DCE to mark a class or field as used.",
  1076. "internal": true
  1077. },
  1078. {
  1079. "name": "Using",
  1080. "metadata": ":using",
  1081. "doc": "Automatically uses the argument types as static extensions for the annotated type.",
  1082. "targets": ["TClass", "TEnum", "TAbstract"],
  1083. "links": ["https://haxe.org/manual/lf-static-extension-metadata.html"]
  1084. },
  1085. {
  1086. "name": "Value",
  1087. "metadata": ":value",
  1088. "doc": "Used to store default values for fields and function arguments.",
  1089. "targets": ["TClassField"],
  1090. "internal": true
  1091. },
  1092. {
  1093. "name": "HaxeArguments",
  1094. "metadata": ":haxe.arguments",
  1095. "doc": "Used to store function arguments.",
  1096. "targets": ["TClassField"],
  1097. "internal": true
  1098. },
  1099. {
  1100. "name": "HaxeWarning",
  1101. "metadata": ":haxe.warning",
  1102. "doc": "Modifies warning options, equivalent to the -w CLI argument",
  1103. "targets": ["TClass","TClassField"]
  1104. },
  1105. {
  1106. "name": "Void",
  1107. "metadata": ":void",
  1108. "doc": "Use Cpp native `void` return type.",
  1109. "platforms": ["cpp"]
  1110. },
  1111. {
  1112. "name": "NeedsExceptionStack",
  1113. "metadata": ":needsExceptionStack",
  1114. "doc": "Internally used for some of auto-generated `catch` vars",
  1115. "internal": true
  1116. },
  1117. {
  1118. "name": "WrappedException",
  1119. "metadata": ":wrappedException",
  1120. "doc": "Internally used for exceptions wrapping in `throw` expressions.",
  1121. "internal": true
  1122. },
  1123. {
  1124. "name": "NativeArrayAccess",
  1125. "metadata": ":nativeArrayAccess",
  1126. "doc": "When used on an extern class which implements haxe.ArrayAccess native array access syntax will be generated",
  1127. "platforms": ["cpp"]
  1128. }
  1129. ]