mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-26 21:21:54 +00:00
Namespaces
This commit is contained in:
14
src/ast.ts
14
src/ast.ts
@ -1809,12 +1809,16 @@ export function mangleInternalName(declaration: DeclarationStatement): string {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!declaration.parent)
|
||||
let parent: Node | null = declaration.parent;
|
||||
if (!parent)
|
||||
return name;
|
||||
if (declaration.parent.kind == NodeKind.CLASS)
|
||||
return (<ClassDeclaration>declaration.parent).internalName + (hasModifier(ModifierKind.STATIC, declaration.modifiers) ? STATIC_DELIMITER : INSTANCE_DELIMITER) + name;
|
||||
if (declaration.parent.kind == NodeKind.NAMESPACE || declaration.parent.kind == NodeKind.ENUM)
|
||||
return (<DeclarationStatement>declaration.parent).internalName + STATIC_DELIMITER + name;
|
||||
if (declaration.kind == NodeKind.VARIABLEDECLARATION && parent.kind == NodeKind.VARIABLE) // skip over
|
||||
if (!(parent = parent.parent))
|
||||
return name;
|
||||
if (parent.kind == NodeKind.CLASS)
|
||||
return (<ClassDeclaration>parent).internalName + (hasModifier(ModifierKind.STATIC, declaration.modifiers) ? STATIC_DELIMITER : INSTANCE_DELIMITER) + name;
|
||||
if (parent.kind == NodeKind.NAMESPACE || parent.kind == NodeKind.ENUM)
|
||||
return (<DeclarationStatement>parent).internalName + STATIC_DELIMITER + name;
|
||||
return declaration.range.source.internalPath + PATH_DELIMITER + name;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user