standalone_call.sol 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. contract foo {
  2. function bar() public pure returns (int, int) {
  3. return (1, 2);
  4. }
  5. }
  6. contract BABYLINK {
  7. struct tts{
  8. int a;
  9. int b;
  10. }
  11. function multipleRetuns(int c) public pure returns (int, int, int) {
  12. return (1, c + 2, 3);
  13. }
  14. function singleReturn() private pure returns (uint) {
  15. return 3;
  16. }
  17. function returnBool() private pure returns (bool) {
  18. return true;
  19. }
  20. function testing() public returns (int) {
  21. multipleRetuns(3);
  22. int b = 5;
  23. multipleRetuns({c: 9});
  24. 1 + singleReturn();
  25. 1 - singleReturn();
  26. 1 * singleReturn();
  27. 1 / singleReturn();
  28. 1 | singleReturn();
  29. 1 & singleReturn();
  30. 1 << singleReturn();
  31. 1 >> singleReturn();
  32. !returnBool();
  33. ~singleReturn();
  34. +singleReturn();
  35. -singleReturn();
  36. foo r = new foo();
  37. r.bar();
  38. 1 + (1.3 + 1.8);
  39. function (int) external returns (int, int, int) fptr = this.multipleRetuns;
  40. function (int) internal returns (int, int, int) fptr2 = multipleRetuns;
  41. fptr(3);
  42. fptr2(3);
  43. address(this).call("multipleRetuns");
  44. tts(1, 2);
  45. tts({a: 1, b:2});
  46. return b;
  47. }
  48. }
  49. // ---- Expect: diagnostics ----
  50. // error: 39:9-24: unary plus not permitted
  51. // error: 40:9-24: negate not allowed on unsigned