Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(521)

Side by Side Diff: tests/compiler/dart2js_native/native_field_rename_2_frog_test.dart

Issue 383413003: Add @Native(...) annotation for native class names. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comments. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 // A native method prevents other members from having that name, including 5 // A native method prevents other members from having that name, including
6 // fields. However, native fields keep their name. The implication: a getter 6 // fields. However, native fields keep their name. The implication: a getter
7 // for the field must be based on the field's name, not the field's jsname. 7 // for the field must be based on the field's name, not the field's jsname.
8 8
9 import "package:expect/expect.dart"; 9 import "package:expect/expect.dart";
10 import 'dart:_js_helper' show JSName; 10 import 'dart:_js_helper' show Native, JSName;
11 11
12 abstract class I { 12 abstract class I {
13 int key; 13 int key;
14 } 14 }
15 15
16 class A implements I native "A" { 16 @Native("A")
17 class A implements I {
17 int key; // jsname is 'key' 18 int key; // jsname is 'key'
18 int getKey() => key; 19 int getKey() => key;
19 } 20 }
20 21
21 class B implements I { 22 class B implements I {
22 int key; // jsname is not 'key' 23 int key; // jsname is not 'key'
23 B([this.key = 222]); 24 B([this.key = 222]);
24 int getKey() => key; 25 int getKey() => key;
25 } 26 }
26 27
27 class X native "X" { 28 @Native("X")
29 class X {
28 @JSName('key') 30 @JSName('key')
29 int native_key_method() native; 31 int native_key_method() native;
30 // This should cause B.key to be renamed, but not A.key. 32 // This should cause B.key to be renamed, but not A.key.
31 @JSName('key') 33 @JSName('key')
32 int key() native; 34 int key() native;
33 } 35 }
34 36
35 A makeA() native; 37 A makeA() native;
36 X makeX() native; 38 X makeX() native;
37 39
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 Expect.equals(222, b.getKey()); 91 Expect.equals(222, b.getKey());
90 } 92 }
91 93
92 main() { 94 main() {
93 setup(); 95 setup();
94 96
95 testTyped(); 97 testTyped();
96 testPartial(); 98 testPartial();
97 testDynamic(); 99 testDynamic();
98 } 100 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698