-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Change-Id: Iea9d8d27e6fdefa6f47471a459cdb4363aab65e1 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98011 Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Sigmund Cherem <sigmund@google.com>
- Loading branch information
1 parent
b978fdd
commit 05f3b12
Showing
7 changed files
with
311 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,211 @@ | ||
// 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; | ||
|
||
// 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; | ||
|
||
// 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(); | ||
} |
Submodule googletest
added at
f854f1