summaryrefslogtreecommitdiff
path: root/cpp/src/slice2java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2017-02-08 09:41:55 -0500
committerBernard Normier <bernard@zeroc.com>2017-02-08 09:41:55 -0500
commitaf38cbf2ebf9c009fcea81cc316be64176da620e (patch)
tree28d6975bf5f1c4b7b89a5c24d2e1d9f1a2ba633c /cpp/src/slice2java
parentAdded wide char overloads of Ice::createProperties & Ice::initialize (diff)
downloadice-af38cbf2ebf9c009fcea81cc316be64176da620e.tar.bz2
ice-af38cbf2ebf9c009fcea81cc316be64176da620e.tar.xz
ice-af38cbf2ebf9c009fcea81cc316be64176da620e.zip
Make Slice enums scoped
Add new cpp:scoped and objc:scoped metadata directives
Diffstat (limited to 'cpp/src/slice2java')
-rw-r--r--cpp/src/slice2java/Gen.cpp19
-rw-r--r--cpp/src/slice2java/GenCompat.cpp19
2 files changed, 14 insertions, 24 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index f79dc1fead6..34237ddc394 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -1678,7 +1678,6 @@ Slice::JavaVisitor::writeConstantValue(Output& out, const TypePtr& type, const S
else
{
BuiltinPtr bp;
- EnumPtr ep;
if((bp = BuiltinPtr::dynamicCast(type)))
{
switch(bp->kind())
@@ -1723,15 +1722,11 @@ Slice::JavaVisitor::writeConstantValue(Output& out, const TypePtr& type, const S
}
}
- else if((ep = EnumPtr::dynamicCast(type)))
+ else if(EnumPtr::dynamicCast(type))
{
- string val = value;
- string::size_type pos = val.rfind(':');
- if(pos != string::npos)
- {
- val.erase(0, pos + 1);
- }
- out << getAbsolute(ep, package) << '.' << fixKwd(val);
+ EnumeratorPtr lte = EnumeratorPtr::dynamicCast(valueType);
+ assert(lte);
+ out << getAbsolute(lte, package);
}
else
{
@@ -1774,7 +1769,7 @@ Slice::JavaVisitor::writeDataMemberInitializers(Output& out, const DataMemberLis
EnumPtr en = EnumPtr::dynamicCast(t);
if(en)
{
- string firstEnum = fixKwd(en->getEnumerators().front()->name());
+ string firstEnum = fixKwd(en->enumerators().front()->name());
out << nl << "this." << fixKwd((*p)->name()) << " = " << getAbsolute(en, package) << '.' << firstEnum << ';';
}
@@ -3991,7 +3986,7 @@ Slice::Gen::TypesVisitor::visitEnum(const EnumPtr& p)
{
string name = fixKwd(p->name());
string absolute = getAbsolute(p);
- EnumeratorList enumerators = p->getEnumerators();
+ EnumeratorList enumerators = p->enumerators();
open(absolute, p->file());
@@ -5310,7 +5305,7 @@ Slice::Gen::ImplVisitor::getDefaultValue(const string& package, const TypePtr& t
EnumPtr en = EnumPtr::dynamicCast(type);
if(en)
{
- EnumeratorList enumerators = en->getEnumerators();
+ EnumeratorList enumerators = en->enumerators();
return getAbsolute(en, package) + '.' + fixKwd(enumerators.front()->name());
}
}
diff --git a/cpp/src/slice2java/GenCompat.cpp b/cpp/src/slice2java/GenCompat.cpp
index e407f34745e..4b5dacaf2e4 100644
--- a/cpp/src/slice2java/GenCompat.cpp
+++ b/cpp/src/slice2java/GenCompat.cpp
@@ -1764,7 +1764,6 @@ Slice::JavaCompatVisitor::writeConstantValue(Output& out, const TypePtr& type, c
else
{
BuiltinPtr bp;
- EnumPtr ep;
if((bp = BuiltinPtr::dynamicCast(type)))
{
switch(bp->kind())
@@ -1809,15 +1808,11 @@ Slice::JavaCompatVisitor::writeConstantValue(Output& out, const TypePtr& type, c
}
}
- else if((ep = EnumPtr::dynamicCast(type)))
+ else if(EnumPtr::dynamicCast(type))
{
- string val = value;
- string::size_type pos = val.rfind(':');
- if(pos != string::npos)
- {
- val.erase(0, pos + 1);
- }
- out << getAbsolute(ep, package) << '.' << fixKwd(val);
+ EnumeratorPtr lte = EnumeratorPtr::dynamicCast(valueType);
+ assert(lte);
+ out << getAbsolute(lte, package);
}
else
{
@@ -1860,7 +1855,7 @@ Slice::JavaCompatVisitor::writeDataMemberInitializers(Output& out, const DataMem
EnumPtr en = EnumPtr::dynamicCast(t);
if(en)
{
- string firstEnum = fixKwd(en->getEnumerators().front()->name());
+ string firstEnum = fixKwd(en->enumerators().front()->name());
out << nl << "this." << fixKwd((*p)->name()) << " = " << getAbsolute(en, package) << '.' << firstEnum << ';';
}
@@ -4058,7 +4053,7 @@ Slice::GenCompat::TypesVisitor::visitEnum(const EnumPtr& p)
{
string name = fixKwd(p->name());
string absolute = getAbsolute(p);
- EnumeratorList enumerators = p->getEnumerators();
+ EnumeratorList enumerators = p->enumerators();
open(absolute, p->file());
@@ -5947,7 +5942,7 @@ Slice::GenCompat::BaseImplVisitor::writeDecl(Output& out, const string& package,
EnumPtr en = EnumPtr::dynamicCast(type);
if(en)
{
- EnumeratorList enumerators = en->getEnumerators();
+ EnumeratorList enumerators = en->enumerators();
out << " = " << getAbsolute(en, package) << '.' << fixKwd(enumerators.front()->name());
}
else