87 lines
3.7 KiB
Text
87 lines
3.7 KiB
Text
|
==== tests/cases/conformance/expressions/unaryOperators/decrementOperator/decrementOperatorWithNumberTypeInvalidOperations.ts (20 errors) ====
|
||
|
// -- operator on number type
|
||
|
var NUMBER: number;
|
||
|
var NUMBER1: number[] = [1, 2];
|
||
|
|
||
|
function foo(): number { return 1; }
|
||
|
|
||
|
class A {
|
||
|
public a: number;
|
||
|
static foo() { return 1; }
|
||
|
}
|
||
|
module M {
|
||
|
export var n: number;
|
||
|
}
|
||
|
|
||
|
var objA = new A();
|
||
|
|
||
|
//number type var
|
||
|
var ResultIsNumber1 = --NUMBER1;
|
||
|
~~~~~~~
|
||
|
!!! An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||
|
var ResultIsNumber2 = NUMBER1--;
|
||
|
~~~~~~~
|
||
|
!!! An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||
|
|
||
|
// number type literal
|
||
|
var ResultIsNumber3 = --1;
|
||
|
~
|
||
|
!!! The operand of an increment or decrement operator must be a variable, property or indexer.
|
||
|
var ResultIsNumber4 = --{ x: 1, y: 2};
|
||
|
~~~~~~~~~~~~~
|
||
|
!!! An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||
|
var ResultIsNumber5 = --{ x: 1, y: (n: number) => { return n; } };
|
||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
!!! An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||
|
|
||
|
var ResultIsNumber6 = 1--;
|
||
|
~
|
||
|
!!! The operand of an increment or decrement operator must be a variable, property or indexer.
|
||
|
var ResultIsNumber7 = { x: 1, y: 2 }--;
|
||
|
~~~~~~~~~~~~~~
|
||
|
!!! An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||
|
var ResultIsNumber8 = { x: 1, y: (n: number) => { return n; } }--;
|
||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
!!! An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||
|
|
||
|
// number type expressions
|
||
|
var ResultIsNumber9 = --foo();
|
||
|
~~~~~
|
||
|
!!! The operand of an increment or decrement operator must be a variable, property or indexer.
|
||
|
var ResultIsNumber10 = --A.foo();
|
||
|
~~~~~~~
|
||
|
!!! The operand of an increment or decrement operator must be a variable, property or indexer.
|
||
|
var ResultIsNumber11 = --(NUMBER + NUMBER);
|
||
|
~~~~~~~~~~~~~~~~~
|
||
|
!!! The operand of an increment or decrement operator must be a variable, property or indexer.
|
||
|
|
||
|
var ResultIsNumber12 = foo()--;
|
||
|
~~~~~
|
||
|
!!! The operand of an increment or decrement operator must be a variable, property or indexer.
|
||
|
var ResultIsNumber13 = A.foo()--;
|
||
|
~~~~~~~
|
||
|
!!! The operand of an increment or decrement operator must be a variable, property or indexer.
|
||
|
var ResultIsNumber14 = (NUMBER + NUMBER)--;
|
||
|
~~~~~~~~~~~~~~~~~
|
||
|
!!! The operand of an increment or decrement operator must be a variable, property or indexer.
|
||
|
|
||
|
// miss assignment operator
|
||
|
--1;
|
||
|
~
|
||
|
!!! The operand of an increment or decrement operator must be a variable, property or indexer.
|
||
|
--NUMBER1;
|
||
|
~~~~~~~
|
||
|
!!! An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||
|
--foo();
|
||
|
~~~~~
|
||
|
!!! The operand of an increment or decrement operator must be a variable, property or indexer.
|
||
|
|
||
|
1--;
|
||
|
~
|
||
|
!!! The operand of an increment or decrement operator must be a variable, property or indexer.
|
||
|
NUMBER1--;
|
||
|
~~~~~~~
|
||
|
!!! An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||
|
foo()--;
|
||
|
~~~~~
|
||
|
!!! The operand of an increment or decrement operator must be a variable, property or indexer.
|