blob: 7cc448c00b908ca14982a7b4f2905f3c4e70f270 [file] [log] [blame]
// Copyright (c) 2019, 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 Like for a class or mixin member declaration, the names of the
* extension members, both static and instance, are in the lexical scope of the
* extension member body. That is why MySmart above can invoke the static
* smartHelper without prefixing it by the extension name. In the same way,
* instance member declarations (the extension members) are in the lexical scope
*
* @description Check that extension static member cannot access referred class
* static member without prefix
* @author sgrekhov@unipro.ru
*/
class C {
static String cStaticMember = "Lily was here";
}
extension ExtendedC on C {
static String st = cStaticMember;
// ^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.UNQUALIFIED_REFERENCE_TO_STATIC_MEMBER_OF_EXTENDED_TYPE
// [cfe] Getter not found: 'cStaticMember'.
void test() {
cStaticMember;
// ^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.UNQUALIFIED_REFERENCE_TO_STATIC_MEMBER_OF_EXTENDED_TYPE
// [cfe] The getter 'cStaticMember' isn't defined for the class 'C'.
}
}
main() {
C c = new C();
c.test();
}