0e98c58190
Previously, trying to access a static member of a class using '?.' was
not allowed. But the spec was changed in
b11670f899 so that
'ClassName?.staticMember' is now equivalent to
'ClassName.staticMember'.
This CL updates analyzer to follow the spec, and updates the tests in
"tests/language" accordingly. VM and dart2js still need fixing
(see #23794 and #23795).
Fixes #23464.
R=scheglov@google.com
Review URL: https://codereview.chromium.org//1255293005 .
40 lines
837 B
Dart
40 lines
837 B
Dart
// Copyright (c) 2015, 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.
|
|
|
|
// Library used by conditional_property_assignment_test.dart,
|
|
// conditional_property_access_test.dart, and
|
|
// conditional_method_invocation_test.dart, all of which import it using the
|
|
// prefix "h.".
|
|
|
|
library lib;
|
|
|
|
var topLevelVar;
|
|
|
|
void topLevelFunction() {}
|
|
|
|
class C {
|
|
static int staticInt;
|
|
static staticF(callback()) => callback();
|
|
static int staticG(int callback()) => callback();
|
|
}
|
|
|
|
C nullC() => null;
|
|
|
|
class D {
|
|
static E staticE;
|
|
}
|
|
|
|
class E {
|
|
G operator+(int i) => new I();
|
|
G operator-(int i) => new I();
|
|
}
|
|
|
|
class F {}
|
|
|
|
class G extends E implements F {}
|
|
|
|
class H {}
|
|
|
|
class I extends G implements H {}
|