typescript-to-gdscript 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/README.md +232 -104
  2. package/dist/cli/convert.d.ts.map +1 -1
  3. package/dist/cli/convert.js +15 -5
  4. package/dist/cli/convert.js.map +1 -1
  5. package/dist/converter/common/index.d.ts +17 -1
  6. package/dist/converter/common/index.d.ts.map +1 -1
  7. package/dist/converter/common/index.js +69 -19
  8. package/dist/converter/common/index.js.map +1 -1
  9. package/dist/converter/ts-to-gd/access-rewrite.d.ts +40 -0
  10. package/dist/converter/ts-to-gd/access-rewrite.d.ts.map +1 -0
  11. package/dist/converter/ts-to-gd/access-rewrite.js +124 -0
  12. package/dist/converter/ts-to-gd/access-rewrite.js.map +1 -0
  13. package/dist/converter/ts-to-gd/class-members.d.ts.map +1 -1
  14. package/dist/converter/ts-to-gd/class-members.js +5 -5
  15. package/dist/converter/ts-to-gd/class-members.js.map +1 -1
  16. package/dist/converter/ts-to-gd/expressions.d.ts.map +1 -1
  17. package/dist/converter/ts-to-gd/expressions.js +32 -8
  18. package/dist/converter/ts-to-gd/expressions.js.map +1 -1
  19. package/dist/converter/ts-to-gd/file-scope.d.ts.map +1 -1
  20. package/dist/converter/ts-to-gd/file-scope.js +1 -1
  21. package/dist/converter/ts-to-gd/file-scope.js.map +1 -1
  22. package/dist/converter/ts-to-gd/gd-getset.js +2 -2
  23. package/dist/converter/ts-to-gd/gd-getset.js.map +1 -1
  24. package/dist/converter/ts-to-gd/index.d.ts.map +1 -1
  25. package/dist/converter/ts-to-gd/index.js +1 -0
  26. package/dist/converter/ts-to-gd/index.js.map +1 -1
  27. package/dist/converter/ts-to-gd/parameters.d.ts.map +1 -1
  28. package/dist/converter/ts-to-gd/parameters.js +2 -2
  29. package/dist/converter/ts-to-gd/parameters.js.map +1 -1
  30. package/dist/converter/ts-to-gd/statements.d.ts.map +1 -1
  31. package/dist/converter/ts-to-gd/statements.js +1 -1
  32. package/dist/converter/ts-to-gd/statements.js.map +1 -1
  33. package/dist/typings/override-system.d.ts.map +1 -1
  34. package/dist/typings/override-system.js +6 -0
  35. package/dist/typings/override-system.js.map +1 -1
  36. package/dist/watcher/check.d.ts +87 -0
  37. package/dist/watcher/check.d.ts.map +1 -0
  38. package/dist/watcher/check.js +209 -0
  39. package/dist/watcher/check.js.map +1 -0
  40. package/dist/watcher/heal.d.ts +66 -0
  41. package/dist/watcher/heal.d.ts.map +1 -0
  42. package/dist/watcher/heal.js +132 -0
  43. package/dist/watcher/heal.js.map +1 -0
  44. package/dist/watcher/index.d.ts +1 -0
  45. package/dist/watcher/index.d.ts.map +1 -1
  46. package/dist/watcher/index.js +48 -52
  47. package/dist/watcher/index.js.map +1 -1
  48. package/package.json +6 -1
  49. package/typings/classes/AccessibilityServer.d.ts +1 -1
  50. package/typings/classes/AnimationLibrary.d.ts +4 -4
  51. package/typings/classes/AnimationNodeBlendSpace1D.d.ts +28 -2
  52. package/typings/classes/AnimationNodeBlendSpace2D.d.ts +28 -2
  53. package/typings/classes/AreaLight3D.d.ts +37 -0
  54. package/typings/classes/AudioEffectInstance.d.ts +1 -1
  55. package/typings/classes/AudioStreamRandomizer.d.ts +10 -0
  56. package/typings/classes/Basis.d.ts +2 -2
  57. package/typings/classes/CPUParticles2D.d.ts +2 -2
  58. package/typings/classes/CPUParticles3D.d.ts +2 -2
  59. package/typings/classes/CanvasItem.d.ts +15 -0
  60. package/typings/classes/CodeEdit.d.ts +2 -0
  61. package/typings/classes/CollisionObject2D.d.ts +2 -2
  62. package/typings/classes/Container.d.ts +1 -0
  63. package/typings/classes/Control.d.ts +68 -9
  64. package/typings/classes/Curve.d.ts +26 -1
  65. package/typings/classes/Curve2D.d.ts +15 -0
  66. package/typings/classes/Curve3D.d.ts +20 -0
  67. package/typings/classes/DirAccess.d.ts +6 -1
  68. package/typings/classes/DisplayServer.d.ts +35 -10
  69. package/typings/classes/DrawableTexture2D.d.ts +0 -4
  70. package/typings/classes/EditorCommandPalette.d.ts +0 -2
  71. package/typings/classes/EditorContextMenuPlugin.d.ts +4 -0
  72. package/typings/classes/EditorDock.d.ts +2 -3
  73. package/typings/classes/EditorExportPlatform.d.ts +4 -2
  74. package/typings/classes/EditorExportPlugin.d.ts +2 -0
  75. package/typings/classes/EditorFeatureProfile.d.ts +1 -1
  76. package/typings/classes/EditorInspector.d.ts +10 -0
  77. package/typings/classes/EditorInterface.d.ts +2 -2
  78. package/typings/classes/EditorNode3DGizmoPlugin.d.ts +4 -0
  79. package/typings/classes/EditorPlugin.d.ts +4 -4
  80. package/typings/classes/EditorResourcePicker.d.ts +2 -1
  81. package/typings/classes/EditorSceneFormatImporter.d.ts +23 -0
  82. package/typings/classes/EditorSettings.d.ts +44 -7
  83. package/typings/classes/EditorTranslationParserPlugin.d.ts +4 -0
  84. package/typings/classes/EditorVCSInterface.d.ts +6 -2
  85. package/typings/classes/FileDialog.d.ts +15 -0
  86. package/typings/classes/Font.d.ts +13 -1
  87. package/typings/classes/FontVariation.d.ts +10 -0
  88. package/typings/classes/GDScript.d.ts +8 -0
  89. package/typings/classes/GDScriptLanguageProtocol.d.ts +25 -0
  90. package/typings/classes/GDScriptSyntaxHighlighter.d.ts +6 -0
  91. package/typings/classes/GDScriptTextDocument.d.ts +27 -0
  92. package/typings/classes/GDScriptWorkspace.d.ts +17 -0
  93. package/typings/classes/GPUParticles2D.d.ts +2 -2
  94. package/typings/classes/GPUParticles3D.d.ts +15 -2
  95. package/typings/classes/Geometry2D.d.ts +2 -2
  96. package/typings/classes/Image.d.ts +6 -4
  97. package/typings/classes/ImageFormatLoader.d.ts +5 -0
  98. package/typings/classes/Input.d.ts +11 -2
  99. package/typings/classes/InputEventMouseMotion.d.ts +2 -2
  100. package/typings/classes/ItemList.d.ts +20 -0
  101. package/typings/classes/IterateIK3D.d.ts +6 -3
  102. package/typings/classes/JavaClassWrapper.d.ts +13 -0
  103. package/typings/classes/JavaScriptBridge.d.ts +1 -1
  104. package/typings/classes/Label.d.ts +1 -0
  105. package/typings/classes/LabelSettings.d.ts +25 -0
  106. package/typings/classes/Light3D.d.ts +1 -1
  107. package/typings/classes/Logger.d.ts +1 -1
  108. package/typings/classes/LookAtModifier3D.d.ts +1 -1
  109. package/typings/classes/MenuButton.d.ts +35 -0
  110. package/typings/classes/MeshLibrary.d.ts +2 -0
  111. package/typings/classes/MovieWriter.d.ts +2 -0
  112. package/typings/classes/MultiplayerPeerExtension.d.ts +9 -9
  113. package/typings/classes/Node.d.ts +6 -0
  114. package/typings/classes/Node3D.d.ts +6 -4
  115. package/typings/classes/OS.d.ts +1 -1
  116. package/typings/classes/Object.d.ts +11 -8
  117. package/typings/classes/OptimizedTranslation.d.ts +2 -2
  118. package/typings/classes/OptionButton.d.ts +51 -7
  119. package/typings/classes/PacketPeerExtension.d.ts +1 -1
  120. package/typings/classes/ParticleProcessMaterial.d.ts +58 -0
  121. package/typings/classes/PhysicsDirectSpaceState2DExtension.d.ts +6 -6
  122. package/typings/classes/PhysicsDirectSpaceState3DExtension.d.ts +6 -6
  123. package/typings/classes/PhysicsServer2DExtension.d.ts +5 -5
  124. package/typings/classes/PhysicsServer3DExtension.d.ts +1 -1
  125. package/typings/classes/PopupMenu.d.ts +58 -6
  126. package/typings/classes/ProjectSettings.d.ts +89 -21
  127. package/typings/classes/Quaternion.d.ts +2 -2
  128. package/typings/classes/RDAccelerationStructureGeometry.d.ts +42 -0
  129. package/typings/classes/RDAccelerationStructureInstance.d.ts +34 -0
  130. package/typings/classes/RDHitGroup.d.ts +20 -0
  131. package/typings/classes/RDPipelineShader.d.ts +14 -0
  132. package/typings/classes/RandomNumberGenerator.d.ts +4 -2
  133. package/typings/classes/RenderSceneBuffersConfiguration.d.ts +4 -1
  134. package/typings/classes/RenderingDevice.d.ts +93 -23
  135. package/typings/classes/RenderingServer.d.ts +51 -3
  136. package/typings/classes/Resource.d.ts +2 -0
  137. package/typings/classes/ResourceImporterOBJ.d.ts +1 -1
  138. package/typings/classes/ResourceImporterScene.d.ts +11 -3
  139. package/typings/classes/RichTextLabel.d.ts +14 -6
  140. package/typings/classes/SceneTree.d.ts +29 -5
  141. package/typings/classes/Script.d.ts +2 -0
  142. package/typings/classes/ScriptEditor.d.ts +7 -0
  143. package/typings/classes/ScriptLanguageExtension.d.ts +7 -0
  144. package/typings/classes/ScrollContainer.d.ts +17 -5
  145. package/typings/classes/SkeletonModification2DJiggle.d.ts +4 -0
  146. package/typings/classes/SpringBoneSimulator3D.d.ts +4 -2
  147. package/typings/classes/SpriteFrames.d.ts +20 -4
  148. package/typings/classes/StreamPeerExtension.d.ts +2 -2
  149. package/typings/classes/TabBar.d.ts +20 -0
  150. package/typings/classes/TabContainer.d.ts +21 -3
  151. package/typings/classes/TextEdit.d.ts +2 -2
  152. package/typings/classes/TextServer.d.ts +23 -1
  153. package/typings/classes/TextServerExtension.d.ts +23 -1
  154. package/typings/classes/TileSet.d.ts +3 -1
  155. package/typings/classes/Tree.d.ts +16 -7
  156. package/typings/classes/TreeItem.d.ts +9 -2
  157. package/typings/classes/UndoRedo.d.ts +2 -2
  158. package/typings/classes/Vector2.d.ts +4 -2
  159. package/typings/classes/Vector2i.d.ts +4 -2
  160. package/typings/classes/Vector3.d.ts +4 -2
  161. package/typings/classes/Vector3i.d.ts +4 -2
  162. package/typings/classes/Vector4.d.ts +4 -2
  163. package/typings/classes/Vector4i.d.ts +4 -2
  164. package/typings/classes/Viewport.d.ts +17 -1
  165. package/typings/classes/Window.d.ts +20 -6
  166. package/typings/classes/_globals.d.ts +104 -26
  167. package/typings/classes/index.d.ts +10 -112
  168. package/typings/godot-class-registry.json +885 -3604
  169. package/typings/classes/VisualShader.d.ts +0 -112
  170. package/typings/classes/VisualShaderNode.d.ts +0 -63
  171. package/typings/classes/VisualShaderNodeBillboard.d.ts +0 -28
  172. package/typings/classes/VisualShaderNodeBooleanConstant.d.ts +0 -10
  173. package/typings/classes/VisualShaderNodeBooleanParameter.d.ts +0 -14
  174. package/typings/classes/VisualShaderNodeClamp.d.ts +0 -26
  175. package/typings/classes/VisualShaderNodeColorConstant.d.ts +0 -10
  176. package/typings/classes/VisualShaderNodeColorFunc.d.ts +0 -32
  177. package/typings/classes/VisualShaderNodeColorOp.d.ts +0 -32
  178. package/typings/classes/VisualShaderNodeColorParameter.d.ts +0 -14
  179. package/typings/classes/VisualShaderNodeComment.d.ts +0 -12
  180. package/typings/classes/VisualShaderNodeCompare.d.ts +0 -68
  181. package/typings/classes/VisualShaderNodeConstant.d.ts +0 -6
  182. package/typings/classes/VisualShaderNodeCubemap.d.ts +0 -43
  183. package/typings/classes/VisualShaderNodeCubemapParameter.d.ts +0 -6
  184. package/typings/classes/VisualShaderNodeCurveTexture.d.ts +0 -10
  185. package/typings/classes/VisualShaderNodeCurveXYZTexture.d.ts +0 -10
  186. package/typings/classes/VisualShaderNodeCustom.d.ts +0 -122
  187. package/typings/classes/VisualShaderNodeDerivativeFunc.d.ts +0 -56
  188. package/typings/classes/VisualShaderNodeDeterminant.d.ts +0 -6
  189. package/typings/classes/VisualShaderNodeDistanceFade.d.ts +0 -6
  190. package/typings/classes/VisualShaderNodeDotProduct.d.ts +0 -6
  191. package/typings/classes/VisualShaderNodeExpression.d.ts +0 -12
  192. package/typings/classes/VisualShaderNodeFaceForward.d.ts +0 -8
  193. package/typings/classes/VisualShaderNodeFloatConstant.d.ts +0 -10
  194. package/typings/classes/VisualShaderNodeFloatFunc.d.ts +0 -108
  195. package/typings/classes/VisualShaderNodeFloatOp.d.ts +0 -36
  196. package/typings/classes/VisualShaderNodeFloatParameter.d.ts +0 -52
  197. package/typings/classes/VisualShaderNodeFrame.d.ts +0 -35
  198. package/typings/classes/VisualShaderNodeFresnel.d.ts +0 -6
  199. package/typings/classes/VisualShaderNodeGlobalExpression.d.ts +0 -6
  200. package/typings/classes/VisualShaderNodeGroupBase.d.ts +0 -60
  201. package/typings/classes/VisualShaderNodeIf.d.ts +0 -8
  202. package/typings/classes/VisualShaderNodeInput.d.ts +0 -20
  203. package/typings/classes/VisualShaderNodeIntConstant.d.ts +0 -10
  204. package/typings/classes/VisualShaderNodeIntFunc.d.ts +0 -24
  205. package/typings/classes/VisualShaderNodeIntOp.d.ts +0 -48
  206. package/typings/classes/VisualShaderNodeIntParameter.d.ts +0 -58
  207. package/typings/classes/VisualShaderNodeIs.d.ts +0 -18
  208. package/typings/classes/VisualShaderNodeLinearSceneDepth.d.ts +0 -6
  209. package/typings/classes/VisualShaderNodeMix.d.ts +0 -28
  210. package/typings/classes/VisualShaderNodeMultiplyAdd.d.ts +0 -22
  211. package/typings/classes/VisualShaderNodeOuterProduct.d.ts +0 -6
  212. package/typings/classes/VisualShaderNodeOutput.d.ts +0 -6
  213. package/typings/classes/VisualShaderNodeParameter.d.ts +0 -32
  214. package/typings/classes/VisualShaderNodeParameterRef.d.ts +0 -10
  215. package/typings/classes/VisualShaderNodeParticleAccelerator.d.ts +0 -20
  216. package/typings/classes/VisualShaderNodeParticleBoxEmitter.d.ts +0 -6
  217. package/typings/classes/VisualShaderNodeParticleConeVelocity.d.ts +0 -6
  218. package/typings/classes/VisualShaderNodeParticleEmit.d.ts +0 -22
  219. package/typings/classes/VisualShaderNodeParticleEmitter.d.ts +0 -12
  220. package/typings/classes/VisualShaderNodeParticleMeshEmitter.d.ts +0 -20
  221. package/typings/classes/VisualShaderNodeParticleMultiplyByAxisAngle.d.ts +0 -10
  222. package/typings/classes/VisualShaderNodeParticleOutput.d.ts +0 -6
  223. package/typings/classes/VisualShaderNodeParticleRandomness.d.ts +0 -22
  224. package/typings/classes/VisualShaderNodeParticleRingEmitter.d.ts +0 -6
  225. package/typings/classes/VisualShaderNodeParticleSphereEmitter.d.ts +0 -6
  226. package/typings/classes/VisualShaderNodeProximityFade.d.ts +0 -6
  227. package/typings/classes/VisualShaderNodeRandomRange.d.ts +0 -6
  228. package/typings/classes/VisualShaderNodeRemap.d.ts +0 -33
  229. package/typings/classes/VisualShaderNodeReroute.d.ts +0 -8
  230. package/typings/classes/VisualShaderNodeResizableBase.d.ts +0 -10
  231. package/typings/classes/VisualShaderNodeRotationByAxis.d.ts +0 -6
  232. package/typings/classes/VisualShaderNodeSDFRaymarch.d.ts +0 -6
  233. package/typings/classes/VisualShaderNodeSDFToScreenUV.d.ts +0 -8
  234. package/typings/classes/VisualShaderNodeSample3D.d.ts +0 -18
  235. package/typings/classes/VisualShaderNodeScreenNormalWorldSpace.d.ts +0 -6
  236. package/typings/classes/VisualShaderNodeScreenUVToSDF.d.ts +0 -8
  237. package/typings/classes/VisualShaderNodeSmoothStep.d.ts +0 -28
  238. package/typings/classes/VisualShaderNodeStep.d.ts +0 -28
  239. package/typings/classes/VisualShaderNodeSwitch.d.ts +0 -30
  240. package/typings/classes/VisualShaderNodeTexture.d.ts +0 -57
  241. package/typings/classes/VisualShaderNodeTexture2DArray.d.ts +0 -12
  242. package/typings/classes/VisualShaderNodeTexture2DArrayParameter.d.ts +0 -6
  243. package/typings/classes/VisualShaderNodeTexture2DParameter.d.ts +0 -6
  244. package/typings/classes/VisualShaderNodeTexture3D.d.ts +0 -12
  245. package/typings/classes/VisualShaderNodeTexture3DParameter.d.ts +0 -6
  246. package/typings/classes/VisualShaderNodeTextureParameter.d.ts +0 -104
  247. package/typings/classes/VisualShaderNodeTextureParameterTriplanar.d.ts +0 -6
  248. package/typings/classes/VisualShaderNodeTextureSDF.d.ts +0 -6
  249. package/typings/classes/VisualShaderNodeTextureSDFNormal.d.ts +0 -6
  250. package/typings/classes/VisualShaderNodeTransformCompose.d.ts +0 -6
  251. package/typings/classes/VisualShaderNodeTransformConstant.d.ts +0 -10
  252. package/typings/classes/VisualShaderNodeTransformDecompose.d.ts +0 -6
  253. package/typings/classes/VisualShaderNodeTransformFunc.d.ts +0 -18
  254. package/typings/classes/VisualShaderNodeTransformOp.d.ts +0 -32
  255. package/typings/classes/VisualShaderNodeTransformParameter.d.ts +0 -14
  256. package/typings/classes/VisualShaderNodeTransformVecMult.d.ts +0 -22
  257. package/typings/classes/VisualShaderNodeUIntConstant.d.ts +0 -10
  258. package/typings/classes/VisualShaderNodeUIntFunc.d.ts +0 -20
  259. package/typings/classes/VisualShaderNodeUIntOp.d.ts +0 -48
  260. package/typings/classes/VisualShaderNodeUIntParameter.d.ts +0 -16
  261. package/typings/classes/VisualShaderNodeUVFunc.d.ts +0 -22
  262. package/typings/classes/VisualShaderNodeUVPolarCoord.d.ts +0 -6
  263. package/typings/classes/VisualShaderNodeVarying.d.ts +0 -14
  264. package/typings/classes/VisualShaderNodeVaryingGetter.d.ts +0 -6
  265. package/typings/classes/VisualShaderNodeVaryingSetter.d.ts +0 -6
  266. package/typings/classes/VisualShaderNodeVec2Constant.d.ts +0 -10
  267. package/typings/classes/VisualShaderNodeVec2Parameter.d.ts +0 -14
  268. package/typings/classes/VisualShaderNodeVec3Constant.d.ts +0 -10
  269. package/typings/classes/VisualShaderNodeVec3Parameter.d.ts +0 -14
  270. package/typings/classes/VisualShaderNodeVec4Constant.d.ts +0 -10
  271. package/typings/classes/VisualShaderNodeVec4Parameter.d.ts +0 -14
  272. package/typings/classes/VisualShaderNodeVectorBase.d.ts +0 -20
  273. package/typings/classes/VisualShaderNodeVectorCompose.d.ts +0 -8
  274. package/typings/classes/VisualShaderNodeVectorDecompose.d.ts +0 -8
  275. package/typings/classes/VisualShaderNodeVectorDistance.d.ts +0 -6
  276. package/typings/classes/VisualShaderNodeVectorFunc.d.ts +0 -84
  277. package/typings/classes/VisualShaderNodeVectorLen.d.ts +0 -6
  278. package/typings/classes/VisualShaderNodeVectorOp.d.ts +0 -42
  279. package/typings/classes/VisualShaderNodeVectorRefract.d.ts +0 -8
  280. package/typings/classes/VisualShaderNodeWorldPositionFromDepth.d.ts +0 -8
