diff options
author | Jose <jose@zeroc.com> | 2019-07-09 17:13:39 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2019-07-09 17:13:39 +0200 |
commit | f0352140506800ed3a53a7fa7caca63f251bb1a4 (patch) | |
tree | 355dc0f3bb7ea8534e087474a35371140b3d0b18 /cpp/src/slice2js/JsUtil.cpp | |
parent | IceSSL fixes for RHEL8 (diff) | |
download | ice-f0352140506800ed3a53a7fa7caca63f251bb1a4.tar.bz2 ice-f0352140506800ed3a53a7fa7caca63f251bb1a4.tar.xz ice-f0352140506800ed3a53a7fa7caca63f251bb1a4.zip |
Remove forward declarations limitation - Close #97
Diffstat (limited to 'cpp/src/slice2js/JsUtil.cpp')
-rw-r--r-- | cpp/src/slice2js/JsUtil.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/cpp/src/slice2js/JsUtil.cpp b/cpp/src/slice2js/JsUtil.cpp index 07c2f9b5325..2229d81f6a9 100644 --- a/cpp/src/slice2js/JsUtil.cpp +++ b/cpp/src/slice2js/JsUtil.cpp @@ -500,17 +500,7 @@ Slice::JsGenerator::typeToString(const TypePtr& type, { ostringstream os; ClassDefPtr def = proxy->_class()->definition(); - if(!def->isInterface() && def->allOperations().empty()) - { - if(getModuleMetadata(toplevel) != "ice") - { - os << "iceNS0."; - } - os << getUnqualified(typeScriptBuiltinTable[Builtin::KindObjectProxy], - toplevel->scope(), - getModuleMetadata(toplevel)); - } - else + if(!def || def->isAbstract()) { string prefix; if(typescript) @@ -528,6 +518,16 @@ Slice::JsGenerator::typeToString(const TypePtr& type, os << fixId(proxy->_class()->scoped() + "Prx"); } } + else + { + if(getModuleMetadata(toplevel) != "ice") + { + os << "iceNS0."; + } + os << getUnqualified(typeScriptBuiltinTable[Builtin::KindObjectProxy], + toplevel->scope(), + getModuleMetadata(toplevel)); + } return os.str(); } @@ -983,7 +983,7 @@ Slice::JsGenerator::getHelper(const TypePtr& type) if(prx) { ClassDefPtr def = prx->_class()->definition(); - if(def->isInterface() || def->allOperations().size() > 0) + if(!def || def->isAbstract()) { return typeToString(type); } |