mirror of
https://github.com/dart-lang/sdk
synced 2024-09-20 07:31:33 +00:00
dbd48de07d
- Migrate over built_in_identifier_test since it imports a helper library that was migrated. - Fix some status file entries. Also: - Removed some old commented out status entries. - Fix a bug in migration script. R=jcollins@google.com Review-Url: https://codereview.chromium.org/2992903002 .
117 lines
2.6 KiB
Dart
117 lines
2.6 KiB
Dart
// Copyright (c) 2012, 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.
|
|
// Check that we can use pseudo keywords as names in function level code.
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
class PseudoKWTest {
|
|
static testMain() {
|
|
// This is a list of built-in identifiers from the Dart spec.
|
|
// It sanity checks that these pseudo-keywords are legal identifiers.
|
|
|
|
var abstract = 0; //# 01: ok
|
|
var as = 0;
|
|
var dynamic = 0;
|
|
var export = 0;
|
|
var external = 0; //# 01: ok
|
|
var factory = 0;
|
|
var get = 0;
|
|
var implements = 0;
|
|
var import = 0;
|
|
var library = 0;
|
|
var operator = 0;
|
|
var part = 0;
|
|
var set = 0;
|
|
var static = 0; //# 01: ok
|
|
var typedef = 0;
|
|
|
|
// "native" is a per-implementation extension that is not a part of the
|
|
// Dart language. While it is not an official built-in identifier, it
|
|
// is useful to ensure that it remains a legal identifier.
|
|
var native = 0;
|
|
|
|
// The code below adds a few additional variants of usage without any
|
|
// attempt at complete coverage.
|
|
{
|
|
void factory(set) {
|
|
return; //# 01: ok
|
|
}
|
|
}
|
|
|
|
get:
|
|
while (import > 0) {
|
|
break get;
|
|
}
|
|
|
|
return
|
|
static + //# 01: ok
|
|
library * operator;
|
|
}
|
|
}
|
|
|
|
typedef(x) => "typedef $x"; //# 01: ok
|
|
|
|
static(abstract) { //# 01: ok
|
|
return abstract == true; //# 01: ok
|
|
} //# 01: ok
|
|
|
|
class A {
|
|
var typedef = 0;
|
|
final operator = "smooth";
|
|
|
|
set(x) {
|
|
typedef = x;
|
|
}
|
|
|
|
get() => typedef - 5;
|
|
|
|
static static() { //# 01: ok
|
|
return 1; //# 01: ok
|
|
} //# 01: ok
|
|
static check() {
|
|
var o = new A();
|
|
o.set(55);
|
|
Expect.equals(50, o.get());
|
|
static(); //# 01: ok
|
|
}
|
|
}
|
|
|
|
class B {
|
|
var set = 100;
|
|
get get => set;
|
|
set get(get) => set = 2 * get.get;
|
|
|
|
static() { //# 01: ok
|
|
var set = new B(); //# 01: ok
|
|
set.get = set; //# 01: ok
|
|
Expect.equals(200, set.get); //# 01: ok
|
|
} //# 01: ok
|
|
int operator() {
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
class C {
|
|
static int operator = (5);
|
|
static var get;
|
|
static get set => 111;
|
|
static set set(set) {}
|
|
}
|
|
|
|
main() {
|
|
PseudoKWTest.testMain();
|
|
A.check();
|
|
new B().static(); //# 01: ok
|
|
Expect.equals(1, new B().operator());
|
|
Expect.equals(1, A.static()); //# 01: ok
|
|
typedef("T"); //# 01: ok
|
|
Expect.equals("typedef T", typedef("T")); //# 01: ok
|
|
static("true"); //# 01: ok
|
|
Expect.equals(false, static("true")); //# 01: ok
|
|
Expect.equals(5, C.operator);
|
|
Expect.equals(null, C.get);
|
|
C.set = 0;
|
|
Expect.equals(111, C.set);
|
|
}
|