summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2017-02-10 10:38:44 +0100
committerJose <jose@zeroc.com>2017-02-10 10:38:44 +0100
commit24e4a7e926c8ef99bf531c1576b940fb1b1c42d1 (patch)
treea8952b230126a983b7db08fce316124612169018 /cpp
parentFixed ICE-7554 - Ice/ami failure on macOS (diff)
downloadice-24e4a7e926c8ef99bf531c1576b940fb1b1c42d1.tar.bz2
ice-24e4a7e926c8ef99bf531c1576b940fb1b1c42d1.tar.xz
ice-24e4a7e926c8ef99bf531c1576b940fb1b1c42d1.zip
Fix (ICE-7562) - Eliminate class-with-operation deprecated warnings
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/Slice/JavaUtil.cpp5
-rw-r--r--cpp/test/Ice/checksum/ClientTypes.ice68
-rw-r--r--cpp/test/Ice/checksum/ServerTypes.ice70
-rw-r--r--cpp/test/Ice/custom/Wstring.ice8
-rw-r--r--cpp/test/Ice/custom/WstringAMD.ice8
-rw-r--r--cpp/test/Ice/gc/Test.ice1
-rw-r--r--cpp/test/Ice/inheritance/Test.ice2
-rw-r--r--cpp/test/Ice/invoke/Test.ice2
-rw-r--r--cpp/test/Ice/objects/AllTests.cpp8
-rw-r--r--cpp/test/Ice/objects/Test.ice8
-rw-r--r--cpp/test/Ice/objects/TestI.cpp4
-rw-r--r--cpp/test/Ice/objects/TestI.h6
-rw-r--r--cpp/test/Ice/operations/Test.ice6
-rw-r--r--cpp/test/Ice/operations/TestAMD.ice6
-rw-r--r--cpp/test/Ice/optional/Test.ice5
-rw-r--r--cpp/test/Ice/optional/TestAMD.ice5
-rw-r--r--cpp/test/Ice/proxy/Test.ice4
-rw-r--r--cpp/test/Ice/proxy/TestAMD.ice4
-rw-r--r--cpp/test/Slice/escape/Key.ice9
-rw-r--r--cpp/test/Slice/parser/CircularA.ice2
-rw-r--r--cpp/test/Slice/parser/CircularB.ice2
21 files changed, 98 insertions, 135 deletions
diff --git a/cpp/src/Slice/JavaUtil.cpp b/cpp/src/Slice/JavaUtil.cpp
index 6dbb2fb7be5..e8744143ae5 100644
--- a/cpp/src/Slice/JavaUtil.cpp
+++ b/cpp/src/Slice/JavaUtil.cpp
@@ -382,22 +382,27 @@ private:
if(rest == "getset")
{
result.push_back(s);
+ continue;
}
else if(rest == "buffer")
{
result.push_back(s);
+ continue;
}
else if(rest == "tie")
{
result.push_back(s);
+ continue;
}
else if(rest == "UserException")
{
result.push_back(s);
+ continue;
}
else if(rest == "optional")
{
result.push_back(s);
+ continue;
}
}
}
diff --git a/cpp/test/Ice/checksum/ClientTypes.ice b/cpp/test/Ice/checksum/ClientTypes.ice
index 66014750174..51a18734e96 100644
--- a/cpp/test/Ice/checksum/ClientTypes.ice
+++ b/cpp/test/Ice/checksum/ClientTypes.ice
@@ -378,7 +378,7 @@ exception OptionalEx4
//
// TEST: Same
//
-class BaseClass1
+interface BaseInterface1
{
void baseOp1();
void baseOp2(int i, out string s) throws Exception1;
@@ -387,7 +387,7 @@ class BaseClass1
//
// TEST: Change return type
//
-class BaseClass2
+interface BaseInterface2
{
void baseOp();
void baseOp2(int i, out string s) throws Exception1;
@@ -396,7 +396,7 @@ class BaseClass2
//
// TEST: Add parameter
//
-class BaseClass3
+interface BaseInterface3
{
void baseOp();
void baseOp2(int i, out string s) throws Exception1;
@@ -405,7 +405,7 @@ class BaseClass3
//
// TEST: Add exception
//
-class BaseClass4
+interface BaseInterface4
{
void baseOp();
void baseOp2(int i, out string s) throws Exception1;
@@ -414,7 +414,7 @@ class BaseClass4
//
// TEST: Change out parameter to in parameter
//
-class BaseClass5
+interface BaseInterface5
{
void baseOp();
void baseOp2(int i, out string s) throws Exception1;
@@ -423,7 +423,7 @@ class BaseClass5
//
// TEST: Remove parameter
//
-class BaseClass6
+interface BaseInterface6
{
void baseOp();
void baseOp2(int i, out string s) throws Exception1;
@@ -432,7 +432,7 @@ class BaseClass6
//
// TEST: Remove exception
//
-class BaseClass7
+interface BaseInterface7
{
void baseOp();
void baseOp2(int i, out string s) throws Exception1;
@@ -441,34 +441,16 @@ class BaseClass7
//
// TEST: Remove operation
//
-class BaseClass8
+interface BaseInterface8
{
void baseOp();
void baseOp2(int i, out string s) throws Exception1;
};
//
-// TEST: Add base class
-//
-class BaseClass9
-{
- void baseOp();
- void baseOp2(int i, out string s) throws Exception1;
-};
-
-//
-// TEST: Add interface
-//
-class BaseClass10
-{
- void baseOp();
- void baseOp2(int i, out string s) throws Exception1;
-};
-
-//
-// TEST: Add base class and interface
+// TEST: Add base interface
//
-class BaseClass11
+interface BaseInterface9
{
void baseOp();
void baseOp2(int i, out string s) throws Exception1;
@@ -479,8 +461,7 @@ class BaseClass11
//
class Compact1(1)
{
- void baseOp();
- void baseOp2(int i, out string s) throws Exception1;
+ int id;
};
//
@@ -495,8 +476,7 @@ class Derived1 extends Compact1
//
class Compact2(2)
{
- void baseOp();
- void baseOp2(int i, out string s) throws Exception1;
+ int id;
};
//
@@ -550,53 +530,53 @@ class Optional4
};
//
-// TEST: Class with optional parameters.
+// TEST: Interface with optional parameters.
//
-class OptionalParameters0
+interface OptionalParameters0
{
void op1(string firstName, optional(1) string secondName,
optional(2) string emailAddress);
};
//
-// TEST: Class with optional parameters, different order.
+// TEST: Interface with optional parameters, different order.
//
-class OptionalParameters1
+interface OptionalParameters1
{
void op1(string firstName, optional(1) string secondName,
optional(2) string emailAddress);
};
//
-// TEST: Class with optional parameters, different tags.
+// TEST: Interface with optional parameters, different tags.
//
-class OptionalParameters2
+interface OptionalParameters2
{
void op1(string firstName, optional(1) string emailAddress,
optional(2) string secondName);
};
//
-// TEST: Class with different optional parameters.
+// TEST: Interface with different optional parameters.
//
-class OptionalParameters3
+interface OptionalParameters3
{
void op1(string firstName, optional(1) string emailAddress,
string secondName);
};
//
-// TEST: Class with optional return type.
+// TEST: Interface with optional return type.
//
-class OptionalReturn0
+interface OptionalReturn0
{
optional(1) int op();
};
//
-// TEST: Class that changes optional return type.
+// TEST: Interface that changes optional return type.
//
-class OptionalReturn2
+interface OptionalReturn2
{
optional(1) int op();
};
diff --git a/cpp/test/Ice/checksum/ServerTypes.ice b/cpp/test/Ice/checksum/ServerTypes.ice
index 76580049c9d..01456dc6e8c 100644
--- a/cpp/test/Ice/checksum/ServerTypes.ice
+++ b/cpp/test/Ice/checksum/ServerTypes.ice
@@ -9,6 +9,8 @@
#pragma once
+[["suppress-warning:deprecated"]] // For classes with operations
+
module Test
{
@@ -375,7 +377,7 @@ exception OptionalEx4
//
// TEST: Same
//
-class BaseClass1
+interface BaseInterface1
{
void baseOp1();
void baseOp2(int i, out string s) throws Exception1;
@@ -384,7 +386,7 @@ class BaseClass1
//
// TEST: Change return type
//
-class BaseClass2
+interface BaseInterface2
{
int baseOp();
void baseOp2(int i, out string s) throws Exception1;
@@ -393,7 +395,7 @@ class BaseClass2
//
// TEST: Add parameter
//
-class BaseClass3
+interface BaseInterface3
{
void baseOp(Object o);
void baseOp2(int i, out string s) throws Exception1;
@@ -402,7 +404,7 @@ class BaseClass3
//
// TEST: Add exception
//
-class BaseClass4
+interface BaseInterface4
{
void baseOp();
void baseOp2(int i, out string s) throws Exception1, Exception2;
@@ -411,7 +413,7 @@ class BaseClass4
//
// TEST: Change out parameter to in parameter
//
-class BaseClass5
+interface BaseInterface5
{
void baseOp();
void baseOp2(int i, string s) throws Exception1;
@@ -420,7 +422,7 @@ class BaseClass5
//
// TEST: Remove parameter
//
-class BaseClass6
+interface BaseInterface6
{
void baseOp();
void baseOp2(out string s) throws Exception1;
@@ -429,7 +431,7 @@ class BaseClass6
//
// TEST: Remove exception
//
-class BaseClass7
+interface BaseInterface7
{
void baseOp();
void baseOp2(int i, out string s);
@@ -438,33 +440,15 @@ class BaseClass7
//
// TEST: Remove operation
//
-class BaseClass8
-{
- void baseOp2(int i, out string s) throws Exception1;
-};
-
-//
-// TEST: Add base class
-//
-class BaseClass9 extends EmptyClass1
-{
- void baseOp();
- void baseOp2(int i, out string s) throws Exception1;
-};
-
-//
-// TEST: Add interface
-//
-class BaseClass10 implements Interface1
+interface BaseInterface8
{
- void baseOp();
void baseOp2(int i, out string s) throws Exception1;
};
//
-// TEST: Add base class and interface
+// TEST: Add base interface
//
-class BaseClass11 extends EmptyClass1 implements Interface1
+interface BaseInterface9 extends Interface1
{
void baseOp();
void baseOp2(int i, out string s) throws Exception1;
@@ -475,8 +459,7 @@ class BaseClass11 extends EmptyClass1 implements Interface1
//
class Compact1(1)
{
- void baseOp();
- void baseOp2(int i, out string s) throws Exception1;
+ int id;
};
//
@@ -491,8 +474,7 @@ class Derived1 extends Compact1
//
class Compact2(3)
{
- void baseOp();
- void baseOp2(int i, out string s) throws Exception1;
+ int id;
};
//
@@ -547,53 +529,53 @@ class Optional4
};
//
-// TEST: Class with optional parameters.
+// TEST: Interface with optional parameters.
//
-class OptionalParameters0
+interface OptionalParameters0
{
void op1(string firstName, optional(1) string secondName,
optional(2) string emailAddress);
};
//
-// TEST: Class with optional parameters, different order.
+// TEST: Interface with optional parameters, different order.
//
-class OptionalParameters1
+interface OptionalParameters1
{
void op1(string firstName, optional(2) string emailAddress,
optional(1) string secondName);
};
//
-// TEST: Class with optional parameters, different tags.
+// TEST: Interface with optional parameters, different tags.
//
-class OptionalParameters2
+interface OptionalParameters2
{
void op1(string firstName, optional(2) string emailAddress,
optional(1) string secondName);
};
//
-// TEST: Class with different optional parameters.
+// TEST: Interface with different optional parameters.
//
-class OptionalParameters3
+interface OptionalParameters3
{
void op1(string firstName, string emailAddress,
optional(1) string secondName);
};
//
-// TEST: Class with optional return type.
+// TEST: Interface with optional return type.
//
-class OptionalReturn0
+interface OptionalReturn0
{
optional(1) int op();
};
//
-// TEST: Class that changes optional return type.
+// TEST: Interface that changes optional return type.
//
-class OptionalReturn2
+interface OptionalReturn2
{
int op();
};
diff --git a/cpp/test/Ice/custom/Wstring.ice b/cpp/test/Ice/custom/Wstring.ice
index ea76ef851aa..48276b63a1f 100644
--- a/cpp/test/Ice/custom/Wstring.ice
+++ b/cpp/test/Ice/custom/Wstring.ice
@@ -26,7 +26,7 @@ exception WstringException
string reason;
};
-class WstringClass
+interface WstringClass
{
string opString(string s1, out string s2);
@@ -34,8 +34,6 @@ class WstringClass
void throwExcept(string reason)
throws WstringException;
-
- string s;
};
};
@@ -57,7 +55,7 @@ dictionary<["cpp:type:wstring"] string, ["cpp:type:wstring"] string> WstringWStr
string reason;
};
-["cpp:type:wstring"] class WstringClass
+["cpp:type:wstring"] interface WstringClass
{
string opString(string s1, out string s2);
@@ -65,8 +63,6 @@ dictionary<["cpp:type:wstring"] string, ["cpp:type:wstring"] string> WstringWStr
void throwExcept(string reason)
throws WstringException;
-
- string s;
};
};
diff --git a/cpp/test/Ice/custom/WstringAMD.ice b/cpp/test/Ice/custom/WstringAMD.ice
index 298a89e9280..2f8e04c7f86 100644
--- a/cpp/test/Ice/custom/WstringAMD.ice
+++ b/cpp/test/Ice/custom/WstringAMD.ice
@@ -26,7 +26,7 @@ exception WstringException
string reason;
};
-["amd"] class WstringClass
+["amd"] interface WstringClass
{
string opString(string s1, out string s2);
@@ -34,8 +34,6 @@ exception WstringException
void throwExcept(string reason)
throws WstringException;
-
- string s;
};
};
@@ -57,7 +55,7 @@ dictionary<["cpp:type:wstring"] string, ["cpp:type:wstring"] string> WstringWStr
string reason;
};
-["amd", "cpp:type:wstring"] class WstringClass
+["amd", "cpp:type:wstring"] interface WstringClass
{
string opString(string s1, out string s2);
@@ -65,8 +63,6 @@ dictionary<["cpp:type:wstring"] string, ["cpp:type:wstring"] string> WstringWStr
void throwExcept(string reason)
throws WstringException;
-
- string s;
};
};
diff --git a/cpp/test/Ice/gc/Test.ice b/cpp/test/Ice/gc/Test.ice
index 56a112ad2f2..b6bab2adf8a 100644
--- a/cpp/test/Ice/gc/Test.ice
+++ b/cpp/test/Ice/gc/Test.ice
@@ -171,7 +171,6 @@ module DDD
class C
{
- void op();
};
class C2;
diff --git a/cpp/test/Ice/inheritance/Test.ice b/cpp/test/Ice/inheritance/Test.ice
index 40a948a9f58..39139a9d7c9 100644
--- a/cpp/test/Ice/inheritance/Test.ice
+++ b/cpp/test/Ice/inheritance/Test.ice
@@ -9,6 +9,8 @@
#pragma once
+[["suppress-warning:deprecated"]] // For classes with operations
+
module Test
{
diff --git a/cpp/test/Ice/invoke/Test.ice b/cpp/test/Ice/invoke/Test.ice
index 53cb3e2ac74..5349b38ee5a 100644
--- a/cpp/test/Ice/invoke/Test.ice
+++ b/cpp/test/Ice/invoke/Test.ice
@@ -16,7 +16,7 @@ exception MyException
{
};
-class MyClass
+interface MyClass
{
void opOneway();
diff --git a/cpp/test/Ice/objects/AllTests.cpp b/cpp/test/Ice/objects/AllTests.cpp
index d26ec624039..08308818f21 100644
--- a/cpp/test/Ice/objects/AllTests.cpp
+++ b/cpp/test/Ice/objects/AllTests.cpp
@@ -9,7 +9,7 @@
#include <Ice/Ice.h>
#include <TestCommon.h>
-#include <Test.h>
+#include <TestI.h>
#ifdef _MSC_VER
// For 'Ice::Communicator::addObjectFactory()' deprecation
@@ -252,12 +252,12 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "testing protected members... " << flush;
- EPtr e = initial->getE();
- FPtr f = initial->getF();
+ EIPtr e = ICE_DYNAMIC_CAST(EI, initial->getE());
+ FIPtr f = ICE_DYNAMIC_CAST(FI, initial->getF());
#ifndef ICE_CPP11_MAPPING
test(e->checkValues());
test(f->checkValues());
- test(f->e2->checkValues());
+ test(ICE_DYNAMIC_CAST(EI, f->e2)->checkValues());
#endif
cout << "ok" << endl;
diff --git a/cpp/test/Ice/objects/Test.ice b/cpp/test/Ice/objects/Test.ice
index a6a502d18e0..32183c734ba 100644
--- a/cpp/test/Ice/objects/Test.ice
+++ b/cpp/test/Ice/objects/Test.ice
@@ -9,6 +9,8 @@
#pragma once
+[["suppress-warning:deprecated"]] // For classes with operations
+
module Test
{
@@ -72,16 +74,12 @@ class D
{
int i;
string s;
-
- bool checkValues();
};
class F
{
["protected"] E e1;
E e2;
-
- bool checkValues();
};
interface I
@@ -169,7 +167,7 @@ exception EDerived extends EBase
A1 a4;
};
-class Initial
+interface Initial
{
void shutdown();
B getB1();
diff --git a/cpp/test/Ice/objects/TestI.cpp b/cpp/test/Ice/objects/TestI.cpp
index a9c453ee104..dd57dea7762 100644
--- a/cpp/test/Ice/objects/TestI.cpp
+++ b/cpp/test/Ice/objects/TestI.cpp
@@ -55,7 +55,7 @@ EI::EI() :
}
bool
-EI::checkValues(const Ice::Current&)
+EI::checkValues()
{
return i == 1 && s == "hello";
}
@@ -70,7 +70,7 @@ FI::FI(const EPtr& e) :
}
bool
-FI::checkValues(const Ice::Current&)
+FI::checkValues()
{
return e1 && e1 == e2;
}
diff --git a/cpp/test/Ice/objects/TestI.h b/cpp/test/Ice/objects/TestI.h
index 177d2b01864..473c7b40bbf 100644
--- a/cpp/test/Ice/objects/TestI.h
+++ b/cpp/test/Ice/objects/TestI.h
@@ -43,8 +43,9 @@ public:
EI();
- virtual bool checkValues(const Ice::Current&);
+ bool checkValues();
};
+ICE_DEFINE_PTR(EIPtr, EI);
class FI : public Test::F
{
@@ -53,8 +54,9 @@ public:
FI();
FI(const Test::EPtr&);
- virtual bool checkValues(const Ice::Current&);
+ bool checkValues();
};
+ICE_DEFINE_PTR(FIPtr, FI);
#ifdef ICE_CPP11_MAPPING
class II : public ::Ice::InterfaceByValue<Test::I>
diff --git a/cpp/test/Ice/operations/Test.ice b/cpp/test/Ice/operations/Test.ice
index ca350559c8a..b8b1d40acc2 100644
--- a/cpp/test/Ice/operations/Test.ice
+++ b/cpp/test/Ice/operations/Test.ice
@@ -21,7 +21,7 @@ enum MyEnum
enum3
};
-class MyClass;
+interface MyClass;
struct AnotherStruct
{
@@ -94,7 +94,7 @@ dictionary<MyEnum, MyEnumS> MyEnumMyEnumSD;
exception SomeException {};
-class MyClass
+interface MyClass
{
void shutdown();
@@ -278,7 +278,7 @@ class MyClass1
string myClass1; // Same name as the enclosing class
};
-class MyDerivedClass extends MyClass
+interface MyDerivedClass extends MyClass
{
void opDerived();
MyClass1 opMyClass1(MyClass1 opMyClass1);
diff --git a/cpp/test/Ice/operations/TestAMD.ice b/cpp/test/Ice/operations/TestAMD.ice
index beb82b356cc..47d395fa025 100644
--- a/cpp/test/Ice/operations/TestAMD.ice
+++ b/cpp/test/Ice/operations/TestAMD.ice
@@ -21,7 +21,7 @@ enum MyEnum
enum3
};
-class MyClass;
+interface MyClass;
struct AnotherStruct
{
@@ -92,7 +92,7 @@ dictionary<string, DoubleS> StringDoubleSD;
dictionary<string, StringS> StringStringSD;
dictionary<MyEnum, MyEnumS> MyEnumMyEnumSD;
-["amd"] class MyClass
+["amd"] interface MyClass
{
void shutdown();
@@ -277,7 +277,7 @@ class MyClass1
};
-["amd"] class MyDerivedClass extends MyClass
+["amd"] interface MyDerivedClass extends MyClass
{
void opDerived();
MyClass1 opMyClass1(MyClass1 opMyClass1);
diff --git a/cpp/test/Ice/optional/Test.ice b/cpp/test/Ice/optional/Test.ice
index ebf60d3a15f..1cd8fa19869 100644
--- a/cpp/test/Ice/optional/Test.ice
+++ b/cpp/test/Ice/optional/Test.ice
@@ -196,11 +196,12 @@ class G
class Recursive;
sequence<Recursive> RecursiveSeq;
-class Recursive {
+class Recursive
+{
optional(0) RecursiveSeq value;
};
-class Initial
+interface Initial
{
void shutdown();
diff --git a/cpp/test/Ice/optional/TestAMD.ice b/cpp/test/Ice/optional/TestAMD.ice
index 5ae931827f9..e4c19cde393 100644
--- a/cpp/test/Ice/optional/TestAMD.ice
+++ b/cpp/test/Ice/optional/TestAMD.ice
@@ -196,12 +196,13 @@ class G
class Recursive;
sequence<Recursive> RecursiveSeq;
-class Recursive {
+class Recursive
+{
optional(0) RecursiveSeq value;
};
["amd"]
-class Initial
+interface Initial
{
void shutdown();
diff --git a/cpp/test/Ice/proxy/Test.ice b/cpp/test/Ice/proxy/Test.ice
index 239c473918a..46912931594 100644
--- a/cpp/test/Ice/proxy/Test.ice
+++ b/cpp/test/Ice/proxy/Test.ice
@@ -14,14 +14,14 @@
module Test
{
-class MyClass
+interface MyClass
{
void shutdown();
Ice::Context getContext();
};
-class MyDerivedClass extends MyClass
+interface MyDerivedClass extends MyClass
{
Object* echo(Object* obj);
};
diff --git a/cpp/test/Ice/proxy/TestAMD.ice b/cpp/test/Ice/proxy/TestAMD.ice
index 1df348cef04..4c5e5afa003 100644
--- a/cpp/test/Ice/proxy/TestAMD.ice
+++ b/cpp/test/Ice/proxy/TestAMD.ice
@@ -14,14 +14,14 @@
module Test
{
-["amd"] class MyClass
+["amd"] interface MyClass
{
void shutdown();
Ice::Context getContext();
};
-["amd"] class MyDerivedClass extends MyClass
+["amd"] interface MyDerivedClass extends MyClass
{
Object* echo(Object* obj);
};
diff --git a/cpp/test/Slice/escape/Key.ice b/cpp/test/Slice/escape/Key.ice
index 86d9288493f..a5f27867aae 100644
--- a/cpp/test/Slice/escape/Key.ice
+++ b/cpp/test/Slice/escape/Key.ice
@@ -40,7 +40,8 @@ interface char
class switch
{
int if;
- void foo(char* export, out int volatile);
+ char* export;
+ int volatile;
};
class do extends switch implements char, break
@@ -63,9 +64,9 @@ exception sizeof extends return
local interface friend
{
- auto goto(continue if, auto d, delete inline, switch private, do mutable, break* namespace,
- char* new, switch* not, do* operator, int or, int protected, int public, int register)
- throws return, sizeof;
+ auto goto(continue if, auto d, delete inline, switch private, do mutable, break* namespace,
+ char* new, switch* not, do* operator, int or, int protected, int public, int register)
+ throws return, sizeof;
};
const int template = 0;
diff --git a/cpp/test/Slice/parser/CircularA.ice b/cpp/test/Slice/parser/CircularA.ice
index 3beb0827682..c7fb719391f 100644
--- a/cpp/test/Slice/parser/CircularA.ice
+++ b/cpp/test/Slice/parser/CircularA.ice
@@ -14,7 +14,7 @@
module Test
{
-class A
+interface A
{
void shutdown();
};
diff --git a/cpp/test/Slice/parser/CircularB.ice b/cpp/test/Slice/parser/CircularB.ice
index c27f65d5e27..4df135fefdb 100644
--- a/cpp/test/Slice/parser/CircularB.ice
+++ b/cpp/test/Slice/parser/CircularB.ice
@@ -14,7 +14,7 @@
module Test
{
-class B
+interface B
{
void shutdown();
};