@@ -107,6 +107,13 @@ export function isFloatType(type, checker) {
107
107
  /**
108
108
  * Converts a TypeScript type to its GDScript type annotation string.
109
109
  * Returns null if the type should be omitted.
110
+ *
111
+ * NOTE: unlike {@link tsTypeNodeToGdType}, this `ts.Type`-based variant does
112
+ * NOT classify reference types — it returns the symbol name verbatim for any
113
+ * class-like type, so an `object`/`interface`/unknown type would leak a bogus
114
+ * annotation. It is currently unused for emission (kept only for its own
115
+ * recursion). Do not wire it into an emit path without adding the same
116
+ * class/enum/registry classification `classifyTypeReferenceName` applies.
110
117
  */
111
118
  export function tsTypeToGdType(type, checker) {
112
119
  // Check for int/float aliases
@@ -165,7 +172,7 @@ export function tsTypeToGdType(type, checker) {
165
172
  /**
166
173
  * Converts a TypeScript type annotation node to GDScript type string.
167
174
  */
168
- export function tsTypeNodeToGdType(typeNode, checker, sourceFile, className) {
175
+ export function tsTypeNodeToGdType(typeNode, checker, sourceFile, className, registry) {
169
176
  if (!typeNode)
170
177
  return null;
171
178
  // Check for literal type names like `int` and `float`
@@ -191,23 +198,9 @@ export function tsTypeNodeToGdType(typeNode, checker, sourceFile, className) {
191
198
  return null;
192
199
  if (arg.kind === ts.SyntaxKind.VoidKeyword)
193
200
  return null;
194
- return tsTypeNodeToGdType(arg, checker, sourceFile, className);
195
- }
196
- // Type aliases (non-class) → omit annotation. GDScript has no equivalent
197
- // and `Variant` conveys nothing beyond "untyped", which the bare `var x`
198
- // / `func f(x)` forms already express.
199
- const symbol = checker.getSymbolAtLocation(typeNode.typeName);
200
- if (symbol) {
201
- const declarations = symbol.getDeclarations();
202
- if (declarations && declarations.length > 0) {
203
- const decl = declarations[0];
204
- if (ts.isTypeAliasDeclaration(decl)) {
205
- return null;
206
- }
207
- }
201
+ return tsTypeNodeToGdType(arg, checker, sourceFile, className, registry);
208
202
  }
209
- // Strip generic args for class types
210
- return name;
203
+ return classifyTypeReferenceName(typeNode, name, checker, registry);
211
204
  }
212
205
  // Keyword types
213
206
  if (typeNode.kind === ts.SyntaxKind.NumberKeyword)
@@ -228,7 +221,7 @@ export function tsTypeNodeToGdType(typeNode, checker, sourceFile, className) {
228
221
  return null;
229
222
  // Array type: T[] -> Array[T]
230
223
  if (ts.isArrayTypeNode(typeNode)) {
231
- const elementType = tsTypeNodeToGdType(typeNode.elementType, checker, sourceFile, className);
224
+ const elementType = tsTypeNodeToGdType(typeNode.elementType, checker, sourceFile, className, registry);
232
225
  return elementType ? `Array[${elementType}]` : 'Array';
233
226
  }
234
227
  // Function type: () => void -> Callable
@@ -243,7 +236,7 @@ export function tsTypeNodeToGdType(typeNode, checker, sourceFile, className) {
243
236
  if (ts.isUnionTypeNode(typeNode)) {
244
237
  const nonNull = typeNode.types.filter((t) => !isNullLiteralTypeNode(t));
245
238
  if (nonNull.length === 1 && nonNull.length !== typeNode.types.length) {
246
- return tsTypeNodeToGdType(nonNull[0], checker, sourceFile, className);
239
+ return tsTypeNodeToGdType(nonNull[0], checker, sourceFile, className, registry);
247
240
  }
248
241
  return null;
249
242
  }
@@ -252,6 +245,63 @@ export function tsTypeNodeToGdType(typeNode, checker, sourceFile, className) {
252
245
  }
253
246
  return null;
254
247
  }
248
+ /**
249
+ * Classify a TS type-reference name and decide whether it should be emitted
250
+ * as a GDScript type annotation.
251
+ *
252
+ * Only types that GDScript actually has are emitted:
253
+ * - User / Godot `class` declarations and `enum` declarations (resolved via
254
+ * the TS checker — user classes resolve locally even without the Godot
255
+ * typings loaded).
256
+ * - Godot built-in types recognised *by name* from the registry: classes
257
+ * (`Node`, `Node2D`, …), value-type constructors (`Vector2`, `Color`,
258
+ * `Dictionary`, …) and global enums (`Key`, `MouseButton`, …). The
259
+ * name-based check is what keeps Godot types working in test/program
260
+ * setups that don't load the Godot `.d.ts` typings.
261
+ *
262
+ * Everything else — type aliases, plain interfaces, `object`-like types,
263
+ * dotted refs that don't resolve to a class/enum (`Node.ProcessMode`,
264
+ * `Outer.SomeIface`) and unknown / unresolved names — is omitted (the bare
265
+ * `var x` / `func f(x)` form is the idiomatic "untyped" GD). GD type hints are
266
+ * optional, so dropping an unverifiable type is always safe; emitting a bogus
267
+ * one would break the `.gd`.
268
+ *
269
+ * Omitting is always safe; emitting an annotation GDScript doesn't recognise
270
+ * breaks the generated `.gd`. So when no registry is available the converter
271
+ * can't recognise Godot built-ins by name — it only emits types it can prove
272
+ * are classes/enums (via the checker) and drops the rest, rather than risk
273
+ * leaking an invalid type.
274
+ */
275
+ function classifyTypeReferenceName(typeNode, name, checker, registry) {
276
+ // Resolve the symbol, following import aliases to the real declaration so
277
+ // that types imported from another file are classified by what they are,
278
+ // not by the `ImportSpecifier` binding.
279
+ let symbol = checker.getSymbolAtLocation(typeNode.typeName);
280
+ if (symbol && symbol.flags & ts.SymbolFlags.Alias) {
281
+ symbol = checker.getAliasedSymbol(symbol);
282
+ }
283
+ const declarations = symbol?.getDeclarations() ?? [];
284
+ // Type aliases have no GDScript equivalent → omit.
285
+ if (declarations.some(ts.isTypeAliasDeclaration))
286
+ return null;
287
+ // User / Godot `class` and `enum` declarations are valid GD types.
288
+ if (declarations.some((d) => ts.isClassDeclaration(d) || ts.isEnumDeclaration(d))) {
289
+ return name;
290
+ }
291
+ // Godot built-in types are recognised by name (works without typings).
292
+ if (registry &&
293
+ (registry.hasClass(name) ||
294
+ registry.isConstructor(name) ||
295
+ registry.isGlobalEnum(name))) {
296
+ return name;
297
+ }
298
+ // Whatever is left is a non-class type (interface, `object`-like, namespace),
299
+ // a dotted ref we can't verify (`Node.ProcessMode`, `Outer.SomeIface`), or an
300
+ // unknown / unresolved name — none provably a GD type. Omit the annotation:
301
+ // GD type hints are optional, so dropping a type is always safe, whereas
302
+ // emitting a bogus one breaks the generated GDScript.
303
+ return null;
304
+ }
255
305
  /** True for the `null` keyword wrapped in a `LiteralTypeNode`. */
256
306
  function isNullLiteralTypeNode(node) {
257
307
  return (ts.isLiteralTypeNode(node) &&
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/converter/common/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/converter/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAwD5B,+DAA+D;AAE/D;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,WAAW,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAAgB;IAC7D,iEAAiE;IACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;IACvE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,IAAY;IACpC,mEAAmE;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACxC,oEAAoE;IACpE,iEAAiE;IACjE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CAAC,WAAmB;IAC3D,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC;QAChC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,WAAW,CAAC;AAClB,CAAC;AAgCD;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAuB;IAC/D,OAAO,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,YAAY,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAuB;IAC/D,OAAO,GAAG,KAAK,OAAO,CAAC;AACzB,CAAC;AAWD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAa,EAAE,OAAuB;IAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC;IACpD,OAAO,MAAM,EAAE,OAAO,EAAE,KAAK,KAAK,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa,EAAE,OAAuB;IAChE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC;IACpD,OAAO,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AACvC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAa,EACb,OAAuB;IAEvB,8BAA8B;IAC9B,IAAI,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAE/C,kBAAkB;IAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IAE1D,SAAS;IACT,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IAE3D,UAAU;IACV,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAE1D,OAAO;IACP,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IAEvD,OAAO;IACP,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IAEvD,uBAAuB;IACvB,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAI,IAAyB,CAAC,aAAa,CAAC;QAC1D,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,CAAC;YAC1D,OAAO,WAAW,CAAC,CAAC,CAAC,SAAS,WAAW,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;QACzD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,0BAA0B;IAC1B,IACE,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,GAAG,CAAC;QACnC,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,MAAM,EACrC,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,QAAQ;YAAE,OAAO,UAAU,CAAC;IAClE,CAAC;IAED,cAAc;IACd,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,4BAA4B;QAC5B,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACnC,aAAa;QACb,IAAI,IAAI,KAAK,YAAY;YAAE,OAAO,YAAY,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6DAA6D;IAC7D,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO,IAAI,CAAC;IAEzD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAiC,EACjC,OAAuB,EACvB,UAAyB,EACzB,SAAkB,EAClB,QAA6B;IAE7B,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,sDAAsD;IACtD,IAAI,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,IAAI,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjD,mEAAmE;QACnE,wDAAwD;QACxD,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC;YAClD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QACpD,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QACvC,2EAA2E;QAC3E,8EAA8E;QAC9E,oEAAoE;QACpE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACtB,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAC;YACxD,OAAO,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,yBAAyB,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED,gBAAgB;IAChB,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa;QAAE,OAAO,OAAO,CAAC;IAClE,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa;QAAE,OAAO,QAAQ,CAAC;IACnE,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,cAAc;QAAE,OAAO,MAAM,CAAC;IAClE,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC;IAC/D,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC;IAC/D,yEAAyE;IACzE,mEAAmE;IACnE,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAChE,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE5D,8BAA8B;IAC9B,IAAI,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,kBAAkB,CACpC,QAAQ,CAAC,WAAW,EACpB,OAAO,EACP,UAAU,EACV,SAAS,EACT,QAAQ,CACT,CAAC;QACF,OAAO,WAAW,CAAC,CAAC,CAAC,SAAS,WAAW,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;IACzD,CAAC;IAED,wCAAwC;IACxC,IAAI,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,6DAA6D;IAC7D,qEAAqE;IACrE,gEAAgE;IAChE,+DAA+D;IAC/D,6DAA6D;IAC7D,IAAI,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACrE,OAAO,kBAAkB,CACvB,OAAO,CAAC,CAAC,CAAE,EACX,OAAO,EACP,UAAU,EACV,SAAS,EACT,QAAQ,CACT,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,EAAE,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAS,yBAAyB,CAChC,QAA8B,EAC9B,IAAY,EACZ,OAAuB,EACvB,QAA6B;IAE7B,0EAA0E;IAC1E,yEAAyE;IACzE,wCAAwC;IACxC,IAAI,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAClD,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IAErD,mDAAmD;IACnD,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9D,mEAAmE;IACnE,IACE,YAAY,CAAC,IAAI,CACf,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAC3D,EACD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uEAAuE;IACvE,IACE,QAAQ;QACR,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtB,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;YAC5B,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAC9B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8EAA8E;IAC9E,8EAA8E;IAC9E,4EAA4E;IAC5E,yEAAyE;IACzE,sDAAsD;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kEAAkE;AAClE,SAAS,qBAAqB,CAAC,IAAiB;IAC9C,OAAO,CACL,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,CAChD,CAAC;AACJ,CAAC;AAED,qEAAqE;AAErE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,QAA4B;IAE5B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAE9B,IACE,OAAO,KAAK,EAAE;QACd,OAAO,KAAK,KAAK;QACjB,OAAO,KAAK,SAAS;QACrB,OAAO,KAAK,MAAM,EAClB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7D,IACE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QACtB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC5B,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,EACjC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,2EAA2E;IAC3E,2EAA2E;IAC3E,4EAA4E;IAC5E,uDAAuD;IACvD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAElD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Classification helpers for the member-access → `.get()` rewrite.
3
+ *
4
+ * Plain TS object types (interfaces, type literals, inferred object
5
+ * literals) are Dictionaries at GDScript runtime, so standalone member
6
+ * READS on them are emitted as `obj.get("prop")`. `.get()` exists on
7
+ * both `Dictionary` and `Object`, which makes the emitted form valid
8
+ * even when the classification is computed from stale types — the
9
+ * property that lets the watch/check pipeline treat staleness as a
10
+ * visible-diagnostics problem instead of a silent-runtime one.
11
+ *
12
+ * Writes are NOT rewritten (`obj.get("p") = v` is invalid GDScript;
13
+ * plain `obj.prop = v` works on both Dictionary and Object), and
14
+ * chained links / callee positions keep dot access (no safety
15
+ * difference, less output churn).
16
+ */
17
+ import ts from 'typescript';
18
+ import type { GodotClassRegistry } from '../../typings/godot-registry.ts';
19
+ /**
20
+ * True when every non-nullish union constituent of `type` is a plain
21
+ * TS object type — i.e. a value that exists as a `Dictionary` in the
22
+ * generated GDScript.
23
+ *
24
+ * Deliberately conservative: anything unprovable (any/unknown/error
25
+ * types, type parameters, mixed unions, intersections) returns false
26
+ * so the caller falls back to the legacy optionality-based behavior.
27
+ */
28
+ export declare function isPlainObjectType(type: ts.Type, checker: ts.TypeChecker, registry?: GodotClassRegistry): boolean;
29
+ /**
30
+ * True when `node` is the target of an assignment: LHS of `=` or any
31
+ * compound assignment (`+=`, `||=`, …), or the operand of `++`/`--`.
32
+ * Walks through parentheses and non-null assertions wrapping the node
33
+ * (`(obj.prop) = v`, `obj.prop! += 1`).
34
+ *
35
+ * Assignment targets must keep plain dot/index form — `obj.get("p") = v`
36
+ * is invalid GDScript, while `obj.prop = v` is valid on both Dictionary
37
+ * and Object.
38
+ */
39
+ export declare function isAssignmentTarget(node: ts.Expression): boolean;
40
+ //# sourceMappingURL=access-rewrite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-rewrite.d.ts","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/access-rewrite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,OAAO,CAWT;AAuED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,OAAO,CA6B/D"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Classification helpers for the member-access → `.get()` rewrite.
3
+ *
4
+ * Plain TS object types (interfaces, type literals, inferred object
5
+ * literals) are Dictionaries at GDScript runtime, so standalone member
6
+ * READS on them are emitted as `obj.get("prop")`. `.get()` exists on
7
+ * both `Dictionary` and `Object`, which makes the emitted form valid
8
+ * even when the classification is computed from stale types — the
9
+ * property that lets the watch/check pipeline treat staleness as a
10
+ * visible-diagnostics problem instead of a silent-runtime one.
11
+ *
12
+ * Writes are NOT rewritten (`obj.get("p") = v` is invalid GDScript;
13
+ * plain `obj.prop = v` works on both Dictionary and Object), and
14
+ * chained links / callee positions keep dot access (no safety
15
+ * difference, less output churn).
16
+ */
17
+ import ts from 'typescript';
18
+ /**
19
+ * True when every non-nullish union constituent of `type` is a plain
20
+ * TS object type — i.e. a value that exists as a `Dictionary` in the
21
+ * generated GDScript.
22
+ *
23
+ * Deliberately conservative: anything unprovable (any/unknown/error
24
+ * types, type parameters, mixed unions, intersections) returns false
25
+ * so the caller falls back to the legacy optionality-based behavior.
26
+ */
27
+ export function isPlainObjectType(type, checker, registry) {
28
+ const constituents = type.isUnion()
29
+ ? type.types.filter((u) => !(u.flags & ts.TypeFlags.Null) && !(u.flags & ts.TypeFlags.Undefined))
30
+ : [type];
31
+ if (constituents.length === 0)
32
+ return false;
33
+ return constituents.every((c) => isPlainObjectConstituent(c, checker, registry));
34
+ }
35
+ function isPlainObjectConstituent(type, checker, registry) {
36
+ // Only structural object types qualify. Excludes any/unknown/error,
37
+ // primitives, enums, and type parameters (all unprovable or wrong).
38
+ if (!(type.flags & ts.TypeFlags.Object))
39
+ return false;
40
+ // Arrays/tuples map to GD Array which has no `.get()`.
41
+ if (checker.isArrayType(type) || checker.isTupleType(type))
42
+ return false;
43
+ // Callables / constructor types (incl. `typeof Class` statics access).
44
+ if (type.getCallSignatures().length > 0 ||
45
+ type.getConstructSignatures().length > 0) {
46
+ return false;
47
+ }
48
+ // Check both the alias name and the target symbol name, so a type
49
+ // alias can't smuggle an excluded type past the name checks.
50
+ const names = [
51
+ type.aliasSymbol?.getName(),
52
+ type.getSymbol()?.getName(),
53
+ ].filter((n) => !!n);
54
+ for (const name of names) {
55
+ // `Dictionary` keeps its existing (optionality-based) semantics —
56
+ // the user explicitly opted into Godot Dictionary typing. `TSOnly`
57
+ // wraps TS-only values that never reach GD.
58
+ if (name === 'Dictionary' || name === 'TSOnly')
59
+ return false;
60
+ // Godot engine types are NOT plain objects even though our typings
61
+ // declare many of them as interfaces (value types like Vector2 have
62
+ // no `.get()` at runtime).
63
+ if (registry &&
64
+ (registry.hasClass(name) ||
65
+ registry.isConstructor(name) ||
66
+ registry.isGlobalEnum(name))) {
67
+ return false;
68
+ }
69
+ }
70
+ // Without a registry we cannot prove a NAMED type isn't a Godot type
71
+ // (value types are interfaces in our typings, and `.get()` on them
72
+ // crashes at runtime) — correctness over completeness: drop the
73
+ // rewrite. Anonymous literals (`__type`/`__object`) stay eligible;
74
+ // they can never be Godot types.
75
+ if (!registry && names.some((n) => !n.startsWith('__'))) {
76
+ return false;
77
+ }
78
+ // Class instances (user classes, scene-typing shadow classes) are GD
79
+ // Objects with real properties — keep dot access. Enum objects and
80
+ // namespaces in value position are not Dictionaries either.
81
+ const decls = type.getSymbol()?.getDeclarations() ?? [];
82
+ if (decls.some((d) => ts.isClassDeclaration(d) ||
83
+ ts.isClassExpression(d) ||
84
+ ts.isEnumDeclaration(d) ||
85
+ ts.isModuleDeclaration(d))) {
86
+ return false;
87
+ }
88
+ return true;
89
+ }
90
+ /**
91
+ * True when `node` is the target of an assignment: LHS of `=` or any
92
+ * compound assignment (`+=`, `||=`, …), or the operand of `++`/`--`.
93
+ * Walks through parentheses and non-null assertions wrapping the node
94
+ * (`(obj.prop) = v`, `obj.prop! += 1`).
95
+ *
96
+ * Assignment targets must keep plain dot/index form — `obj.get("p") = v`
97
+ * is invalid GDScript, while `obj.prop = v` is valid on both Dictionary
98
+ * and Object.
99
+ */
100
+ export function isAssignmentTarget(node) {
101
+ let current = node;
102
+ let parent = current.parent;
103
+ while (parent &&
104
+ (ts.isParenthesizedExpression(parent) || ts.isNonNullExpression(parent))) {
105
+ current = parent;
106
+ parent = parent.parent;
107
+ }
108
+ if (!parent)
109
+ return false;
110
+ if (ts.isBinaryExpression(parent) &&
111
+ parent.left === current &&
112
+ parent.operatorToken.kind >= ts.SyntaxKind.FirstAssignment &&
113
+ parent.operatorToken.kind <= ts.SyntaxKind.LastAssignment) {
114
+ return true;
115
+ }
116
+ if ((ts.isPrefixUnaryExpression(parent) ||
117
+ ts.isPostfixUnaryExpression(parent)) &&
118
+ (parent.operator === ts.SyntaxKind.PlusPlusToken ||
119
+ parent.operator === ts.SyntaxKind.MinusMinusToken)) {
120
+ return true;
121
+ }
122
+ return false;
123
+ }
124
+ //# sourceMappingURL=access-rewrite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-rewrite.js","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/access-rewrite.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"class-members.d.ts","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/class-members.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAKlE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,OAAO,CAGT;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAcN;AAuCD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,OAAO,CAGT;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAaN;AAID,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CA8DN;AAID,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,EAAE,CAAC,sBAAsB,GAAG,SAAS,EAC9C,OAAO,EAAE,EAAE,CAAC,sBAAsB,GAAG,SAAS,EAC9C,CAAC,EAAE,mBAAmB,GACrB,IAAI,CA+DN;AAID,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,EAAE,CAAC,sBAAsB,EAC/B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAWN;AAID,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAC1B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAsCN;AAID,wBAAgB,aAAa,CAC3B,IAAI,EAAE,EAAE,CAAC,aAAa,EACtB,CAAC,EAAE,mBAAmB,GACrB,MAAM,EAAE,CA6BV;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhD"}
1
+ {"version":3,"file":"class-members.d.ts","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/class-members.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAKlE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,OAAO,CAGT;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAcN;AAwCD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,OAAO,CAGT;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAaN;AAID,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CA+DN;AAID,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,EAAE,CAAC,sBAAsB,GAAG,SAAS,EAC9C,OAAO,EAAE,EAAE,CAAC,sBAAsB,GAAG,SAAS,EAC9C,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAiEN;AAID,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,EAAE,CAAC,sBAAsB,EAC/B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAWN;AAID,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAC1B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAuCN;AAID,wBAAgB,aAAa,CAC3B,IAAI,EAAE,EAAE,CAAC,aAAa,EACtB,CAAC,EAAE,mBAAmB,GACrB,MAAM,EAAE,CA6BV;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhD"}
@@ -50,7 +50,7 @@ function extractSignalParams(node, t) {
50
50
  paramName = `arg${i + 1}`;
51
51
  typeNode = element;
52
52
  }
53
- const gdType = tsTypeNodeToGdType(typeNode, t.ctx.checker, t.ctx.sourceFile, t.currentClassName);
53
+ const gdType = tsTypeNodeToGdType(typeNode, t.ctx.checker, t.ctx.sourceFile, t.currentClassName, t.ctx.registry);
54
54
  params.push(gdType ? { name: paramName, type: gdType } : { name: paramName });
55
55
  }
56
56
  return params;
@@ -99,7 +99,7 @@ export function visitPropertyDeclaration(node, t) {
99
99
  // `static var` when paired with `static`). Class-level constants
100
100
  // are declared via a paired `namespace ClassName { export const X = ... }`
101
101
  // block instead — that lifts into `const X = ...` inside the GD class.
102
- const gdType = tsTypeNodeToGdType(node.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName);
102
+ const gdType = tsTypeNodeToGdType(node.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName, t.ctx.registry);
103
103
  const staticPrefix = isStatic ? 'static ' : '';
104
104
  let decl = `${staticPrefix}var ${name}`;
105
105
  if (gdType)
@@ -119,12 +119,12 @@ export function visitAccessorPair(name, getNode, setNode, t) {
119
119
  const pos = t.getLineAndCol(getNode ?? setNode);
120
120
  let gdType = null;
121
121
  if (getNode?.type) {
122
- gdType = tsTypeNodeToGdType(getNode.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName);
122
+ gdType = tsTypeNodeToGdType(getNode.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName, t.ctx.registry);
123
123
  }
124
124
  else if (setNode &&
125
125
  setNode.parameters.length > 0 &&
126
126
  setNode.parameters[0].type) {
127
- gdType = tsTypeNodeToGdType(setNode.parameters[0].type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName);
127
+ gdType = tsTypeNodeToGdType(setNode.parameters[0].type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName, t.ctx.registry);
128
128
  }
129
129
  const typeSuffix = gdType ? `: ${gdType}` : '';
130
130
  t.emitter.writeLine(`var ${name}${typeSuffix}:`, pos.line, pos.col);
@@ -184,7 +184,7 @@ export function visitMethodDeclaration(node, t) {
184
184
  const pos = t.getLineAndCol(node);
185
185
  const name = node.name.getText(t.ctx.sourceFile);
186
186
  const params = t.emitParameters(node.parameters);
187
- const returnType = tsTypeNodeToGdType(node.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName);
187
+ const returnType = tsTypeNodeToGdType(node.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName, t.ctx.registry);
188
188
  const returnAnnotation = returnType ? ` -> ${returnType}` : '';
189
189
  const decorators = getDecorators(node, t);
190
190
  for (const dec of decorators)
@@ -1 +1 @@
1
- {"version":3,"file":"class-members.js","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/class-members.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"class-members.js","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/class-members.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAU5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,wBAAgB,cAAc,CAC5B,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,UAAU,GAClB,MAAM,CAkMR;AAkED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAyBtE;AAuDD,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAChC,MAAM,CAmER;AAoED,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,cAAc,GACtB,MAAM,CAuGR;AAoFD,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,gBAAgB,GACxB,MAAM,CAgDR;AAwCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,MAAM,CA+D1D;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,GAAG,MAAM,CAahE;AAID,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,aAAa,GACrB,MAAM,CAUR;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAID,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,kBAAkB,GAC1B,MAAM,CAUR;AAID,wBAAgB,UAAU,CACxB,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,GAC7C,MAAM,CAoBR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,EAAE,CAAC,UAAU,GAClB,IAAI,IAAI,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,CAKlD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,GAC7C,IAAI,CAUN;AAID,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,mBAAmB,EACtB,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,CAKR"}
1
+ {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAW5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,wBAAgB,cAAc,CAC5B,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,UAAU,GAClB,MAAM,CAwMR;AAkED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAyBtE;AAuDD,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAChC,MAAM,CA+ER;AAoED,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,cAAc,GACtB,MAAM,CAuGR;AAoFD,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,gBAAgB,GACxB,MAAM,CA+DR;AAwCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,MAAM,CA+D1D;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,GAAG,MAAM,CAahE;AAID,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,aAAa,GACrB,MAAM,CAUR;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAID,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,kBAAkB,GAC1B,MAAM,CAUR;AAID,wBAAgB,UAAU,CACxB,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,GAC7C,MAAM,CAqBR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,EAAE,CAAC,UAAU,GAClB,IAAI,IAAI,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,CAKlD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,GAC7C,IAAI,CAUN;AAID,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,mBAAmB,EACtB,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,CAKR"}
@@ -3,6 +3,7 @@ import { tsTypeNodeToGdType } from "../common/index.js";
3
3
  import { classifyInRhsType } from "./diagnostics.js";
4
4
  import { tryEmitGdAs, tryEmitGdIs, tryEmitGdDict, tryEmitGdOps, } from "./gd-helpers.js";
5
5
  import { typeContainsUndefined } from "./parameters.js";
6
+ import { isPlainObjectType, isAssignmentTarget } from "./access-rewrite.js";
6
7
  // ---- Main Expression Emitter ----
7
8
  export function emitExpression(t, node) {
8
9
  // Identifiers
@@ -50,15 +51,19 @@ export function emitExpression(t, node) {
50
51
  if (ts.isPropertyAccessExpression(node)) {
51
52
  return emitPropertyAccess(t, node);
52
53
  }
53
- // Element access: a[b] — convert to .get() when type includes undefined
54
+ // Element access: a[b] — convert standalone reads to .get() when the
55
+ // object is a plain TS object (a Dictionary in GD), or when the element
56
+ // type includes undefined (legacy fallback for other object kinds).
54
57
  if (ts.isElementAccessExpression(node)) {
55
58
  const elemType = t.ctx.checker.getTypeAtLocation(node);
56
- if (typeContainsUndefined(elemType)) {
59
+ const objType = t.ctx.checker.getTypeAtLocation(node.expression);
60
+ if (isPlainObjectType(objType, t.ctx.checker, t.ctx.registry) ||
61
+ typeContainsUndefined(elemType)) {
57
62
  const parent = node.parent;
58
63
  const isChainedOrCalled = (ts.isCallExpression(parent) && parent.expression === node) ||
59
64
  (ts.isPropertyAccessExpression(parent) && parent.expression === node) ||
60
65
  (ts.isElementAccessExpression(parent) && parent.expression === node);
61
- if (!isChainedOrCalled) {
66
+ if (!isChainedOrCalled && !isAssignmentTarget(node)) {
62
67
  return `${t.emitExpression(node.expression)}.get(${t.emitExpression(node.argumentExpression)})`;
63
68
  }
64
69
  }
@@ -338,13 +343,23 @@ export function emitPropertyAccess(t, node) {
338
343
  }
339
344
  const obj = t.emitExpression(node.expression);
340
345
  const prop = node.name.text;
341
- // Optional property access: convert standalone `obj.prop` to `obj.get("prop")`
342
- // when the property type includes `undefined` (optional or T | undefined).
346
+ // Property access `obj.get("prop")` rewrite. Applies to standalone
347
+ // READS when:
348
+ // - the object is a plain TS object type (interface / type literal /
349
+ // object literal) — a Dictionary in GD, where `.get()` is the
350
+ // stale-type-safe access form (it also exists on Object); or
351
+ // - the property type includes `undefined` (legacy fallback for other
352
+ // object kinds).
343
353
  // Skip when:
344
354
  // - chained or called: obj.prop(), obj.prop.inner, obj.prop["key"]
355
+ // - assignment target: obj.prop = v / obj.prop += v / obj.prop++
356
+ // (`obj.get("p") = v` is invalid GD; plain assignment works on both
357
+ // Dictionary and Object)
345
358
  // - accessing a class field (always defined in GDScript)
346
359
  const propType = t.ctx.checker.getTypeAtLocation(node);
347
- if (typeContainsUndefined(propType)) {
360
+ const objType = t.ctx.checker.getTypeAtLocation(node.expression);
361
+ if (isPlainObjectType(objType, t.ctx.checker, t.ctx.registry) ||
362
+ typeContainsUndefined(propType)) {
348
363
  // Walk up through non-null assertions (!) and parens to find the real parent
349
364
  let effectiveNode = node;
350
365
  let parent = node.parent;
@@ -364,7 +379,7 @@ export function emitPropertyAccess(t, node) {
364
379
  const symbol = t.ctx.checker.getSymbolAtLocation(node.name);
365
380
  const isClassField = symbol?.getDeclarations()?.some((d) => ts.isPropertyDeclaration(d)) ??
366
381
  false;
367
- if (!isChainedOrCalled && !isClassField) {
382
+ if (!isChainedOrCalled && !isClassField && !isAssignmentTarget(node)) {
368
383
  return `${obj}.get("${prop}")`;
369
384
  }
370
385
  }
@@ -583,6 +598,15 @@ function isSelfExpression(node) {
583
598
  }
584
599
  // ---- Binary Expressions ----
585
600
  export function emitBinaryExpression(t, node) {
601
+ // Destructuring assignment ([a, b] = arr / ({ x } = obj)) -> not
602
+ // supported. Declarations are rejected in visitVariableStatement; the
603
+ // assignment-expression form must fail loudly too — emitting the
604
+ // literal-as-LHS form would be silently invalid GDScript.
605
+ if (node.operatorToken.kind === ts.SyntaxKind.EqualsToken &&
606
+ (ts.isArrayLiteralExpression(node.left) ||
607
+ ts.isObjectLiteralExpression(node.left))) {
608
+ t.addDiagnostic(node, 'error', 'Destructuring assignment is not supported in GDScript');
609
+ }
586
610
  // Nullish coalescing (??) -> not supported
587
611
  if (node.operatorToken.kind === ts.SyntaxKind.QuestionQuestionToken) {
588
612
  t.addDiagnostic(node, 'error', 'Nullish coalescing (`??`) is not supported in GDScript');
@@ -749,7 +773,7 @@ export function emitTemplateExpression(t, node) {
749
773
  export function emitLambda(t, node) {
750
774
  const params = t.emitParameters(node.parameters);
751
775
  // Return type
752
- const returnType = tsTypeNodeToGdType(node.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName);
776
+ const returnType = tsTypeNodeToGdType(node.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName, t.ctx.registry);
753
777
  const returnAnnotation = returnType ? ` -> ${returnType}` : '';
754
778
  if (ts.isBlock(node.body)) {
755
779
  // Multi-line lambda: return header only. Body will be emitted by emitLambdaBody().