// Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// @dart=2.9

const int shiftNegative1 = 2 << -1;
const int shiftNegative3 = 2 >> -1;
const int modZero = 2 % 0;
const int divZero = 2 / 0;
const int intdivZero = 2 ~/ 0;
const int unaryMinus = -2;
const int unaryTilde = ~2;
const int unaryPlus = +2;

const int binaryPlus = 40 + 2;
const int binaryMinus = 44 - 2;
const int binaryTimes = 21 * 2;
const double binaryDiv = 84 / 2;
const int binaryTildeDiv = 84~/ 2;
const int binaryMod = 85 % 43;
const int binaryOr = 32 | 10;
const int binaryAnd = 63 & 106;
const int binaryXor = 63 ^ 21;
const int binaryShift1 = 21 << 1;

const int binaryShift4 = 84 >> 1;
const bool binaryLess = 42 < 42;
const bool binaryLessEqual = 42 <= 42;
const bool binaryGreaterEqual = 42 >= 42;
const bool binaryGreater = 42 > 42;

const int doubleTruncateDiv = 84.2 ~/ 2;
const int doubleTruncateDivZero = 84.2 ~/ 0;
const int doubleTruncateDivNull = 84.2 ~/ null;
const double doubleNan = 0/0;
const int doubleTruncateDivNaN = 84.2 ~/ doubleNan;

main() {

}