| 958 | } |
| 959 | |
| 960 | void TestDUChain::testReferenceType() |
| 961 | { |
| 962 | IntegralType::Ptr integralT(new IntegralType(IntegralType::TypeDouble)); |
| 963 | |
| 964 | ReferenceType ref; |
| 965 | ref.setIsRValue(false); |
| 966 | ref.setBaseType(integralT); |
| 967 | QCOMPARE(ref.toString(), "double&"); |
| 968 | |
| 969 | ReferenceType rValueRef; |
| 970 | rValueRef.setIsRValue(true); |
| 971 | rValueRef.setBaseType(integralT); |
| 972 | QCOMPARE(rValueRef.toString(), "double&&"); |
| 973 | |
| 974 | QCOMPARE_NE(rValueRef.hash(), ref.hash()); |
| 975 | QVERIFY(!rValueRef.equals(&ref)); |
| 976 | QVERIFY(!ref.equals(&rValueRef)); |
| 977 | |
| 978 | // now toggle the flag to false and make sure the equalities succeed |
| 979 | rValueRef.setIsRValue(false); |
| 980 | QCOMPARE_EQ(rValueRef.hash(), ref.hash()); |
| 981 | QVERIFY(rValueRef.equals(&ref)); |
| 982 | QVERIFY(ref.equals(&rValueRef)); |
| 983 | } |
| 984 | |
| 985 | #if 0 |
| 986 |
nothing calls this directly
no test coverage detected