Changeset 85855b0 for tests/enum_tests/enumInlineValue.cfa
- Timestamp:
- Jun 10, 2024, 2:43:13 AM (5 months ago)
- Branches:
- master
- Children:
- 42cdd07d
- Parents:
- d68de59
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/enum_tests/enumInlineValue.cfa
rd68de59 r85855b0 2 2 #include <enum.hfa> 3 3 4 enum(int) A {4 enum(int) A !{ 5 5 a = 10 6 6 }; … … 36 36 }; 37 37 38 int identity(A a) { 39 return valueE(a); 38 // Note: variable name (cat in this case) cannot be overloaded with those declared in enum, 39 // Probably for the same reason as const overloading problem 40 // i.e. int identity_t(enum ACD a) would not work as the valueE(a) is ambigious currently 41 int identity_t(enum ACD cat) { 42 return valueE(cat); 40 43 } 41 44 … … 43 46 // Note: We need to use qualified name syntax even if no ! hidding 44 47 // Because Inline introduce ambiguity on symbols 45 //sout | "Symbols (enumerator) should have the same values:" |nl;46 //sout | "Symbol a: (10) " | valueE(A.a) | "," | valueE(AB.a) | "," | valueE(ACD.a) | nl;47 //sout | "Symbol b: (20) " | valueE(B.b) | "," | valueE(AB.b) | nl;48 //sout | "Symbol ab: (30) " | valueE(AB.ab) | nl;49 //sout | "Symbol c: (40) " | valueE(C.c) | "," | valueE(CD.c) | "," | valueE(ACD.c) | nl;50 //sout | "Symbol d: (50) " | valueE(D.d) | "," | valueE(CD.d) | "," | valueE(ACD.d) | nl;51 //sout | "Symbol cd: (60) " | valueE(CD.cd) | "," | valueE(ACD.cd) | nl;52 //sout | "Symbol acd: (70) " | valueE(ACD.acd) | nl;48 sout | "Symbols (enumerator) should have the same values:" |nl; 49 sout | "Symbol a: (10) " | valueE(A.a) | "," | valueE(AB.a) | "," | valueE(ACD.a) | nl; 50 sout | "Symbol b: (20) " | valueE(B.b) | "," | valueE(AB.b) | nl; 51 sout | "Symbol ab: (30) " | valueE(AB.ab) | nl; 52 sout | "Symbol c: (40) " | valueE(C.c) | "," | valueE(CD.c) | "," | valueE(ACD.c) | nl; 53 sout | "Symbol d: (50) " | valueE(D.d) | "," | valueE(CD.d) | "," | valueE(ACD.d) | nl; 54 sout | "Symbol cd: (60) " | valueE(CD.cd) | "," | valueE(ACD.cd) | nl; 55 sout | "Symbol acd: (70) " | valueE(ACD.acd) | nl; 53 56 54 //sout | "Casting/Upcasting:" | nl;55 //sout | "Symbol a: (10) " | valueE((A)A.a) | "," | valueE((AB)A.a) | "," | valueE((ACD)A.a) | nl;56 //sout | "Symbol b: (20) " | valueE((B)B.b) | "," | valueE((AB)B.b) | nl;57 //sout | "Symbol ab: (30) " | valueE((AB)AB.ab) | nl;58 //sout | "Symbol c: (40) " | valueE((C)C.c) | "," | valueE((CD)C.c) | "," | valueE((ACD)C.c) | "," | valueE((CD)CD.c)| "," | valueE((ACD)CD.c) | nl;59 //sout | "Symbol d: (50) " | valueE((D)D.d) | "," | valueE((CD)D.d) | "," | valueE((ACD)D.d) | "," | valueE((ACD)CD.d) | nl;60 //sout | "Symbol cd: (60) " | valueE((CD)CD.cd) | "," | valueE((ACD)CD.cd) | nl;61 //sout | "Symbol acd: (70) " | valueE((ACD)ACD.acd) | nl;57 sout | "Casting/Upcasting:" | nl; 58 sout | "Symbol a: (10) " | valueE((A)A.a) | "," | valueE((AB)A.a) | "," | valueE((ACD)A.a) | nl; 59 sout | "Symbol b: (20) " | valueE((B)B.b) | "," | valueE((AB)B.b) | nl; 60 sout | "Symbol ab: (30) " | valueE((AB)AB.ab) | nl; 61 sout | "Symbol c: (40) " | valueE((C)C.c) | "," | valueE((CD)C.c) | "," | valueE((ACD)C.c) | "," | valueE((CD)CD.c)| "," | valueE((ACD)CD.c) | nl; 62 sout | "Symbol d: (50) " | valueE((D)D.d) | "," | valueE((CD)D.d) | "," | valueE((ACD)D.d) | "," | valueE((ACD)CD.d) | nl; 63 sout | "Symbol cd: (60) " | valueE((CD)CD.cd) | "," | valueE((ACD)CD.cd) | nl; 64 sout | "Symbol acd: (70) " | valueE((ACD)ACD.acd) | nl; 62 65 63 // sout | "Function Call:" | nl; 64 // sout | "Symbol a: (10) " | identity(A.a) | "," | identity(ACD.a); 65 // sout | "Symbol c: (40) " | identity(C.c) | "," | identity(CD.c)| "," | identity(ACD.c); 66 identity(A.a); 67 66 sout | "Function Call:" | nl; 67 sout | "Symbol a: (10) " | identity_t(A.a) | "," | identity_t(ACD.a) | nl; 68 sout | "Symbol c: (40) " | identity_t(C.c) | "," | identity_t(ACD.c) | nl; 69 sout | "Symbol d: (50) " | identity_t(D.d) | "," | identity_t(ACD.d) | nl; 70 sout | "Symbol cd: (60) " | identity_t(CD.cd) | "," | identity_t(ACD.cd) | nl; 71 sout | "Symbol acd: (70) " | identity_t(ACD.acd) | nl; 68 72 }
Note: See TracChangeset
for help on using the changeset viewer.