summaryrefslogtreecommitdiff
path: root/cpp/test
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/test
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/test')
-rw-r--r--cpp/test/Slice/errorDetection/CaseInsensitive.err43
-rw-r--r--cpp/test/Slice/errorDetection/CaseInsensitive.ice6
-rw-r--r--cpp/test/Slice/errorDetection/ChangedMeaning.err1
-rw-r--r--cpp/test/Slice/errorDetection/ChangedMeaning.ice2
-rw-r--r--cpp/test/Slice/errorDetection/ConstDef.err2
-rw-r--r--cpp/test/Slice/errorDetection/ConstDef.ice2
-rw-r--r--cpp/test/Slice/errorDetection/EnumeratorDuplication.err4
-rw-r--r--cpp/test/Slice/errorDetection/EnumeratorRedefinition.err3
-rw-r--r--cpp/test/Slice/errorDetection/EnumeratorRedefinition.ice5
-rw-r--r--cpp/test/Slice/errorDetection/EnumeratorValues.err5
-rw-r--r--cpp/test/Slice/errorDetection/IdentAsKeyword.ice2
-rw-r--r--cpp/test/Slice/errorDetection/OptionalMembers.err59
-rw-r--r--cpp/test/Slice/errorDetection/OptionalMembers.ice14
-rw-r--r--cpp/test/Slice/errorDetection/OptionalParams.err48
-rw-r--r--cpp/test/Slice/errorDetection/OptionalParams.ice11
-rw-r--r--cpp/test/Slice/errorDetection/RedefinitionAsEnum.err3
-rw-r--r--cpp/test/Slice/errorDetection/RedefinitionAsEnumerator.err2
-rw-r--r--cpp/test/Slice/errorDetection/RedefinitionAsEnumerator.ice19
18 files changed, 105 insertions, 126 deletions
diff --git a/cpp/test/Slice/errorDetection/CaseInsensitive.err b/cpp/test/Slice/errorDetection/CaseInsensitive.err
index 3d38ddea03f..24441c77861 100644
--- a/cpp/test/Slice/errorDetection/CaseInsensitive.err
+++ b/cpp/test/Slice/errorDetection/CaseInsensitive.err
@@ -40,29 +40,26 @@ CaseInsensitive.ice:187: dictionary `M1' differs only in capitalization from mod
CaseInsensitive.ice:190: enumeration `eN1' differs only in capitalization from enumeration `en1'
CaseInsensitive.ice:191: redefinition of module `m1' as enumeration
CaseInsensitive.ice:192: enumeration `M1' differs only in capitalization from module `m1'
-CaseInsensitive.ice:194: redefinition of enumeration `en1' as enumerator
-CaseInsensitive.ice:195: enumerator `EN1' differs only in capitalization from enumeration `en1'
-CaseInsensitive.ice:196: redefinition of module `m1' as enumerator
-CaseInsensitive.ice:197: enumerator `M1' differs only in capitalization from module `m1'
-CaseInsensitive.ice:215: interface name `base' is capitalized inconsistently with its previous name: `::Test::xxx::xx::Base'
-CaseInsensitive.ice:215: redefinition of interface `Derived'
-CaseInsensitive.ice:223: exception name `E1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::e1'
-CaseInsensitive.ice:229: sequence name `S1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::s1'
-CaseInsensitive.ice:230: sequence name `xxx::xx::S1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::s1'
-CaseInsensitive.ice:231: sequence name `xxx::XX::s1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::s1'
-CaseInsensitive.ice:232: sequence name `xxx::XX::s1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::s1'
-CaseInsensitive.ice:238: interface name `derived' is capitalized inconsistently with its previous name: `::Test::xxx::xx::Derived'
-CaseInsensitive.ice:247: parameter `Param' differs only in capitalization from parameter `param'
-CaseInsensitive.ice:247: `Param' has changed meaning
-CaseInsensitive.ice:249: exception name `E1' is capitalized inconsistently with its previous name: `::Test::e1'
+CaseInsensitive.ice:193: enumerator `EN1' differs only in capitalization from `en1'
+CaseInsensitive.ice:211: interface name `base' is capitalized inconsistently with its previous name: `::Test::xxx::xx::Base'
+CaseInsensitive.ice:211: redefinition of interface `Derived'
+CaseInsensitive.ice:219: exception name `E1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::e1'
+CaseInsensitive.ice:225: sequence name `S1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::s1'
+CaseInsensitive.ice:226: sequence name `xxx::xx::S1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::s1'
+CaseInsensitive.ice:227: sequence name `xxx::XX::s1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::s1'
+CaseInsensitive.ice:228: sequence name `xxx::XX::s1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::s1'
+CaseInsensitive.ice:234: interface name `derived' is capitalized inconsistently with its previous name: `::Test::xxx::xx::Derived'
+CaseInsensitive.ice:243: parameter `Param' differs only in capitalization from parameter `param'
+CaseInsensitive.ice:243: `Param' has changed meaning
+CaseInsensitive.ice:245: exception name `E1' is capitalized inconsistently with its previous name: `::Test::e1'
+CaseInsensitive.ice:247: exception name `Test::xxx::xx::E1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::e1'
+CaseInsensitive.ice:248: exception name `Test::xxx::XX::e1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::e1'
+CaseInsensitive.ice:249: exception name `Test::XXX::xx::e1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::e1'
CaseInsensitive.ice:251: exception name `Test::xxx::xx::E1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::e1'
CaseInsensitive.ice:252: exception name `Test::xxx::XX::e1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::e1'
CaseInsensitive.ice:253: exception name `Test::XXX::xx::e1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::e1'
-CaseInsensitive.ice:255: exception name `Test::xxx::xx::E1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::e1'
-CaseInsensitive.ice:256: exception name `Test::xxx::XX::e1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::e1'
-CaseInsensitive.ice:257: exception name `Test::XXX::xx::e1' is capitalized inconsistently with its previous name: `::Test::xxx::xx::e1'
-CaseInsensitive.ice:275: ambiguous multiple inheritance: `derived' inherits operations `op' and `OP', which differ only in capitalization, from unrelated base interfaces
-CaseInsensitive.ice:290: warning: classes with operations are deprecated
-CaseInsensitive.ice:292: parameter `BASE1' differs only in capitalization from parameter `base1'
-CaseInsensitive.ice:292: `BASE1' has changed meaning
-CaseInsensitive.ice:322: data member `x' differs only in capitalization from data member `X', which is defined in a base interface or class
+CaseInsensitive.ice:271: ambiguous multiple inheritance: `derived' inherits operations `op' and `OP', which differ only in capitalization, from unrelated base interfaces
+CaseInsensitive.ice:286: warning: classes with operations are deprecated
+CaseInsensitive.ice:288: parameter `BASE1' differs only in capitalization from parameter `base1'
+CaseInsensitive.ice:288: `BASE1' has changed meaning
+CaseInsensitive.ice:318: data member `x' differs only in capitalization from data member `X', which is defined in a base interface or class
diff --git a/cpp/test/Slice/errorDetection/CaseInsensitive.ice b/cpp/test/Slice/errorDetection/CaseInsensitive.ice
index c710f6137e5..bd1ec4ebf69 100644
--- a/cpp/test/Slice/errorDetection/CaseInsensitive.ice
+++ b/cpp/test/Slice/errorDetection/CaseInsensitive.ice
@@ -190,11 +190,7 @@ enum en1 { red };
enum eN1 { lilac };
enum m1 { green };
enum M1 { blue };
-
-enum en2 { yellow, en1 };
-enum en3 { EN1 };
-enum en4 { amber, m1 };
-enum en5 { M1 };
+enum en2 { yellow, en1, EN1};
module xxx
{
diff --git a/cpp/test/Slice/errorDetection/ChangedMeaning.err b/cpp/test/Slice/errorDetection/ChangedMeaning.err
index 8518ae0cc7f..5dc3b6e6d7d 100644
--- a/cpp/test/Slice/errorDetection/ChangedMeaning.err
+++ b/cpp/test/Slice/errorDetection/ChangedMeaning.err
@@ -6,7 +6,6 @@ ChangedMeaning.ice:85: `e1' has changed meaning
ChangedMeaning.ice:86: `e2' has changed meaning
ChangedMeaning.ice:98: `c1' has changed meaning
ChangedMeaning.ice:99: `c2' has changed meaning
-ChangedMeaning.ice:110: `blue' has changed meaning
ChangedMeaning.ice:120: `CounterSeq' has changed meaning
ChangedMeaning.ice:129: redefinition of parameter `param'
ChangedMeaning.ice:147: `E' is not an exception
diff --git a/cpp/test/Slice/errorDetection/ChangedMeaning.ice b/cpp/test/Slice/errorDetection/ChangedMeaning.ice
index 857ac8faf9e..ed13ac5579e 100644
--- a/cpp/test/Slice/errorDetection/ChangedMeaning.ice
+++ b/cpp/test/Slice/errorDetection/ChangedMeaning.ice
@@ -107,7 +107,7 @@ module B
const color fc = blue;
- interface blue {}; // Changed meaning
+ interface blue {}; // Ok as of 3.7: enums are now scoped
};
diff --git a/cpp/test/Slice/errorDetection/ConstDef.err b/cpp/test/Slice/errorDetection/ConstDef.err
index ddaa4d298f9..5183f111763 100644
--- a/cpp/test/Slice/errorDetection/ConstDef.err
+++ b/cpp/test/Slice/errorDetection/ConstDef.err
@@ -9,7 +9,7 @@ ConstDef.ice:85: initializer of type `double' is incompatible with the type `sho
ConstDef.ice:86: type of initializer is incompatible with the type `int' of constant `ic7'
ConstDef.ice:87: initializer of type `bool' is incompatible with the type `long' of constant `ic8'
ConstDef.ice:89: missing constant name
-ConstDef.ice:92: enumerator `two' is not defined in enumeration `::Test::color'
+ConstDef.ice:92: `two' does not designate an enumerator of `::Test::color'
ConstDef.ice:93: type of initializer is incompatible with the type of constant `ic10'
ConstDef.ice:109: integer constant `-9223372036854775809' out of range
ConstDef.ice:110: integer constant `+9223372036854775808' out of range
diff --git a/cpp/test/Slice/errorDetection/ConstDef.ice b/cpp/test/Slice/errorDetection/ConstDef.ice
index 156fc4f92b5..28c377b6837 100644
--- a/cpp/test/Slice/errorDetection/ConstDef.ice
+++ b/cpp/test/Slice/errorDetection/ConstDef.ice
@@ -27,7 +27,7 @@ const string stringconst = "X\aX\x01000\x100\rX\007\xff\xff\xff\x0ff\xfff\x1X";
const string stringconst2 = "Hello World!";
enum color { red, green, blue };
const color colorconst = blue;
-const ::Test::color colorconst2 = ::Test::green;
+const ::Test::color colorconst2 = ::Test::color::green;
//
// Checks for number formats (all OK)
diff --git a/cpp/test/Slice/errorDetection/EnumeratorDuplication.err b/cpp/test/Slice/errorDetection/EnumeratorDuplication.err
index 4b950071a87..58132400946 100644
--- a/cpp/test/Slice/errorDetection/EnumeratorDuplication.err
+++ b/cpp/test/Slice/errorDetection/EnumeratorDuplication.err
@@ -1,2 +1,2 @@
-EnumeratorDuplication.ice:19: enumerator `B' has a duplicate value
-EnumeratorDuplication.ice:19: enumerator `D' has a duplicate value
+EnumeratorDuplication.ice:16: enumerator `B' has the same value as enumerator `A'
+EnumeratorDuplication.ice:18: enumerator `D' has the same value as enumerator `C'
diff --git a/cpp/test/Slice/errorDetection/EnumeratorRedefinition.err b/cpp/test/Slice/errorDetection/EnumeratorRedefinition.err
index d391d9c7784..ac120d41d16 100644
--- a/cpp/test/Slice/errorDetection/EnumeratorRedefinition.err
+++ b/cpp/test/Slice/errorDetection/EnumeratorRedefinition.err
@@ -1,2 +1 @@
-EnumeratorRedefinition.ice:16: redefinition of enumerator `A' as enumerator
-EnumeratorRedefinition.ice:16: redefinition of enumerator `B' as enumerator
+EnumeratorRedefinition.ice:17: redefinition of enumerator `A' \ No newline at end of file
diff --git a/cpp/test/Slice/errorDetection/EnumeratorRedefinition.ice b/cpp/test/Slice/errorDetection/EnumeratorRedefinition.ice
index 59236416a0b..ab991eaa747 100644
--- a/cpp/test/Slice/errorDetection/EnumeratorRedefinition.ice
+++ b/cpp/test/Slice/errorDetection/EnumeratorRedefinition.ice
@@ -12,7 +12,8 @@
module Test
{
-enum Enum1 { A, B, C };
-enum Enum2 { A, B, E };
+enum Enum1 { A, B, C }; // Ok as of 3.7
+enum Enum2 { A, B, E }; // Ok as of 3.7
+enum Enum3 { A, B, C, A };
};
diff --git a/cpp/test/Slice/errorDetection/EnumeratorValues.err b/cpp/test/Slice/errorDetection/EnumeratorValues.err
index 0c8d45e9399..b397f349d7a 100644
--- a/cpp/test/Slice/errorDetection/EnumeratorValues.err
+++ b/cpp/test/Slice/errorDetection/EnumeratorValues.err
@@ -1,4 +1,5 @@
+EnumeratorValues.ice:17: value for enumerator `C' is out of range
+EnumeratorValues.ice:17: enumerator `C' has the same value as enumerator `B'
EnumeratorValues.ice:18: value for enumerator `D' is out of range
EnumeratorValues.ice:19: value for enumerator `E' is out of range
-EnumeratorValues.ice:20: value for enumerator `F' is out of range
-EnumeratorValues.ice:21: value for enumerator `C' is out of range
+EnumeratorValues.ice:20: value for enumerator `F' is out of range \ No newline at end of file
diff --git a/cpp/test/Slice/errorDetection/IdentAsKeyword.ice b/cpp/test/Slice/errorDetection/IdentAsKeyword.ice
index a0df4c5f7bc..921c3509624 100644
--- a/cpp/test/Slice/errorDetection/IdentAsKeyword.ice
+++ b/cpp/test/Slice/errorDetection/IdentAsKeyword.ice
@@ -66,7 +66,7 @@ enum local { a, b };
enum LOCAL { c, e };
enum e1 { long, byte, foo };
-enum e2 { LONG, BYTE, bar };
+enum e2 { LONG, BYTE, bar }; // Ok as of 3.7
interface i1 { long module(); };
interface i2 { long mODule(); };
diff --git a/cpp/test/Slice/errorDetection/OptionalMembers.err b/cpp/test/Slice/errorDetection/OptionalMembers.err
index 727ea9673f5..8b9fbf5d41c 100644
--- a/cpp/test/Slice/errorDetection/OptionalMembers.err
+++ b/cpp/test/Slice/errorDetection/OptionalMembers.err
@@ -1,30 +1,33 @@
-OptionalMembers.ice:24: missing tag for optional
-OptionalMembers.ice:25: missing tag for optional
-OptionalMembers.ice:26: `abc' is not defined
-OptionalMembers.ice:27: tag for optional is out of range
-OptionalMembers.ice:28: tag for optional is out of range
+OptionalMembers.ice:26: missing tag for optional
+OptionalMembers.ice:27: missing tag for optional
+OptionalMembers.ice:28: `abc' is not defined
OptionalMembers.ice:29: tag for optional is out of range
-OptionalMembers.ice:31: tag for optional data member `m8' is already in use
-OptionalMembers.ice:32: tag for optional is out of range
-OptionalMembers.ice:32: invalid tag `C3' for optional
-OptionalMembers.ice:33: tag for optional is out of range
-OptionalMembers.ice:33: invalid tag `C4' for optional
-OptionalMembers.ice:34: invalid tag `C5' for optional
-OptionalMembers.ice:36: tag for optional data member `m13' is already in use
-OptionalMembers.ice:39: tag for optional data member `m16' is already in use
-OptionalMembers.ice:54: missing tag for optional
-OptionalMembers.ice:55: missing tag for optional
-OptionalMembers.ice:56: `abc' is not defined
-OptionalMembers.ice:57: tag for optional is out of range
-OptionalMembers.ice:58: tag for optional is out of range
+OptionalMembers.ice:30: tag for optional is out of range
+OptionalMembers.ice:31: tag for optional is out of range
+OptionalMembers.ice:33: tag for optional data member `m8' is already in use
+OptionalMembers.ice:34: tag for optional is out of range
+OptionalMembers.ice:34: invalid tag `C3' for optional
+OptionalMembers.ice:35: tag for optional is out of range
+OptionalMembers.ice:35: invalid tag `C4' for optional
+OptionalMembers.ice:36: invalid tag `C5' for optional
+OptionalMembers.ice:38: tag for optional data member `m13' is already in use
+OptionalMembers.ice:39: enumerator `e2' could designate `::Test::E::e2' or `::Test::Ebis::e2' or `::Test::Eter::e2'
+OptionalMembers.ice:40: warning: referencing enumerator `::Test::E::e3' without its enumeration's scope is deprecated
+OptionalMembers.ice:41: tag for optional data member `m16' is already in use
+OptionalMembers.ice:56: missing tag for optional
+OptionalMembers.ice:57: missing tag for optional
+OptionalMembers.ice:58: `abc' is not defined
OptionalMembers.ice:59: tag for optional is out of range
-OptionalMembers.ice:61: tag for optional data member `m8' is already in use
-OptionalMembers.ice:62: tag for optional is out of range
-OptionalMembers.ice:62: invalid tag `C3' for optional
-OptionalMembers.ice:63: tag for optional is out of range
-OptionalMembers.ice:63: invalid tag `C4' for optional
-OptionalMembers.ice:64: invalid tag `C5' for optional
-OptionalMembers.ice:66: tag for optional data member `m13' is already in use
-OptionalMembers.ice:69: tag for optional data member `m16' is already in use
-OptionalMembers.ice:84: optional data members not supported in struct
-OptionalMembers.ice:85: optional data members not supported in struct
+OptionalMembers.ice:60: tag for optional is out of range
+OptionalMembers.ice:61: tag for optional is out of range
+OptionalMembers.ice:63: tag for optional data member `m8' is already in use
+OptionalMembers.ice:64: tag for optional is out of range
+OptionalMembers.ice:64: invalid tag `C3' for optional
+OptionalMembers.ice:65: tag for optional is out of range
+OptionalMembers.ice:65: invalid tag `C4' for optional
+OptionalMembers.ice:66: invalid tag `C5' for optional
+OptionalMembers.ice:68: tag for optional data member `m13' is already in use
+OptionalMembers.ice:70: warning: referencing enumerator `::Test::E::e3' without its enumeration's scope is deprecated
+OptionalMembers.ice:71: tag for optional data member `m16' is already in use
+OptionalMembers.ice:86: optional data members not supported in struct
+OptionalMembers.ice:87: optional data members not supported in struct
diff --git a/cpp/test/Slice/errorDetection/OptionalMembers.ice b/cpp/test/Slice/errorDetection/OptionalMembers.ice
index 368289ca906..d4c6d27c4e4 100644
--- a/cpp/test/Slice/errorDetection/OptionalMembers.ice
+++ b/cpp/test/Slice/errorDetection/OptionalMembers.ice
@@ -18,6 +18,8 @@ const float C5 = 1.1;
const long C6 = 2;
enum E { e1, e2, e3 = 4 };
+enum Ebis { e2 };
+enum Eter { e2 };
class C
{
@@ -33,15 +35,15 @@ class C
optional(C4) byte m10; // out of range
optional(C5) bool m11; // invalid tag
optional(C6) bool m12; // ok
- optional(e1) int m13; // duplicate tag
- optional(e2) int m14; // ok
+ optional(E::e1) int m13; // duplicate tag
+ optional(e2) int m14; // ambiguous
optional(e3) int m15; // ok
optional(4) int m16; // duplicate tag
};
class Base
{
- optional(e2) int b1;
+ optional(E::e2) int b1;
};
class Derived extends Base
@@ -63,15 +65,15 @@ class Ex
optional(C4) byte m10; // out of range
optional(C5) bool m11; // invalid tag
optional(C6) bool m12; // ok
- optional(e1) int m13; // duplicate tag
- optional(e2) int m14; // ok
+ optional(E::e1) int m13; // duplicate tag
+ optional(E::e2) int m14; // ok
optional(e3) int m15; // ok
optional(4) int m16; // duplicate tag
};
class BaseEx
{
- optional(e2) int b1;
+ optional(E::e2) int b1;
};
class DerivedEx extends BaseEx
diff --git a/cpp/test/Slice/errorDetection/OptionalParams.err b/cpp/test/Slice/errorDetection/OptionalParams.err
index 76152d99737..53f53aacd96 100644
--- a/cpp/test/Slice/errorDetection/OptionalParams.err
+++ b/cpp/test/Slice/errorDetection/OptionalParams.err
@@ -1,38 +1,40 @@
-OptionalParams.ice:24: missing tag for optional
OptionalParams.ice:25: missing tag for optional
-OptionalParams.ice:26: `abc' is not defined
-OptionalParams.ice:27: tag for optional is out of range
+OptionalParams.ice:26: missing tag for optional
+OptionalParams.ice:27: `abc' is not defined
OptionalParams.ice:28: tag for optional is out of range
OptionalParams.ice:29: tag for optional is out of range
-OptionalParams.ice:31: tag for optional is out of range
-OptionalParams.ice:31: invalid tag `C3' for optional
+OptionalParams.ice:30: tag for optional is out of range
OptionalParams.ice:32: tag for optional is out of range
-OptionalParams.ice:32: invalid tag `C4' for optional
-OptionalParams.ice:33: invalid tag `C5' for optional
-OptionalParams.ice:36: syntax error
-OptionalParams.ice:38: missing tag for optional
+OptionalParams.ice:32: invalid tag `C3' for optional
+OptionalParams.ice:33: tag for optional is out of range
+OptionalParams.ice:33: invalid tag `C4' for optional
+OptionalParams.ice:34: invalid tag `C5' for optional
+OptionalParams.ice:37: syntax error
OptionalParams.ice:39: missing tag for optional
-OptionalParams.ice:40: `abc' is not defined
-OptionalParams.ice:41: tag for optional is out of range
+OptionalParams.ice:40: missing tag for optional
+OptionalParams.ice:41: `abc' is not defined
OptionalParams.ice:42: tag for optional is out of range
OptionalParams.ice:43: tag for optional is out of range
-OptionalParams.ice:45: tag for optional is out of range
-OptionalParams.ice:45: invalid tag `C3' for optional
+OptionalParams.ice:44: tag for optional is out of range
OptionalParams.ice:46: tag for optional is out of range
-OptionalParams.ice:46: invalid tag `C4' for optional
-OptionalParams.ice:47: invalid tag `C5' for optional
-OptionalParams.ice:51: missing tag for optional
+OptionalParams.ice:46: invalid tag `C3' for optional
+OptionalParams.ice:47: tag for optional is out of range
+OptionalParams.ice:47: invalid tag `C4' for optional
+OptionalParams.ice:48: invalid tag `C5' for optional
+OptionalParams.ice:50: warning: referencing enumerator `::Test::E::e2' without its enumeration's scope is deprecated
OptionalParams.ice:52: missing tag for optional
-OptionalParams.ice:53: `abc' is not defined
-OptionalParams.ice:54: tag for optional is out of range
+OptionalParams.ice:53: missing tag for optional
+OptionalParams.ice:54: `abc' is not defined
OptionalParams.ice:55: tag for optional is out of range
OptionalParams.ice:56: tag for optional is out of range
-OptionalParams.ice:58: tag for optional is out of range
-OptionalParams.ice:58: invalid tag `C3' for optional
+OptionalParams.ice:57: tag for optional is out of range
OptionalParams.ice:59: tag for optional is out of range
-OptionalParams.ice:59: invalid tag `C4' for optional
-OptionalParams.ice:60: invalid tag `C5' for optional
-OptionalParams.ice:66: tag for optional parameter `o' is already in use
+OptionalParams.ice:59: invalid tag `C3' for optional
+OptionalParams.ice:60: tag for optional is out of range
+OptionalParams.ice:60: invalid tag `C4' for optional
+OptionalParams.ice:61: invalid tag `C5' for optional
+OptionalParams.ice:63: enumerator `e1' could designate `::Test::E::e1' or `::Test::Ebis::e1'
OptionalParams.ice:67: tag for optional parameter `o' is already in use
OptionalParams.ice:68: tag for optional parameter `o' is already in use
OptionalParams.ice:69: tag for optional parameter `o' is already in use
+OptionalParams.ice:70: tag for optional parameter `o' is already in use
diff --git a/cpp/test/Slice/errorDetection/OptionalParams.ice b/cpp/test/Slice/errorDetection/OptionalParams.ice
index 94013805125..c23edc3a8c3 100644
--- a/cpp/test/Slice/errorDetection/OptionalParams.ice
+++ b/cpp/test/Slice/errorDetection/OptionalParams.ice
@@ -18,6 +18,7 @@ const float C5 = 1.1;
const long C6 = 2;
enum E { e1, e2, e3 };
+enum Ebis { e1 };
interface I
{
@@ -32,8 +33,8 @@ interface I
optional(C4) byte r9(); // out of range
optional(C5) bool r10(); // invalid tag
optional(C6) bool r11(); // ok
- optional(e1) int r12(); // ok
- optional(e2) void r13(); // syntax error
+ optional(E::e1) int r12(); // ok
+ optional(E::e2) void r13(); // syntax error
void i1(optional string p); // missing tag
void i2(optional() int p); // missing tag
@@ -46,7 +47,7 @@ interface I
void i9(optional(C4) byte p); // out of range
void i10(optional(C5) bool p); // invalid tag
void i11(optional(C6) bool p); // ok
- void i12(optional(e1) int p); // ok
+ void i12(optional(e2) int p); // ok (warning)
void o1(out optional string p); // missing tag
void o2(out optional() int p); // missing tag
@@ -59,14 +60,14 @@ interface I
void o9(out optional(C4) byte p); // out of range
void o10(out optional(C5) bool p); // invalid tag
void o11(out optional(C6) bool p); // ok
- void o12(out optional(e1) int p); // ok
+ void o12(out optional(e1) int p); // ambiguous
optional(1) int io1(optional(2) int p, out optional(3) int o); // ok
optional(1) int io2(out optional(2) int p, out optional(3) int o); // ok
optional(1) int io3(optional(2) int p, out optional(1) int o); // duplicate tag
optional(1) int io4(out optional(2) int p, out optional(2) int o); // duplicate tag
optional(2) int io5(out optional(1) int p, out optional(2) int o); // duplicate tag
- optional(C1) int io6(optional(e2) int p, out optional(e1) int o); // duplicate tag
+ optional(C1) int io6(optional(E::e2) int p, out optional(E::e1) int o); // duplicate tag
};
};
diff --git a/cpp/test/Slice/errorDetection/RedefinitionAsEnum.err b/cpp/test/Slice/errorDetection/RedefinitionAsEnum.err
index 78992bb773b..4765ef74dc1 100644
--- a/cpp/test/Slice/errorDetection/RedefinitionAsEnum.err
+++ b/cpp/test/Slice/errorDetection/RedefinitionAsEnum.err
@@ -1,2 +1 @@
-RedefinitionAsEnum.ice:16: redefinition of class `C' as enumeration
-RedefinitionAsEnum.ice:16: redefinition of class `C' as enumerator
+RedefinitionAsEnum.ice:16: redefinition of class `C' as enumeration \ No newline at end of file
diff --git a/cpp/test/Slice/errorDetection/RedefinitionAsEnumerator.err b/cpp/test/Slice/errorDetection/RedefinitionAsEnumerator.err
deleted file mode 100644
index ca3919b9536..00000000000
--- a/cpp/test/Slice/errorDetection/RedefinitionAsEnumerator.err
+++ /dev/null
@@ -1,2 +0,0 @@
-RedefinitionAsEnumerator.ice:17: redefinition of class `C' as enumerator
-RedefinitionAsEnumerator.ice:17: redefinition of sequence `Seq' as enumerator
diff --git a/cpp/test/Slice/errorDetection/RedefinitionAsEnumerator.ice b/cpp/test/Slice/errorDetection/RedefinitionAsEnumerator.ice
deleted file mode 100644
index bb26e99c6ba..00000000000
--- a/cpp/test/Slice/errorDetection/RedefinitionAsEnumerator.ice
+++ /dev/null
@@ -1,19 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-
-
-module Test
-{
-
-class C { long l; };
-sequence<int> Seq;
-enum E { C, Seq, blah };
-
-};