1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
abstract MyInt(Int) from Int to Int {
@:op(A += B)
public inline function addEq(x:Int):MyInt {
return this += x;
}
@:op(A++)
public inline function increment():MyInt {
return this++;
}
}
class MyClass {
final field:MyInt = 1;
function func():Void {
final local:MyInt = 1;
// --- overriden operators ---
field++; // Error: The field or identifier field is not accessible for writing
local++;
field += 1;
local += 1; // Error: Cannot assign to final
// --- raw operators ---
field--; // Error: The field or identifier field is not accessible for writing
local--; // Error: Cannot assign to final
field -= 1; // Error: Cannot access field or identifier field for writing
local -= 1; // Error: Cannot assign to final
// --- method calls ---
field.addEq(1);
local.addEq(1);
field.increment();
local.increment();
}
}
function main() {
}
|