Index: sdk/lib/core/annotations.dart |
diff --git a/sdk/lib/core/annotations.dart b/sdk/lib/core/annotations.dart |
index 7bdc5f559cb550b791d742dfa364c71581b063a8..e2ca508872ecab5a49dda08645d4ed650402e3dd 100644 |
--- a/sdk/lib/core/annotations.dart |
+++ b/sdk/lib/core/annotations.dart |
@@ -5,12 +5,12 @@ |
part of dart.core; |
/** |
- * The annotation "@Deprecated('expires when')" marks a feature as deprecated. |
+ * The annotation `@Deprecated('expires when')` marks a feature as deprecated. |
* |
- * The annotation "@deprecated" is a shorthand for deprecating until |
+ * The annotation `@deprecated` is a shorthand for deprecating until |
* to an unspecified "next release". |
* |
- * The intent of the "@Deprecated" annotation is to inform users of a feature |
+ * The intent of the `@Deprecated` annotation is to inform users of a feature |
* that they should change their code, even if it is currently still working |
* correctly. |
* |
@@ -23,7 +23,7 @@ part of dart.core; |
* A deprecated feature should document how the same effect can be achieved, |
* so the programmer knows how to rewrite the code. |
* |
- * The "@Deprecated" annotation applies to libraries, top-level declarations |
+ * The `@Deprecated` annotation applies to libraries, top-level declarations |
* (variables, getters, setters, functions, classes and typedefs), |
* class-level declarations (variables, getters, setters, methods, operators or |
* constructors, whether static or not), named optional arguments and |
@@ -82,7 +82,7 @@ class _Override { |
const deprecated = const Deprecated("next release"); |
/* |
- * The annotation "@override" marks an instance member as overriding a |
+ * The annotation `@override` marks an instance member as overriding a |
* superclass member with the same name. |
* |
* The annotation applies to instance methods, getters and setters, and to |
@@ -92,13 +92,34 @@ const deprecated = const Deprecated("next release"); |
* A tool may report if no declaration of an annotated member is inherited by |
* the class from either a superclass or an interface. |
* |
- * The intent of the "override" notation is to catch situations where a |
+ * The intent of the `@override` notation is to catch situations where a |
* superclass renames a member, and an independent subclass which used to |
* override the member, could silently continue working using the |
* superclass implementation. |
* |
- * The "@override" annotation is intentionally not used in the core libraries. |
+ * The `@override` annotation is intentionally not used in the core libraries. |
* It is intended for the editor, or similar tools, to support user written |
* code. |
*/ |
const override = const _Override(); |
+ |
+class _Proxy { |
+ const _Proxy(); |
+} |
+ |
+/** |
+ * The annotation `@proxy` marks a class as implementing members through |
+ * `noSuchMethod`. |
+ * |
+ * The annotation applies to concrete classes. It is not inherited by |
+ * subclasses. |
+ * |
+ * The marked class is considerer to implement any method, getter or setter |
+ * declared by its interface, even if there is no implementation in the |
+ * class. It will not generate the warning that is otherwise speified for an |
karlklose
2013/10/29 10:40:06
'speified' -> 'specified'.
|
+ * unimplemented method in a non-abstract class. |
+ * |
+ * The intent of the `@proxy` notation is to avoid irrelevant warnings when |
+ * a class implements its interface through `noSuchMethod`. |
+ */ |
+const proxy = const _Proxy(); |