blob: dbb2c62c70fabf23b122260dd98935c090b0dfe0 [file] [log] [blame]
/*
* Copyright (c) 2011, 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.
*/
/**
* @assertion An expression is a fragment of Dart code that can be evaluated
* at run time to yield a value, which is always an object.
* . . .
* expression:
* assignableExpression assignmentOperator expression |
* conditionalExpression cascadeSection* |
* throwExpression
* ;
*
* expressionWithoutCascade:
* assignableExpression assignmentOperator expressionWithoutCascade |
* conditionalExpression |
* throwExpressionWithoutCascade
* ;
*
* expressionList:
* expression (`, ' expression)*
* ;
*
* primary:
* thisExpression |
* super assignableSelector |
* functionExpression |
* literal |
* identifier |
* newExpression |
* new type ‘#’ (‘.’ identifier)? |
* constObjectExpression |
* `(' expression `)'
* ;
* An expression e may always be enclosed in parentheses, but this never has any semantic effect on e.
* @description Checks that a valid expression enclosed in parentheses is also a valid expression and evaluates
* the same way.
* @author hlodvig
* @reviewer iefremov
* @needsreview TODO: extend to cover all expressions.
*/
import "../../Utils/expect.dart";
class S {
var x = 25;
}
class A extends S {
void checkThis() {
Expect.equals(this, (this));
Expect.equals(super.x, (super.x));
}
}
main() {
Expect.isTrue(1 == (1));
Expect.isTrue(1 == ( 1 ));
Expect.isTrue("a" == ("a"));
Expect.isTrue("a${21}" == ("a${21}"));
Expect.isTrue(true == (true));
Expect.isTrue(false == (false));
Expect.isTrue(null == (null));
Expect.isTrue(-1.1 == (-1.1));
Expect.isTrue(([]) is List);
Expect.listEquals([], ([]));
Expect.listEquals([1, 2, "three"], ([1, 2, "three"]));
Expect.isTrue(({}) is Map);
Expect.mapEquals({}, ({}));
Expect.mapEquals({"foo": "f00", "bar": 214}, ({"foo": "f00", "bar": 214}));
Expect.isTrue(() {return 3;}() == (() {return 3;}()));
Expect.isTrue((new A()) is A);
Expect.isTrue((new A()) != null);
A a = new A();
Expect.equals(a, (a));
a.checkThis();
}