meta.json 33 KB

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