@abaplint/transpiler 2.11.19 → 2.11.20
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.
- package/build/src/traversal.js +12 -0
- package/package.json +1 -1
package/build/src/traversal.js
CHANGED
|
@@ -636,12 +636,24 @@ this.INTERNAL_ID = abap.internalIdCounter++;\n`;
|
|
|
636
636
|
if (dtel) {
|
|
637
637
|
return dtel.parseType(this.reg);
|
|
638
638
|
}
|
|
639
|
+
const tabl = this.reg.getObject("TABL", name);
|
|
640
|
+
if (tabl) {
|
|
641
|
+
return tabl.parseType(this.reg);
|
|
642
|
+
}
|
|
643
|
+
const view = this.reg.getObject("VIEW", name);
|
|
644
|
+
if (view) {
|
|
645
|
+
return view.parseType(this.reg);
|
|
646
|
+
}
|
|
639
647
|
if (name.includes("=>")) {
|
|
640
648
|
const [className, typeName] = name.split("=>");
|
|
641
649
|
const cls = this.findClassDefinition(className, scope);
|
|
642
650
|
if (cls) {
|
|
643
651
|
return cls.getTypeDefinitions().getByName(typeName)?.getType();
|
|
644
652
|
}
|
|
653
|
+
const intf = this.findInterfaceDefinition(className, scope);
|
|
654
|
+
if (intf) {
|
|
655
|
+
return intf.getTypeDefinitions().getByName(typeName)?.getType();
|
|
656
|
+
}
|
|
645
657
|
}
|
|
646
658
|
// todo: yea, well, yea
|
|
647
659
|
throw new Error("lookupType, type not found, " + node.concatTokens());
|