mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 04:57:43 +00:00
912005267d
Change-Id: I46be49b2effec3e38a3dc44cd45cfe736f77fa78 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/182680 Commit-Queue: Sigmund Cherem <sigmund@google.com> Reviewed-by: Joshua Litt <joshualitt@google.com> Reviewed-by: Nicholas Shahan <nshahan@google.com> Reviewed-by: Stephen Adams <sra@google.com>
212 lines
6.9 KiB
Dart
212 lines
6.9 KiB
Dart
// Copyright (c) 2018, 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.
|
|
|
|
// Test for positive and negative uses of named declarations. This file is
|
|
// also used in tests/compiler/dart2js/model/native_test.dart.
|
|
|
|
import 'dart:_js_helper';
|
|
|
|
var topLevelField;
|
|
|
|
get topLevelGetter => null;
|
|
|
|
set topLevelSetter(_) {}
|
|
|
|
topLevelFunction() {}
|
|
|
|
// NON_NATIVE_EXTERNAL //# 01: compile-time error
|
|
external get externalTopLevelGetter; //# 01: continued
|
|
|
|
// NON_NATIVE_EXTERNAL //# 02: compile-time error
|
|
external set externalTopLevelSetter(_); //# 02: continued
|
|
|
|
// NON_NATIVE_EXTERNAL //# 03: compile-time error
|
|
external externalTopLevelFunction(); //# 03: continued
|
|
|
|
get nativeTopLevelGetter native;
|
|
|
|
set nativeTopLevelSetter(_) native;
|
|
|
|
nativeTopLevelFunction() native;
|
|
|
|
class Class {
|
|
Class.generative();
|
|
factory Class.fact() => null as dynamic;
|
|
|
|
// NON_NATIVE_EXTERNAL //# 08: compile-time error
|
|
external Class.externalGenerative(); //# 08: continued
|
|
|
|
// NON_NATIVE_EXTERNAL //# 09: compile-time error
|
|
external factory Class.externalFact(); //# 09: continued
|
|
|
|
// NATIVE_NON_INSTANCE_IN_NON_NATIVE_CLASS //# 10: compile-time error
|
|
Class.nativeGenerative() native; //# 10: continued
|
|
|
|
// NATIVE_NON_INSTANCE_IN_NON_NATIVE_CLASS //# 11: compile-time error
|
|
factory Class.nativeFact() native; //# 11: continued
|
|
|
|
var instanceField;
|
|
get instanceGetter => null;
|
|
set instanceSetter(_) {}
|
|
instanceMethod() {}
|
|
|
|
static var staticField;
|
|
static get staticGetter => null;
|
|
static set staticSetter(_) {}
|
|
static staticMethod() {}
|
|
|
|
// NON_NATIVE_EXTERNAL //# 22: compile-time error
|
|
external get externalInstanceGetter; //# 22: continued
|
|
|
|
// NON_NATIVE_EXTERNAL //# 23: compile-time error
|
|
external set externalInstanceSetter(_); //# 23: continued
|
|
|
|
// NON_NATIVE_EXTERNAL //# 24: compile-time error
|
|
external externalInstanceMethod(); //# 24: continued
|
|
|
|
// NON_NATIVE_EXTERNAL //# 25: compile-time error
|
|
external static get externalStaticGetter; //# 25: continued
|
|
|
|
// NON_NATIVE_EXTERNAL //# 26: compile-time error
|
|
external static set externalStaticSetter(_); //# 26: continued
|
|
|
|
// NON_NATIVE_EXTERNAL //# 27: compile-time error
|
|
external static externalStaticMethod(); //# 27: continued
|
|
|
|
get nativeInstanceGetter native;
|
|
set nativeInstanceSetter(_) native;
|
|
nativeInstanceMethod() native;
|
|
|
|
// NATIVE_NON_INSTANCE_IN_NON_NATIVE_CLASS //# 28: compile-time error
|
|
static get nativeStaticGetter native; //# 28: continued
|
|
|
|
// NATIVE_NON_INSTANCE_IN_NON_NATIVE_CLASS //# 29: compile-time error
|
|
static set nativeStaticSetter(_) native; //# 29: continued
|
|
|
|
// NATIVE_NON_INSTANCE_IN_NON_NATIVE_CLASS //# 30: compile-time error
|
|
static nativeStaticMethod() native; //# 30: continued
|
|
}
|
|
|
|
@Native('d')
|
|
class NativeClass {
|
|
NativeClass.generative();
|
|
|
|
factory NativeClass.fact() => null as dynamic;
|
|
|
|
// NON_NATIVE_EXTERNAL //# 31: compile-time error
|
|
external NativeClass.externalGenerative(); //# 31: continued
|
|
// NON_NATIVE_EXTERNAL //# 32: compile-time error
|
|
external factory NativeClass.externalFact(); //# 32: continued
|
|
|
|
NativeClass.nativeGenerative() native;
|
|
factory NativeClass.nativeFact() native;
|
|
|
|
var instanceField;
|
|
get instanceGetter => null;
|
|
set instanceSetter(_) {}
|
|
instanceMethod() {}
|
|
|
|
static var staticField;
|
|
static get staticGetter => null;
|
|
static set staticSetter(_) {}
|
|
static staticMethod() {}
|
|
|
|
var instanceNamedField;
|
|
|
|
// NON_NATIVE_EXTERNAL //# 36: compile-time error
|
|
external get externalInstanceGetter; //# 36: continued
|
|
|
|
// NON_NATIVE_EXTERNAL //# 37: compile-time error
|
|
external set externalInstanceSetter(_); //# 37: continued
|
|
|
|
// NON_NATIVE_EXTERNAL //# 38: compile-time error
|
|
external externalInstanceMethod(); //# 38: continued
|
|
|
|
// NON_NATIVE_EXTERNAL //# 39: compile-time error
|
|
external static get externalStaticGetter; //# 39: continued
|
|
|
|
// NON_NATIVE_EXTERNAL //# 40: compile-time error
|
|
external static set externalStaticSetter(_); //# 40: continued
|
|
|
|
// NON_NATIVE_EXTERNAL //# 41: compile-time error
|
|
external static externalStaticMethod(); //# 41: continued
|
|
|
|
get nativeInstanceGetter native;
|
|
set nativeInstanceSetter(_) native;
|
|
nativeInstanceMethod() native;
|
|
|
|
static get nativeStaticGetter native;
|
|
static set nativeStaticSetter(_) native;
|
|
static nativeStaticMethod() native;
|
|
}
|
|
|
|
main() {
|
|
if (true) return;
|
|
|
|
topLevelField;
|
|
topLevelGetter;
|
|
topLevelSetter = null;
|
|
topLevelFunction();
|
|
externalTopLevelGetter; //# 01: continued
|
|
externalTopLevelSetter = null; //# 02: continued
|
|
externalTopLevelFunction(); //# 03: continued
|
|
nativeTopLevelGetter;
|
|
nativeTopLevelSetter = null;
|
|
nativeTopLevelFunction();
|
|
|
|
var c1 = new Class.generative();
|
|
new Class.fact();
|
|
new Class.externalGenerative(); //# 08: continued
|
|
new Class.externalFact(); //# 09: continued
|
|
new Class.nativeGenerative(); //# 10: continued
|
|
new Class.nativeFact(); //# 11: continued
|
|
c1.instanceField;
|
|
c1.instanceGetter;
|
|
c1.instanceSetter = null;
|
|
c1.instanceMethod();
|
|
Class.staticField;
|
|
Class.staticGetter;
|
|
Class.staticSetter = null;
|
|
Class.staticMethod();
|
|
c1.externalInstanceGetter; //# 22: continued
|
|
c1.externalInstanceSetter = null; //# 23: continued
|
|
c1.externalInstanceMethod(); //# 24: continued
|
|
Class.externalStaticGetter; //# 25: continued
|
|
Class.externalStaticSetter = null; //# 26: continued
|
|
Class.externalStaticMethod(); //# 27: continued
|
|
c1.nativeInstanceGetter;
|
|
c1.nativeInstanceSetter = null;
|
|
c1.nativeInstanceMethod();
|
|
Class.nativeStaticGetter; //# 28: continued
|
|
Class.nativeStaticSetter = null; //# 29: continued
|
|
Class.nativeStaticMethod(); //# 30: continued
|
|
|
|
var c2 = new NativeClass.generative();
|
|
new NativeClass.fact();
|
|
new NativeClass.externalGenerative(); //# 31: continued
|
|
new NativeClass.externalFact(); //# 32: continued
|
|
new NativeClass.nativeGenerative();
|
|
new NativeClass.nativeFact();
|
|
c2.instanceField;
|
|
c2.instanceGetter;
|
|
c2.instanceSetter = null;
|
|
c2.instanceMethod();
|
|
NativeClass.staticField;
|
|
NativeClass.staticGetter;
|
|
NativeClass.staticSetter = null;
|
|
NativeClass.staticMethod();
|
|
c2.externalInstanceGetter; //# 36: continued
|
|
c2.externalInstanceSetter = null; //# 37: continued
|
|
c2.externalInstanceMethod(); //# 38: continued
|
|
NativeClass.externalStaticGetter; //# 39: continued
|
|
NativeClass.externalStaticSetter = null; //# 40: continued
|
|
NativeClass.externalStaticMethod(); //# 41: continued
|
|
c2.nativeInstanceGetter;
|
|
c2.nativeInstanceSetter = null;
|
|
c2.nativeInstanceMethod();
|
|
NativeClass.nativeStaticGetter;
|
|
NativeClass.nativeStaticSetter = null;
|
|
NativeClass.nativeStaticMethod();
|
|
}
|