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

Unified Diff: pkg/analyzer/lib/src/summary/idl.dart

Issue 2779993002: Store literal values and invocations arguments only for constants and untyped literals. (Closed)
Patch Set: Update IDL documentation. Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/lib/src/summary/idl.dart
diff --git a/pkg/analyzer/lib/src/summary/idl.dart b/pkg/analyzer/lib/src/summary/idl.dart
index 170cccdfd34ca1a69efd63634199689e46206b96..3119c643db106547faa8de56b7771d0a2f4e15cf 100644
--- a/pkg/analyzer/lib/src/summary/idl.dart
+++ b/pkg/analyzer/lib/src/summary/idl.dart
@@ -2197,6 +2197,11 @@ enum UnlinkedExprOperation {
* from [UnlinkedExpr.references], and push the resulting value back onto the
* stack.
*
+ * Arguments are skipped, and `0` are specified as the numbers of arguments
+ * on the stack, if the expression is not a constant. We store expression of
+ * variable initializers to perform top-level inference, and arguments are
+ * never used to infer types.
+ *
* Note that for an invocation of the form `const a.b(...)` (where no type
* arguments are specified), it is impossible to tell from the unresolved AST
* alone whether `a` is a class name and `b` is a constructor name, or `a` is
@@ -2440,6 +2445,11 @@ enum UnlinkedExprOperation {
* aforementioned method or function. Push the result of the invocation onto
* the stack.
*
+ * Arguments are skipped, and `0` are specified as the numbers of arguments
+ * on the stack, if the expression is not a constant. We store expression of
+ * variable initializers to perform top-level inference, and arguments are
+ * never used to infer types.
+ *
* In general `a.b` cannot not be distinguished between: `a` is a prefix and
* `b` is a top-level function; or `a` is an object and `b` is the name of a
* method. This operation should be used for a sequence of identifiers
@@ -2461,6 +2471,11 @@ enum UnlinkedExprOperation {
* arguments for the aforementioned method. Push the result of the
* invocation onto the stack.
*
+ * Arguments are skipped, and `0` are specified as the numbers of arguments
+ * on the stack, if the expression is not a constant. We store expression of
+ * variable initializers to perform top-level inference, and arguments are
+ * never used to infer types.
+ *
* This operation should be used for invocation of a method invocation
* where `target` is known to be an object instance.
*/

Powered by Google App Engine
This is Rietveld 408576698