diff options
29 files changed, 57 insertions, 131 deletions
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp index de6ad85bb96..ca774ef54a8 100644 --- a/cpp/src/Slice/Parser.cpp +++ b/cpp/src/Slice/Parser.cpp @@ -3954,6 +3954,17 @@ Slice::ClassDef::ClassDef(const ContainerPtr& container, const string& name, int _local(local), _compactId(id) { + if(!local && !intf) + { + for(ClassList::const_iterator p = _bases.begin(); p != _bases.end(); ++p) + { + if((*p)->isInterface()) + { + _unit->warning(Deprecated, "classes implementing interfaces are deprecated"); + break; + } + } + } // // First element of bases may be a class, all others must be // interfaces. diff --git a/cpp/test/Ice/custom/WstringAMDI.h b/cpp/test/Ice/custom/WstringAMDI.h index a53e389fe3d..1af66349311 100644 --- a/cpp/test/Ice/custom/WstringAMDI.h +++ b/cpp/test/Ice/custom/WstringAMDI.h @@ -16,7 +16,7 @@ namespace Test1 { #ifdef ICE_CPP11_MAPPING -class WstringClassI : public virtual WstringClassDisp +class WstringClassI : public virtual WstringClass { public: @@ -55,7 +55,7 @@ public: namespace Test2 { #ifdef ICE_CPP11_MAPPING -class WstringClassI : public virtual WstringClassDisp +class WstringClassI : public virtual WstringClass { public: diff --git a/cpp/test/Ice/custom/WstringI.h b/cpp/test/Ice/custom/WstringI.h index 849e05aa16f..4836be95a66 100644 --- a/cpp/test/Ice/custom/WstringI.h +++ b/cpp/test/Ice/custom/WstringI.h @@ -15,11 +15,7 @@ namespace Test1 { -#ifdef ICE_CPP11_MAPPING -class WstringClassI : public virtual WstringClassDisp -#else class WstringClassI : public virtual WstringClass -#endif { public: @@ -40,11 +36,7 @@ public: namespace Test2 { -#ifdef ICE_CPP11_MAPPING -class WstringClassI : public virtual WstringClassDisp -#else class WstringClassI : public virtual WstringClass -#endif { public: diff --git a/cpp/test/Ice/objects/TestI.h b/cpp/test/Ice/objects/TestI.h index 473c7b40bbf..5f61f3a583c 100644 --- a/cpp/test/Ice/objects/TestI.h +++ b/cpp/test/Ice/objects/TestI.h @@ -80,12 +80,7 @@ class HI : public Test::H { }; -class InitialI : -#ifdef ICE_CPP11_MAPPING - public Test::InitialDisp -#else - public Test::Initial -#endif +class InitialI : public Test::Initial { public: diff --git a/cpp/test/Ice/operations/TestAMDI.cpp b/cpp/test/Ice/operations/TestAMDI.cpp index baea3211706..57eb91887de 100644 --- a/cpp/test/Ice/operations/TestAMDI.cpp +++ b/cpp/test/Ice/operations/TestAMDI.cpp @@ -27,7 +27,7 @@ MyDerivedClassI::ice_isA(ICE_IN(string) id, const Ice::Current& current) const { test(current.mode == ICE_ENUM(OperationMode, Nonmutating)); #ifdef ICE_CPP11_MAPPING - return Test::MyDerivedClassDisp::ice_isA(move(id), current); + return Test::MyDerivedClass::ice_isA(move(id), current); #else return Test::MyDerivedClass::ice_isA(id, current); #endif @@ -37,22 +37,15 @@ void MyDerivedClassI::ice_ping(const Ice::Current& current) const { test(current.mode == ICE_ENUM(OperationMode, Nonmutating)); -#ifdef ICE_CPP11_MAPPING - Test::MyDerivedClassDisp::ice_ping(current); -#else Test::MyDerivedClass::ice_ping(current); -#endif + } std::vector<std::string> MyDerivedClassI::ice_ids(const Ice::Current& current) const { test(current.mode == ICE_ENUM(OperationMode, Nonmutating)); -#ifdef ICE_CPP11_MAPPING - return Test::MyDerivedClassDisp::ice_ids(current); -#else return Test::MyDerivedClass::ice_ids(current); -#endif } #ifdef ICE_CPP11_MAPPING @@ -63,11 +56,7 @@ const std::string& MyDerivedClassI::ice_id(const Ice::Current& current) const { test(current.mode == ICE_ENUM(OperationMode, Nonmutating)); -#ifdef ICE_CPP11_MAPPING - return Test::MyDerivedClassDisp::ice_id(current); -#else return Test::MyDerivedClass::ice_id(current); -#endif } #ifdef ICE_CPP11_MAPPING diff --git a/cpp/test/Ice/operations/TestAMDI.h b/cpp/test/Ice/operations/TestAMDI.h index 38cea8022f9..011c800adde 100644 --- a/cpp/test/Ice/operations/TestAMDI.h +++ b/cpp/test/Ice/operations/TestAMDI.h @@ -14,12 +14,7 @@ #include <TestAMD.h> #include <TestCommon.h> -class MyDerivedClassI : -#ifdef ICE_CPP11_MAPPING - public Test::MyDerivedClassDisp -#else - public Test::MyDerivedClass -#endif +class MyDerivedClassI : public Test::MyDerivedClass { public: diff --git a/cpp/test/Ice/operations/TestI.cpp b/cpp/test/Ice/operations/TestI.cpp index 2adfceda6db..ba4c5c5654c 100644 --- a/cpp/test/Ice/operations/TestI.cpp +++ b/cpp/test/Ice/operations/TestI.cpp @@ -28,7 +28,7 @@ MyDerivedClassI::ice_isA(ICE_IN(string) id, const Ice::Current& current) const { test(current.mode == ICE_ENUM(OperationMode, Nonmutating)); #ifdef ICE_CPP11_MAPPING - return Test::MyDerivedClassDisp::ice_isA(move(id), current); + return Test::MyDerivedClass::ice_isA(move(id), current); #else return Test::MyDerivedClass::ice_isA(id, current); #endif @@ -38,22 +38,14 @@ void MyDerivedClassI::ice_ping(const Ice::Current& current) const { test(current.mode == ICE_ENUM(OperationMode, Nonmutating)); -#ifdef ICE_CPP11_MAPPING - Test::MyDerivedClassDisp::ice_ping(current); -#else Test::MyDerivedClass::ice_ping(current); -#endif } std::vector<std::string> MyDerivedClassI::ice_ids(const Ice::Current& current) const { test(current.mode == ICE_ENUM(OperationMode, Nonmutating)); -#ifdef ICE_CPP11_MAPPING - return Test::MyDerivedClassDisp::ice_ids(current); -#else return Test::MyDerivedClass::ice_ids(current); -#endif } #ifdef ICE_CPP11_MAPPING @@ -64,11 +56,7 @@ const std::string& MyDerivedClassI::ice_id(const Ice::Current& current) const { test(current.mode == ICE_ENUM(OperationMode, Nonmutating)); -#ifdef ICE_CPP11_MAPPING - return Test::MyDerivedClassDisp::ice_id(current); -#else return Test::MyDerivedClass::ice_id(current); -#endif } void diff --git a/cpp/test/Ice/operations/TestI.h b/cpp/test/Ice/operations/TestI.h index 83a364fdc69..f53606e8ffa 100644 --- a/cpp/test/Ice/operations/TestI.h +++ b/cpp/test/Ice/operations/TestI.h @@ -13,12 +13,7 @@ #include <Test.h> #include <TestCommon.h> -class MyDerivedClassI : -#ifdef ICE_CPP11_MAPPING - public Test::MyDerivedClassDisp -#else - public Test::MyDerivedClass -#endif +class MyDerivedClassI : public Test::MyDerivedClass { public: diff --git a/cpp/test/Ice/operations/Twoways.cpp b/cpp/test/Ice/operations/Twoways.cpp index 6e8d963f798..f9e7ba152ca 100644 --- a/cpp/test/Ice/operations/Twoways.cpp +++ b/cpp/test/Ice/operations/Twoways.cpp @@ -233,11 +233,7 @@ twoways(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrxPtr& p) } { -#ifdef ICE_CPP11_MAPPING - test(Test::MyClassPrx::ice_staticId() == Test::MyClassDisp::ice_staticId()); -#else test(Test::MyClassPrx::ice_staticId() == Test::MyClass::ice_staticId()); -#endif test(Ice::ObjectPrx::ice_staticId() == Ice::Object::ice_staticId()); } diff --git a/cpp/test/Ice/optional/TestAMDI.h b/cpp/test/Ice/optional/TestAMDI.h index 48bbe84452e..64793f42d17 100644 --- a/cpp/test/Ice/optional/TestAMDI.h +++ b/cpp/test/Ice/optional/TestAMDI.h @@ -13,12 +13,7 @@ #include <TestAMD.h> -class InitialI : -#ifdef ICE_CPP11_MAPPING - public Test::InitialDisp -#else - public Test::Initial -#endif +class InitialI : public Test::Initial { public: diff --git a/cpp/test/Ice/optional/TestI.h b/cpp/test/Ice/optional/TestI.h index b6fcdeb9dfc..38050948cf9 100644 --- a/cpp/test/Ice/optional/TestI.h +++ b/cpp/test/Ice/optional/TestI.h @@ -20,12 +20,7 @@ using OneOptionalPrxPtr = std::shared_ptr<Ice::ObjectPrx>; #endif -class InitialI : -#ifdef ICE_CPP11_MAPPING - public Test::InitialDisp -#else - public Test::Initial -#endif +class InitialI : public Test::Initial { public: diff --git a/cpp/test/Ice/proxy/TestAMDI.cpp b/cpp/test/Ice/proxy/TestAMDI.cpp index 968ab15ad3a..9def18d0610 100644 --- a/cpp/test/Ice/proxy/TestAMDI.cpp +++ b/cpp/test/Ice/proxy/TestAMDI.cpp @@ -50,7 +50,7 @@ bool MyDerivedClassI::ice_isA(string s, const Ice::Current& current) const { _ctx = current.ctx; - return Test::MyDerivedClassDisp::ice_isA(move(s), current); + return Test::MyDerivedClass::ice_isA(move(s), current); } #else void diff --git a/cpp/test/Ice/proxy/TestAMDI.h b/cpp/test/Ice/proxy/TestAMDI.h index 3f9d5aac1bf..5a558c120a5 100644 --- a/cpp/test/Ice/proxy/TestAMDI.h +++ b/cpp/test/Ice/proxy/TestAMDI.h @@ -12,12 +12,7 @@ #include <TestAMD.h> -class MyDerivedClassI : -#ifdef ICE_CPP11_MAPPING - public Test::MyDerivedClassDisp -#else - public Test::MyDerivedClass -#endif +class MyDerivedClassI : public Test::MyDerivedClass { public: diff --git a/cpp/test/Ice/proxy/TestI.cpp b/cpp/test/Ice/proxy/TestI.cpp index bc4a2ff971f..afc666b0ef7 100644 --- a/cpp/test/Ice/proxy/TestI.cpp +++ b/cpp/test/Ice/proxy/TestI.cpp @@ -48,7 +48,7 @@ bool MyDerivedClassI::ice_isA(string s, const Ice::Current& current) const { _ctx = current.ctx; - return Test::MyDerivedClassDisp::ice_isA(move(s), current); + return Test::MyDerivedClass::ice_isA(move(s), current); } #else bool diff --git a/cpp/test/Ice/proxy/TestI.h b/cpp/test/Ice/proxy/TestI.h index 6a5c1323bb9..eb2a5a557bd 100644 --- a/cpp/test/Ice/proxy/TestI.h +++ b/cpp/test/Ice/proxy/TestI.h @@ -12,12 +12,7 @@ #include <Test.h> -class MyDerivedClassI : -#ifdef ICE_CPP11_MAPPING - public Test::MyDerivedClassDisp -#else - public Test::MyDerivedClass -#endif +class MyDerivedClassI : public Test::MyDerivedClass { public: diff --git a/cpp/test/Slice/errorDetection/ClassRedefinition.err b/cpp/test/Slice/errorDetection/ClassRedefinition.err index 483961ff9e0..d50418a4237 100644 --- a/cpp/test/Slice/errorDetection/ClassRedefinition.err +++ b/cpp/test/Slice/errorDetection/ClassRedefinition.err @@ -1,2 +1,2 @@ -ClassRedefinition.ice:18: redefinition of class `Class1' -ClassRedefinition.ice:22: redefinition of class `Class2' +ClassRedefinition.ice:17: redefinition of class `Class1' +ClassRedefinition.ice:21: redefinition of class `Class2' diff --git a/cpp/test/Slice/errorDetection/ClassRedefinition.ice b/cpp/test/Slice/errorDetection/ClassRedefinition.ice index b6162e19edd..953b0f75cf2 100644 --- a/cpp/test/Slice/errorDetection/ClassRedefinition.ice +++ b/cpp/test/Slice/errorDetection/ClassRedefinition.ice @@ -12,13 +12,12 @@ module Test { -interface Foo { long op(); }; -class Class1 implements Foo { byte b; long l; }; +class Class1 { byte b; long l; }; class Class1; -class Class1 implements Foo { long l; }; +class Class1 { long l; }; -class Class2 implements Foo { byte b; }; +class Class2 { byte b; }; class Class2; -class Class2 implements Foo { byte b; }; +class Class2 { byte b; }; }; diff --git a/cpp/test/Slice/errorDetection/IllegalLocal.err b/cpp/test/Slice/errorDetection/IllegalLocal.err index 3acc9aa5e5c..939af203014 100644 --- a/cpp/test/Slice/errorDetection/IllegalLocal.err +++ b/cpp/test/Slice/errorDetection/IllegalLocal.err @@ -1,6 +1,8 @@ IllegalLocal.ice:17: local interface `i2' cannot have non-local base interface `i1' IllegalLocal.ice:19: non-local interface `i3' cannot have local base interface `i2' +IllegalLocal.ice:23: warning: classes implementing interfaces are deprecated IllegalLocal.ice:25: non-local class `c2' cannot have local base interface `i2' +IllegalLocal.ice:25: warning: classes implementing interfaces are deprecated IllegalLocal.ice:31: non-local interface `i' cannot have operation `op' throwing local exception `le' IllegalLocal.ice:34: non-local exception `le2' cannot have local base exception `le' IllegalLocal.ice:40: non-local class`c3' cannot contain local member `lo1' diff --git a/cpp/test/Slice/errorDetection/IllegalLocal.ice b/cpp/test/Slice/errorDetection/IllegalLocal.ice index 94152454594..b3619e3cd94 100644 --- a/cpp/test/Slice/errorDetection/IllegalLocal.ice +++ b/cpp/test/Slice/errorDetection/IllegalLocal.ice @@ -20,7 +20,7 @@ interface i3 extends i2 {}; // error local interface i4 extends i2 {}; // OK -class c1 implements i1 {}; // OK +class c1 implements i1 {}; // Warning class c2 implements i2 {}; // error diff --git a/cpp/test/Slice/escape/Client.cpp b/cpp/test/Slice/escape/Client.cpp index a237be77858..d5c2c5b734d 100644 --- a/cpp/test/Slice/escape/Client.cpp +++ b/cpp/test/Slice/escape/Client.cpp @@ -64,10 +64,10 @@ class doI : public _cpp_and::_cpp_do { public: #ifdef ICE_CPP11_MAPPING - virtual void caseAsync(::Ice::Int, - function<void(int)>, - function<void(const exception_ptr&)>, - const ::Ice::Current&) + virtual void caseAsync(int, + ::std::function<void(int)>, + ::std::function<void(::std::exception_ptr)>, + const ::Ice::Current&) { } #else @@ -95,10 +95,18 @@ public: const _cpp_and::deletePtr&, #endif const _cpp_and::switchPtr&, +#ifdef ICE_CPP11_MAPPING + const ::std::shared_ptr<::Ice::Value>&, +#else const _cpp_and::doPtr&, +#endif const _cpp_and::breakPrxPtr&, const _cpp_and::charPrxPtr&, +#ifdef ICE_CPP11_MAPPING + const ::std::shared_ptr<::Ice::ObjectPrx>&, +#else const _cpp_and::switchPrxPtr&, +#endif const _cpp_and::doPrxPtr&, ::Ice::Int, ::Ice::Int, ::Ice::Int, ::Ice::Int) diff --git a/cpp/test/Slice/escape/Key.ice b/cpp/test/Slice/escape/Key.ice index a5f27867aae..2fb1e71adbb 100644 --- a/cpp/test/Slice/escape/Key.ice +++ b/cpp/test/Slice/escape/Key.ice @@ -44,7 +44,7 @@ class switch int volatile; }; -class do extends switch implements char, break +interface do extends char, break { }; diff --git a/java-compat/test/src/main/java/test/Slice/escape/Client.java b/java-compat/test/src/main/java/test/Slice/escape/Client.java index 28384cdb397..826005deb7c 100644 --- a/java-compat/test/src/main/java/test/Slice/escape/Client.java +++ b/java-compat/test/src/main/java/test/Slice/escape/Client.java @@ -17,6 +17,7 @@ import test.Slice.escape._abstract._default; import test.Slice.escape._abstract._defaultDisp; import test.Slice.escape._abstract._else; import test.Slice.escape._abstract._finalize; +import test.Slice.escape._abstract._finalizeDisp; import test.Slice.escape._abstract._hashCode; import test.Slice.escape._abstract._import; import test.Slice.escape._abstract._new; @@ -88,7 +89,7 @@ public class Client } } - static public class finalizeI extends _finalize + static public class finalizeI extends _finalizeDisp { public finalizeI() @@ -135,7 +136,7 @@ public class Client finalizePrx f = null; f._checkedCast(0, new Ice.IntHolder()); f._do(); - _finalize f1 = new finalizeI(); + _finalizeDisp f1 = new finalizeI(); forHolder g; gotoHolder h; _hashCode i = new _hashCode(); diff --git a/java-compat/test/src/main/java/test/Slice/escape/Key.ice b/java-compat/test/src/main/java/test/Slice/escape/Key.ice index c74b7a4c2c8..1083fd64a5b 100644 --- a/java-compat/test/src/main/java/test/Slice/escape/Key.ice +++ b/java-compat/test/src/main/java/test/Slice/escape/Key.ice @@ -40,7 +40,7 @@ class else int final; }; -class finalize extends else implements default, catch +interface finalize extends default, catch { }; sequence<assert> for; diff --git a/java/test/src/main/java/test/Slice/escape/Client.java b/java/test/src/main/java/test/Slice/escape/Client.java index 11e4d968278..9d383d96185 100644 --- a/java/test/src/main/java/test/Slice/escape/Client.java +++ b/java/test/src/main/java/test/Slice/escape/Client.java @@ -14,7 +14,6 @@ import test.Slice.escape._abstract._catch; import test.Slice.escape._abstract._default; import test.Slice.escape._abstract._else; import test.Slice.escape._abstract._finalize; -import test.Slice.escape._abstract._finalizeDisp; import test.Slice.escape._abstract._hashCode; import test.Slice.escape._abstract._import; import test.Slice.escape._abstract._new; @@ -75,14 +74,7 @@ public class Client } } - static public class finalizeI extends _finalize - { - public finalizeI() - { - } - } - - static public class finalizeServantI implements _finalizeDisp + static public class finalizeServantI implements _finalize { @Override public java.util.concurrent.CompletionStage<Integer> checkedCastAsync(int _clone, com.zeroc.Ice.Current current) @@ -121,7 +113,7 @@ public class Client finalizePrx f = null; f._checkedCast(0); f._do(); - _finalize f1 = new finalizeI(); + _hashCode i = new _hashCode(); i._if = 0; _import j = new _import(); diff --git a/java/test/src/main/java/test/Slice/escape/Key.ice b/java/test/src/main/java/test/Slice/escape/Key.ice index 376f1511fd7..bf05af0eedb 100644 --- a/java/test/src/main/java/test/Slice/escape/Key.ice +++ b/java/test/src/main/java/test/Slice/escape/Key.ice @@ -40,7 +40,7 @@ class else int final; }; -class finalize extends else implements default, catch +interface finalize extends default, catch { }; sequence<assert> for; diff --git a/php/test/Slice/escape/Client.php b/php/test/Slice/escape/Client.php index 004995e90df..54088ad7f6d 100644 --- a/php/test/Slice/escape/Client.php +++ b/php/test/Slice/escape/Client.php @@ -25,7 +25,6 @@ if($NS) { $code = <<<EOT abstract class and_echo extends _and\_echo {} - abstract class and_enddeclare extends _and\_enddeclare {} EOT; eval($code); } @@ -47,21 +46,6 @@ class echoI extends and_echo } } -class enddeclareI extends and_enddeclare -{ - public function _else($a, $b) - { - } - - public function _continue($a, $b) - { - } - - public function _do() - { - } -} - function allTests($communicator) { global $NS; @@ -87,7 +71,6 @@ function allTests($communicator) $e1 = new echoI(); $f = $NS ? eval("return _and\\enddeclarePrxHelper::uncheckedCast(\$p);") : eval("return and_enddeclarePrxHelper::uncheckedCast(\$p);"); - $f1 = new enddeclareI(); $g = $NS ? eval("return new _and\\_endif();") : eval("return new and_endif();"); $h = $NS ? eval("return new _and\\_endwhile();") : eval("return new and_endwhile();"); $i = $NS ? constant("_and\\_or") : constant("and_or"); diff --git a/php/test/Slice/escape/Key.ice b/php/test/Slice/escape/Key.ice index c92e8758d43..1444b6e0d66 100644 --- a/php/test/Slice/escape/Key.ice +++ b/php/test/Slice/escape/Key.ice @@ -52,7 +52,7 @@ module and int empty; }; - class enddeclare extends echo implements die, function + interface enddeclare extends die, function { }; sequence<array> endfor; diff --git a/python/test/Slice/escape/Key.ice b/python/test/Slice/escape/Key.ice index 1d530e8fc8a..6c27b307d09 100644 --- a/python/test/Slice/escape/Key.ice +++ b/python/test/Slice/escape/Key.ice @@ -36,7 +36,7 @@ module and int global; }; - class if extends for implements exec, del + interface if extends exec, del { }; diff --git a/ruby/test/Slice/escape/Key.ice b/ruby/test/Slice/escape/Key.ice index 292407a04e0..4b2e6bf6d63 100644 --- a/ruby/test/Slice/escape/Key.ice +++ b/ruby/test/Slice/escape/Key.ice @@ -37,7 +37,7 @@ module BEGIN int else; }; - class elsif extends display implements break + interface elsif extends break { }; |