name.erase(std::remove(name.begin(), name.end(), target), name.end());
return name;
}
+
+ inline bool ends_with(std::string const& source, std::string suffix)
+ {
+ if (source.size() > suffix.size())
+ return (0 == source.compare(source.size() - suffix.size(), suffix.size(), suffix));
+ else
+ return false;
+ }
} }
#endif
auto lit = ::eolian_expression_value_to_literal(&constant.expression_value);
if (!lit)
return false;
+
literal = lit;
::eina_stringshare_del(lit);
+
+ // Cleanup suffix. Roslyn does not accept ULL/LL as it has only longs.
+ if (utils::ends_with(literal, "LL") || utils::ends_with(literal, "ll"))
+ literal = literal.substr(0, literal.size() -1);
+
}
// declare variable
Test.AssertEquals(Dummy.Constants.ConstvarUInt, 65533U);
Test.AssertEquals(Dummy.Constants.ConstvarLong, -2147483644L);
Test.AssertEquals(Dummy.Constants.ConstvarULong, 4294967288UL);
- //Test.AssertEquals(Dummy.Constants.ConstvarLLong, -9223372036854775800); // TODO
- //Test.AssertEquals(Dummy.Constants.ConstvarULLong, 18446744073709551615);
+ Test.AssertEquals(Dummy.Constants.ConstvarLLong, -9223372036854775800);
+ Test.AssertEquals(Dummy.Constants.ConstvarULLong, 18446744073709551615);
Test.AssertEquals(Dummy.Constants.ConstvarFloat, 16777211.0f);
Test.AssertEquals(Dummy.Constants.ConstvarDouble, 9007199254740988.0);
Test.AssertEquals(Dummy.Constants.ConstvarChar, '!');