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

Side by Side Diff: pkg/analyzer/lib/src/summary/idl.dart

Issue 2028713003: Fix AST-based type inference with explicit type parameters for method calls. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 6 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
« no previous file with comments | « pkg/analyzer/lib/src/summary/format.fbs ('k') | pkg/analyzer/lib/src/summary/link.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 /** 5 /**
6 * This file is an "idl" style description of the summary format. It 6 * This file is an "idl" style description of the summary format. It
7 * contains abstract classes which declare the interface for reading data from 7 * contains abstract classes which declare the interface for reading data from
8 * summaries. It is parsed and transformed into code that implements the 8 * summaries. It is parsed and transformed into code that implements the
9 * summary format. 9 * summary format.
10 * 10 *
(...skipping 1383 matching lines...) Expand 10 before | Expand all | Expand 10 after
1394 extractIndex, 1394 extractIndex,
1395 1395
1396 /** 1396 /**
1397 * Pop the top `n` values from the stack (where `n` is obtained from 1397 * Pop the top `n` values from the stack (where `n` is obtained from
1398 * [UnlinkedConst.ints]) into a list (filled from the end) and take the next 1398 * [UnlinkedConst.ints]) into a list (filled from the end) and take the next
1399 * `n` values from [UnlinkedConst.strings] and use the lists of names and 1399 * `n` values from [UnlinkedConst.strings] and use the lists of names and
1400 * values to create named arguments. Then pop the top `m` values from the 1400 * values to create named arguments. Then pop the top `m` values from the
1401 * stack (where `m` is obtained from [UnlinkedConst.ints]) into a list (filled 1401 * stack (where `m` is obtained from [UnlinkedConst.ints]) into a list (filled
1402 * from the end) and use them as positional arguments. Use the lists of 1402 * from the end) and use them as positional arguments. Use the lists of
1403 * positional and names arguments to invoke a method (or a function) with 1403 * positional and names arguments to invoke a method (or a function) with
1404 * the reference from [UnlinkedConst.references]. Push the result of 1404 * the reference from [UnlinkedConst.references]. If `l` is nonzero (where
scheglov 2016/05/31 20:26:01 Consider using a different letter, maybe 'k', beca
Paul Berry 2016/05/31 22:23:39 Done.
1405 * invocation value into the stack. 1405 * `l` is obtained from [UnlinkedConst.ints]), obtain `l` type arguments from
1406 * [UnlinkedConst.references] and use them as generic type arguments for the
1407 * aforementioned method or function. Push the result of the invocation onto
1408 * the stack.
1406 * 1409 *
1407 * In general `a.b` cannot not be distinguished between: `a` is a prefix and 1410 * In general `a.b` cannot not be distinguished between: `a` is a prefix and
1408 * `b` is a top-level function; or `a` is an object and `b` is the name of a 1411 * `b` is a top-level function; or `a` is an object and `b` is the name of a
1409 * method. This operation should be used for a sequence of identifiers 1412 * method. This operation should be used for a sequence of identifiers
1410 * `a.b.b.c.d.e` ending with an invokable result. 1413 * `a.b.b.c.d.e` ending with an invokable result.
1411 */ 1414 */
1412 invokeMethodRef, 1415 invokeMethodRef,
1413 1416
1414 /** 1417 /**
1415 * Pop the top `n` values from the stack (where `n` is obtained from 1418 * Pop the top `n` values from the stack (where `n` is obtained from
1416 * [UnlinkedConst.ints]) into a list (filled from the end) and take the next 1419 * [UnlinkedConst.ints]) into a list (filled from the end) and take the next
1417 * `n` values from [UnlinkedConst.strings] and use the lists of names and 1420 * `n` values from [UnlinkedConst.strings] and use the lists of names and
1418 * values to create named arguments. Then pop the top `m` values from the 1421 * values to create named arguments. Then pop the top `m` values from the
1419 * stack (where `m` is obtained from [UnlinkedConst.ints]) into a list (filled 1422 * stack (where `m` is obtained from [UnlinkedConst.ints]) into a list (filled
1420 * from the end) and use them as positional arguments. Use the lists of 1423 * from the end) and use them as positional arguments. Use the lists of
1421 * positional and names arguments to invoke the method with the name from 1424 * positional and names arguments to invoke the method with the name from
1422 * [UnlinkedConst.strings] of the target popped from the stack, and push the 1425 * [UnlinkedConst.strings] of the target popped from the stack. If `l` is
1423 * resulting value into the stack. 1426 * nonzero (where `l` is obtained from [UnlinkedConst.ints]), obtain `l` type
1427 * arguments from [UnlinkedConst.references] and use them as generic type
1428 * arguments for the aforementioned method. Push the result of the
1429 * invocation onto the stack.
1424 * 1430 *
1425 * This operation should be used for invocation of a method invocation 1431 * This operation should be used for invocation of a method invocation
1426 * where `target` is know to be an object instance. 1432 * where `target` is known to be an object instance.
1427 */ 1433 */
1428 invokeMethod, 1434 invokeMethod,
1429 1435
1430 /** 1436 /**
1431 * Begin a new cascade section. Duplicate the top value of the stack. 1437 * Begin a new cascade section. Duplicate the top value of the stack.
1432 */ 1438 */
1433 cascadeSectionBegin, 1439 cascadeSectionBegin,
1434 1440
1435 /** 1441 /**
1436 * End a new cascade section. Pop the top value from the stack and throw it 1442 * End a new cascade section. Pop the top value from the stack and throw it
(...skipping 1269 matching lines...) Expand 10 before | Expand all | Expand 10 after
2706 */ 2712 */
2707 @Id(11) 2713 @Id(11)
2708 int get visibleLength; 2714 int get visibleLength;
2709 2715
2710 /** 2716 /**
2711 * If a local variable, the beginning of the visible range; zero otherwise. 2717 * If a local variable, the beginning of the visible range; zero otherwise.
2712 */ 2718 */
2713 @Id(12) 2719 @Id(12)
2714 int get visibleOffset; 2720 int get visibleOffset;
2715 } 2721 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/summary/format.fbs ('k') | pkg/analyzer/lib/src/summary/link.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698