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

Side by Side Diff: pkg/compiler/lib/src/resolution/semantic_visitor.dart

Issue 1126173002: Refactor handling of compounds. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Refactor Created 5 years, 7 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) 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 library dart2js.semantics_visitor; 5 library dart2js.semantics_visitor;
6 6
7 import '../constants/expressions.dart'; 7 import '../constants/expressions.dart';
8 import '../dart2jslib.dart' show invariant, MessageKind; 8 import '../dart2jslib.dart' show invariant, MessageKind;
9 import '../dart_types.dart'; 9 import '../dart_types.dart';
10 import '../elements/elements.dart'; 10 import '../elements/elements.dart';
(...skipping 1674 matching lines...) Expand 10 before | Expand all | Expand 10 after
1685 AssignmentOperator operator, 1685 AssignmentOperator operator,
1686 Node rhs, 1686 Node rhs,
1687 A arg); 1687 A arg);
1688 1688
1689 /// Compound assignment expression of [rhs] with [operator] on a final 1689 /// Compound assignment expression of [rhs] with [operator] on a final
1690 /// [parameter]. 1690 /// [parameter].
1691 /// 1691 ///
1692 /// For instance: 1692 /// For instance:
1693 /// m(final parameter, rhs) => parameter += rhs; 1693 /// m(final parameter, rhs) => parameter += rhs;
1694 /// 1694 ///
1695 R errorFinalParameterCompound( 1695 R visitFinalParameterCompound(
1696 Send node, 1696 Send node,
1697 ParameterElement parameter, 1697 ParameterElement parameter,
1698 AssignmentOperator operator, 1698 AssignmentOperator operator,
1699 Node rhs, 1699 Node rhs,
1700 A arg); 1700 A arg);
1701 1701
1702 /// Compound assignment expression of [rhs] with [operator] on a local 1702 /// Compound assignment expression of [rhs] with [operator] on a local
1703 /// [variable]. 1703 /// [variable].
1704 /// 1704 ///
1705 /// For instance: 1705 /// For instance:
(...skipping 11 matching lines...) Expand all
1717 1717
1718 /// Compound assignment expression of [rhs] with [operator] on a final local 1718 /// Compound assignment expression of [rhs] with [operator] on a final local
1719 /// [variable]. 1719 /// [variable].
1720 /// 1720 ///
1721 /// For instance: 1721 /// For instance:
1722 /// m(rhs) { 1722 /// m(rhs) {
1723 /// final variable = 0; 1723 /// final variable = 0;
1724 /// variable += rhs; 1724 /// variable += rhs;
1725 /// } 1725 /// }
1726 /// 1726 ///
1727 R errorFinalLocalVariableCompound( 1727 R visitFinalLocalVariableCompound(
1728 Send node, 1728 Send node,
1729 LocalVariableElement variable, 1729 LocalVariableElement variable,
1730 AssignmentOperator operator, 1730 AssignmentOperator operator,
1731 Node rhs, 1731 Node rhs,
1732 A arg); 1732 A arg);
1733 1733
1734 /// Compound assignment expression of [rhs] with [operator] on a local 1734 /// Compound assignment expression of [rhs] with [operator] on a local
1735 /// [function]. 1735 /// [function].
1736 /// 1736 ///
1737 /// For instance: 1737 /// For instance:
1738 /// m(rhs) { 1738 /// m(rhs) {
1739 /// function() {} 1739 /// function() {}
1740 /// function += rhs; 1740 /// function += rhs;
1741 /// } 1741 /// }
1742 /// 1742 ///
1743 R errorLocalFunctionCompound( 1743 R visitLocalFunctionCompound(
1744 Send node, 1744 Send node,
1745 LocalFunctionElement function, 1745 LocalFunctionElement function,
1746 AssignmentOperator operator, 1746 AssignmentOperator operator,
1747 Node rhs, 1747 Node rhs,
1748 A arg); 1748 A arg);
1749 1749
1750 /// Compound assignment expression of [rhs] with [operator] on a static 1750 /// Compound assignment expression of [rhs] with [operator] on a static
1751 /// [field]. 1751 /// [field].
1752 /// 1752 ///
1753 /// For instance: 1753 /// For instance:
(...skipping 11 matching lines...) Expand all
1765 1765
1766 /// Compound assignment expression of [rhs] with [operator] on a final static 1766 /// Compound assignment expression of [rhs] with [operator] on a final static
1767 /// [field]. 1767 /// [field].
1768 /// 1768 ///
1769 /// For instance: 1769 /// For instance:
1770 /// class C { 1770 /// class C {
1771 /// static final field = 0; 1771 /// static final field = 0;
1772 /// m(rhs) => field += rhs; 1772 /// m(rhs) => field += rhs;
1773 /// } 1773 /// }
1774 /// 1774 ///
1775 R errorFinalStaticFieldCompound( 1775 R visitStaticFinalFieldCompound(
1776 Send node, 1776 Send node,
1777 FieldElement field, 1777 FieldElement field,
1778 AssignmentOperator operator, 1778 AssignmentOperator operator,
1779 Node rhs, 1779 Node rhs,
1780 A arg); 1780 A arg);
1781 1781
1782 /// Compound assignment expression of [rhs] with [operator] reading from a 1782 /// Compound assignment expression of [rhs] with [operator] reading from a
1783 /// static [getter] and writing to a static [setter]. 1783 /// static [getter] and writing to a static [setter].
1784 /// 1784 ///
1785 /// For instance: 1785 /// For instance:
(...skipping 17 matching lines...) Expand all
1803 /// 1803 ///
1804 /// For instance: 1804 /// For instance:
1805 /// class C { 1805 /// class C {
1806 /// static o() {} 1806 /// static o() {}
1807 /// static set o(_) {} 1807 /// static set o(_) {}
1808 /// m(rhs) => o += rhs; 1808 /// m(rhs) => o += rhs;
1809 /// } 1809 /// }
1810 /// 1810 ///
1811 R visitStaticMethodSetterCompound( 1811 R visitStaticMethodSetterCompound(
1812 Send node, 1812 Send node,
1813 FunctionElement method, 1813 MethodElement method,
1814 FunctionElement setter, 1814 MethodElement setter,
1815 AssignmentOperator operator, 1815 AssignmentOperator operator,
1816 Node rhs, 1816 Node rhs,
1817 A arg); 1817 A arg);
1818 1818
1819 /// Compound assignment expression of [rhs] with [operator] on a top level 1819 /// Compound assignment expression of [rhs] with [operator] on a top level
1820 /// [field]. 1820 /// [field].
1821 /// 1821 ///
1822 /// For instance: 1822 /// For instance:
1823 /// var field; 1823 /// var field;
1824 /// m(rhs) => field += rhs; 1824 /// m(rhs) => field += rhs;
1825 /// 1825 ///
1826 R visitTopLevelFieldCompound( 1826 R visitTopLevelFieldCompound(
1827 Send node, 1827 Send node,
1828 FieldElement field, 1828 FieldElement field,
1829 AssignmentOperator operator, 1829 AssignmentOperator operator,
1830 Node rhs, 1830 Node rhs,
1831 A arg); 1831 A arg);
1832 1832
1833 /// Compound assignment expression of [rhs] with [operator] on a final top 1833 /// Compound assignment expression of [rhs] with [operator] on a final top
1834 /// level [field]. 1834 /// level [field].
1835 /// 1835 ///
1836 /// For instance: 1836 /// For instance:
1837 /// final field = 0; 1837 /// final field = 0;
1838 /// m(rhs) => field += rhs; 1838 /// m(rhs) => field += rhs;
1839 /// 1839 ///
1840 R errorFinalTopLevelFieldCompound( 1840 R visitTopLevelFinalFieldCompound(
1841 Send node, 1841 Send node,
1842 FieldElement field, 1842 FieldElement field,
1843 AssignmentOperator operator, 1843 AssignmentOperator operator,
1844 Node rhs, 1844 Node rhs,
1845 A arg); 1845 A arg);
1846 1846
1847 /// Compound assignment expression of [rhs] with [operator] reading from a 1847 /// Compound assignment expression of [rhs] with [operator] reading from a
1848 /// top level [getter] and writing to a top level [setter]. 1848 /// top level [getter] and writing to a top level [setter].
1849 /// 1849 ///
1850 /// For instance: 1850 /// For instance:
(...skipping 19 matching lines...) Expand all
1870 /// m(rhs) => o += rhs; 1870 /// m(rhs) => o += rhs;
1871 /// 1871 ///
1872 R visitTopLevelMethodSetterCompound( 1872 R visitTopLevelMethodSetterCompound(
1873 Send node, 1873 Send node,
1874 FunctionElement method, 1874 FunctionElement method,
1875 FunctionElement setter, 1875 FunctionElement setter,
1876 AssignmentOperator operator, 1876 AssignmentOperator operator,
1877 Node rhs, 1877 Node rhs,
1878 A arg); 1878 A arg);
1879 1879
1880 /// Compound assignment expression of [rhs] with [operator] reading from a
1881 /// top level [method], that is, closurizing [method], and writing to an
1882 /// unresolved setter.
1883 ///
1884 /// For instance:
1885 /// o() {}
1886 /// m(rhs) => o += rhs;
1887 ///
1888 R visitTopLevelMethodCompound(
1889 Send node,
1890 FunctionElement method,
1891 AssignmentOperator operator,
1892 Node rhs,
1893 A arg);
1894
1880 /// Compound assignment expression of [rhs] with [operator] on a super 1895 /// Compound assignment expression of [rhs] with [operator] on a super
1881 /// [field]. 1896 /// [field].
1882 /// 1897 ///
1883 /// For instance: 1898 /// For instance:
1884 /// class B { 1899 /// class B {
1885 /// var field; 1900 /// var field;
1886 /// } 1901 /// }
1887 /// class C extends B { 1902 /// class C extends B {
1888 /// m(rhs) => super.field += rhs; 1903 /// m(rhs) => super.field += rhs;
1889 /// } 1904 /// }
1890 /// 1905 ///
1891 R visitSuperFieldCompound( 1906 R visitSuperFieldCompound(
1892 Send node, 1907 Send node,
1893 FieldElement field, 1908 FieldElement field,
1894 AssignmentOperator operator, 1909 AssignmentOperator operator,
1895 Node rhs, 1910 Node rhs,
1896 A arg); 1911 A arg);
1897 1912
1898 /// Compound assignment expression of [rhs] with [operator] on a final super 1913 /// Compound assignment expression of [rhs] with [operator] on a final super
1899 /// [field]. 1914 /// [field].
1900 /// 1915 ///
1901 /// For instance: 1916 /// For instance:
1902 /// class B { 1917 /// class B {
1903 /// final field = 0; 1918 /// final field = 42;
1904 /// } 1919 /// }
1905 /// class C extends B { 1920 /// class C extends B {
1906 /// m(rhs) => super.field += rhs; 1921 /// m(rhs) => super.field += rhs;
1907 /// } 1922 /// }
1908 /// 1923 ///
1909 R errorFinalSuperFieldCompound( 1924 R visitSuperFinalFieldCompound(
1910 Send node, 1925 Send node,
1911 FieldElement field, 1926 FieldElement field,
1912 AssignmentOperator operator, 1927 AssignmentOperator operator,
1913 Node rhs, 1928 Node rhs,
1914 A arg); 1929 A arg);
1915 1930
1931 /// Prefix expression with [operator] on a final super [field].
1932 ///
1933 /// For instance:
1934 /// class B {
1935 /// final field = 42;
1936 /// }
1937 /// class C extends B {
1938 /// m(rhs) => ++super.field;
1939 /// }
1940 ///
1941 R visitSuperFinalFieldPrefix(
1942 Send node,
1943 FieldElement field,
1944 IncDecOperator operator,
1945 A arg);
1946
1947 /// Prefix expression with [operator] on an unresolved super property.
1948 ///
1949 /// For instance:
1950 /// class B {
1951 /// }
1952 /// class C extends B {
1953 /// m(rhs) => ++super.unresolved;
1954 /// }
1955 ///
1956 R visitUnresolvedSuperPrefix(
1957 Send node,
1958 Element element,
1959 IncDecOperator operator,
1960 A arg);
1961
1962 /// Postfix expression with [operator] on an unresolved super property.
1963 ///
1964 /// For instance:
1965 /// class B {
1966 /// }
1967 /// class C extends B {
1968 /// m(rhs) => super.unresolved++;
1969 /// }
1970 ///
1971 R visitUnresolvedSuperPostfix(
1972 Send node,
1973 Element element,
1974 IncDecOperator operator,
1975 A arg);
1976
1977 /// Compound assignment expression of [rhs] with [operator] on an unresolved
1978 /// super property.
1979 ///
1980 /// For instance:
1981 /// class B {
1982 /// }
1983 /// class C extends B {
1984 /// m(rhs) => super.unresolved += rhs;
1985 /// }
1986 ///
1987 R visitUnresolvedSuperCompound(
1988 Send node,
1989 Element element,
1990 AssignmentOperator operator,
1991 Node rhs,
1992 A arg);
1993
1994 /// Postfix expression with [operator] on a final super [field].
1995 ///
1996 /// For instance:
1997 /// class B {
1998 /// final field = 42;
1999 /// }
2000 /// class C extends B {
2001 /// m(rhs) => super.field++;
2002 /// }
2003 ///
2004 R visitSuperFinalFieldPostfix(
2005 Send node,
2006 FieldElement field,
2007 IncDecOperator operator,
2008 A arg);
2009
2010 /// Compound assignment expression of [rhs] with [operator] reading from the
2011 /// super field [readField] and writing to the different super field
2012 /// [writtenField].
2013 ///
2014 /// For instance:
2015 /// class A {
2016 /// var field;
2017 /// }
2018 /// class B extends A {
2019 /// final field;
2020 /// }
2021 /// class C extends B {
2022 /// m() => super.field += rhs;
2023 /// }
2024 ///
2025 R visitSuperFieldFieldCompound(
2026 Send node,
2027 FieldElement readField,
2028 FieldElement writtenField,
2029 AssignmentOperator operator,
2030 Node rhs,
2031 A arg);
2032
1916 /// Compound assignment expression of [rhs] with [operator] reading from a 2033 /// Compound assignment expression of [rhs] with [operator] reading from a
1917 /// super [getter] and writing to a super [setter]. 2034 /// super [getter] and writing to a super [setter].
1918 /// 2035 ///
1919 /// For instance: 2036 /// For instance:
1920 /// class B { 2037 /// class B {
1921 /// get o => 0; 2038 /// get o => 0;
1922 /// set o(_) {} 2039 /// set o(_) {}
1923 /// } 2040 /// }
1924 /// class C extends B { 2041 /// class C extends B {
1925 /// m(rhs) => super.o += rhs; 2042 /// m(rhs) => super.o += rhs;
(...skipping 21 matching lines...) Expand all
1947 /// } 2064 /// }
1948 /// 2065 ///
1949 R visitSuperMethodSetterCompound( 2066 R visitSuperMethodSetterCompound(
1950 Send node, 2067 Send node,
1951 FunctionElement method, 2068 FunctionElement method,
1952 FunctionElement setter, 2069 FunctionElement setter,
1953 AssignmentOperator operator, 2070 AssignmentOperator operator,
1954 Node rhs, 2071 Node rhs,
1955 A arg); 2072 A arg);
1956 2073
1957 /// Compound assignment expression of [rhs] with [operator] reading from a 2074 /// Compound assignment expression of [rhs] with [operator] reading from a
karlklose 2015/05/13 07:25:59 'reading the closurized super [method] and trying
Johnni Winther 2015/05/13 08:48:00 Done.
2075 /// super [method], that is, closurizing [method], and writing to an
2076 /// unresolved super setter.
2077 ///
2078 /// For instance:
2079 /// class B {
2080 /// o() {}
2081 /// }
2082 /// class C extends B {
2083 /// m(rhs) => super.o += rhs;
2084 /// }
2085 ///
2086 R visitSuperMethodCompound(
2087 Send node,
2088 FunctionElement method,
2089 AssignmentOperator operator,
2090 Node rhs,
2091 A arg);
2092
2093 /// Compound assignment expression of [rhs] with [operator] reading from an
2094 /// unresolved super getter and writing to a super [setter].
karlklose 2015/05/13 07:25:59 'an unresolved'/'the non-existing'.
Johnni Winther 2015/05/13 08:47:59 Done.
2095 ///
2096 /// For instance
2097 /// class B {
2098 /// set o(_) {}
2099 /// }
2100 /// class C extends B {
2101 /// m(rhs) => super.o += rhs;
2102 /// }
2103 ///
2104 R visitUnresolvedSuperGetterCompound(
2105 Send node,
2106 Element element,
2107 MethodElement setter,
2108 AssignmentOperator operator,
2109 Node rhs,
2110 A arg);
2111
2112 /// Compound assignment expression of [rhs] with [operator] reading from a
2113 /// super [getter] and writing to an unresolved super setter.
2114 ///
2115 /// For instance
2116 /// class B {
2117 /// get o => 42;
2118 /// }
2119 /// class C extends B {
2120 /// m(rhs) => super.o += rhs;
2121 /// }
2122 ///
2123 R visitUnresolvedSuperSetterCompound(
2124 Send node,
2125 MethodElement getter,
2126 Element element,
2127 AssignmentOperator operator,
2128 Node rhs,
2129 A arg);
2130
2131 /// Compound assignment expression of [rhs] with [operator] reading from a
1958 /// super [field] and writing to a super [setter]. 2132 /// super [field] and writing to a super [setter].
1959 /// 2133 ///
1960 /// For instance: 2134 /// For instance:
1961 /// class A { 2135 /// class A {
1962 /// var o; 2136 /// var o;
1963 /// } 2137 /// }
1964 /// class B extends A { 2138 /// class B extends A {
1965 /// set o(_) {} 2139 /// set o(_) {}
1966 /// } 2140 /// }
1967 /// class C extends B { 2141 /// class C extends B {
(...skipping 30 matching lines...) Expand all
1998 Node rhs, 2172 Node rhs,
1999 A arg); 2173 A arg);
2000 2174
2001 /// Compound assignment expression of [rhs] with [operator] on a type literal 2175 /// Compound assignment expression of [rhs] with [operator] on a type literal
2002 /// for class [element]. 2176 /// for class [element].
2003 /// 2177 ///
2004 /// For instance: 2178 /// For instance:
2005 /// class C {} 2179 /// class C {}
2006 /// m(rhs) => C += rhs; 2180 /// m(rhs) => C += rhs;
2007 /// 2181 ///
2008 R errorClassTypeLiteralCompound( 2182 R visitClassTypeLiteralCompound(
2009 Send node, 2183 Send node,
2010 ConstantExpression constant, 2184 ConstantExpression constant,
2011 AssignmentOperator operator, 2185 AssignmentOperator operator,
2012 Node rhs, 2186 Node rhs,
2013 A arg); 2187 A arg);
2014 2188
2015 /// Compound assignment expression of [rhs] with [operator] on a type literal 2189 /// Compound assignment expression of [rhs] with [operator] on a type literal
2016 /// for typedef [element]. 2190 /// for typedef [element].
2017 /// 2191 ///
2018 /// For instance: 2192 /// For instance:
2019 /// typedef F(); 2193 /// typedef F();
2020 /// m(rhs) => F += rhs; 2194 /// m(rhs) => F += rhs;
2021 /// 2195 ///
2022 R errorTypedefTypeLiteralCompound( 2196 R visitTypedefTypeLiteralCompound(
2023 Send node, 2197 Send node,
2024 ConstantExpression constant, 2198 ConstantExpression constant,
2025 AssignmentOperator operator, 2199 AssignmentOperator operator,
2026 Node rhs, 2200 Node rhs,
2027 A arg); 2201 A arg);
2028 2202
2029 /// Compound assignment expression of [rhs] with [operator] on a type literal 2203 /// Compound assignment expression of [rhs] with [operator] on a type literal
2030 /// for type variable [element]. 2204 /// for type variable [element].
2031 /// 2205 ///
2032 /// For instance: 2206 /// For instance:
2033 /// class C<T> { 2207 /// class C<T> {
2034 /// m(rhs) => T += rhs; 2208 /// m(rhs) => T += rhs;
2035 /// } 2209 /// }
2036 /// 2210 ///
2037 R errorTypeVariableTypeLiteralCompound( 2211 R visitTypeVariableTypeLiteralCompound(
2038 Send node, 2212 Send node,
2039 TypeVariableElement element, 2213 TypeVariableElement element,
2040 AssignmentOperator operator, 2214 AssignmentOperator operator,
2041 Node rhs, 2215 Node rhs,
2042 A arg); 2216 A arg);
2043 2217
2044 /// Compound assignment expression of [rhs] with [operator] on the type 2218 /// Compound assignment expression of [rhs] with [operator] on the type
2045 /// literal for `dynamic`. 2219 /// literal for `dynamic`.
2046 /// 2220 ///
2047 /// For instance: 2221 /// For instance:
2048 /// m(rhs) => dynamic += rhs; 2222 /// m(rhs) => dynamic += rhs;
2049 /// 2223 ///
2050 R errorDynamicTypeLiteralCompound( 2224 R visitDynamicTypeLiteralCompound(
2051 Send node, 2225 Send node,
2052 ConstantExpression constant, 2226 ConstantExpression constant,
2053 AssignmentOperator operator, 2227 AssignmentOperator operator,
2054 Node rhs, 2228 Node rhs,
2055 A arg); 2229 A arg);
2056 2230
2057 /// Compound index assignment of [rhs] with [operator] to [index] on the 2231 /// Compound index assignment of [rhs] with [operator] to [index] on the
2058 /// index operators of [receiver] whose getter and setter are defined by 2232 /// index operators of [receiver] whose getter and setter are defined by
2059 /// [getterSelector] and [setterSelector], respectively. 2233 /// [getterSelector] and [setterSelector], respectively.
2060 /// 2234 ///
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
2149 /// 2323 ///
2150 /// For instance: 2324 /// For instance:
2151 /// m(parameter) => ++parameter; 2325 /// m(parameter) => ++parameter;
2152 /// 2326 ///
2153 R visitParameterPrefix( 2327 R visitParameterPrefix(
2154 Send node, 2328 Send node,
2155 ParameterElement parameter, 2329 ParameterElement parameter,
2156 IncDecOperator operator, 2330 IncDecOperator operator,
2157 A arg); 2331 A arg);
2158 2332
2333 /// Prefix expression with [operator] on a final [parameter].
2334 ///
2335 /// For instance:
2336 /// m(final parameter) => ++parameter;
2337 ///
2338 R visitFinalParameterPrefix(
2339 Send node,
2340 ParameterElement parameter,
2341 IncDecOperator operator,
2342 A arg);
2343
2159 /// Prefix expression with [operator] on a local [variable]. 2344 /// Prefix expression with [operator] on a local [variable].
2160 /// 2345 ///
2161 /// For instance: 2346 /// For instance:
2162 /// m() { 2347 /// m() {
2163 /// var variable; 2348 /// var variable;
2164 /// ++variable; 2349 /// ++variable;
2165 /// } 2350 /// }
2166 /// 2351 ///
2167 R visitLocalVariablePrefix( 2352 R visitLocalVariablePrefix(
2168 Send node, 2353 Send node,
2169 LocalVariableElement variable, 2354 LocalVariableElement variable,
2170 IncDecOperator operator, 2355 IncDecOperator operator,
2171 A arg); 2356 A arg);
2172 2357
2358 /// Prefix expression with [operator] on a final local [variable].
2359 ///
2360 /// For instance:
2361 /// m() {
2362 /// final variable;
2363 /// ++variable;
2364 /// }
2365 ///
2366 R visitFinalLocalVariablePrefix(
2367 Send node,
2368 LocalVariableElement variable,
2369 IncDecOperator operator,
2370 A arg);
2371
2173 /// Prefix expression with [operator] on a local [function]. 2372 /// Prefix expression with [operator] on a local [function].
2174 /// 2373 ///
2175 /// For instance: 2374 /// For instance:
2176 /// m() { 2375 /// m() {
2177 /// function() {} 2376 /// function() {}
2178 /// ++function; 2377 /// ++function;
2179 /// } 2378 /// }
2180 /// 2379 ///
2181 R errorLocalFunctionPrefix( 2380 R visitLocalFunctionPrefix(
2182 Send node, 2381 Send node,
2183 LocalFunctionElement function, 2382 LocalFunctionElement function,
2184 IncDecOperator operator, 2383 IncDecOperator operator,
2185 A arg); 2384 A arg);
2186 2385
2187 2386
2188 /// Prefix expression with [operator] of the property on `this` whose getter 2387 /// Prefix expression with [operator] of the property on `this` whose getter
2189 /// and setter are defined by [getterSelector] and [setterSelector], 2388 /// and setter are defined by [getterSelector] and [setterSelector],
2190 /// respectively. 2389 /// respectively.
2191 /// 2390 ///
(...skipping 20 matching lines...) Expand all
2212 /// static var field; 2411 /// static var field;
2213 /// m() => ++field; 2412 /// m() => ++field;
2214 /// } 2413 /// }
2215 /// 2414 ///
2216 R visitStaticFieldPrefix( 2415 R visitStaticFieldPrefix(
2217 Send node, 2416 Send node,
2218 FieldElement field, 2417 FieldElement field,
2219 IncDecOperator operator, 2418 IncDecOperator operator,
2220 A arg); 2419 A arg);
2221 2420
2421 /// Prefix expression with [operator] on a final static [field].
2422 ///
2423 /// For instance:
2424 /// class C {
2425 /// static final field = 42;
2426 /// m() => ++field;
2427 /// }
2428 ///
2429 R visitStaticFinalFieldPrefix(
2430 Send node,
2431 FieldElement field,
2432 IncDecOperator operator,
2433 A arg);
2434
2222 /// Prefix expression with [operator] reading from a static [getter] and 2435 /// Prefix expression with [operator] reading from a static [getter] and
2223 /// writing to a static [setter]. 2436 /// writing to a static [setter].
2224 /// 2437 ///
2225 /// For instance: 2438 /// For instance:
2226 /// class C { 2439 /// class C {
2227 /// static get o => 0; 2440 /// static get o => 0;
2228 /// static set o(_) {} 2441 /// static set o(_) {}
2229 /// m() => ++o; 2442 /// m() => ++o;
2230 /// } 2443 /// }
2231 /// 2444 ///
(...skipping 27 matching lines...) Expand all
2259 /// For instance: 2472 /// For instance:
2260 /// var field; 2473 /// var field;
2261 /// m() => ++field; 2474 /// m() => ++field;
2262 /// 2475 ///
2263 R visitTopLevelFieldPrefix( 2476 R visitTopLevelFieldPrefix(
2264 Send node, 2477 Send node,
2265 FieldElement field, 2478 FieldElement field,
2266 IncDecOperator operator, 2479 IncDecOperator operator,
2267 A arg); 2480 A arg);
2268 2481
2482 /// Prefix expression with [operator] on a final top level [field].
2483 ///
2484 /// For instance:
2485 /// final field;
2486 /// m() => ++field;
2487 ///
2488 R visitTopLevelFinalFieldPrefix(
2489 Send node,
2490 FieldElement field,
2491 IncDecOperator operator,
2492 A arg);
2493
2269 /// Prefix expression with [operator] reading from a top level [getter] and 2494 /// Prefix expression with [operator] reading from a top level [getter] and
2270 /// writing to a top level [setter]. 2495 /// writing to a top level [setter].
2271 /// 2496 ///
2272 /// For instance: 2497 /// For instance:
2273 /// get o => 0; 2498 /// get o => 0;
2274 /// set o(_) {} 2499 /// set o(_) {}
2275 /// m() => ++o; 2500 /// m() => ++o;
2276 /// 2501 ///
2277 R visitTopLevelGetterSetterPrefix( 2502 R visitTopLevelGetterSetterPrefix(
2278 Send node, 2503 Send node,
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
2407 /// m() => ++super.o; 2632 /// m() => ++super.o;
2408 /// } 2633 /// }
2409 /// 2634 ///
2410 R visitSuperMethodSetterPrefix( 2635 R visitSuperMethodSetterPrefix(
2411 Send node, 2636 Send node,
2412 FunctionElement method, 2637 FunctionElement method,
2413 FunctionElement setter, 2638 FunctionElement setter,
2414 IncDecOperator operator, 2639 IncDecOperator operator,
2415 A arg); 2640 A arg);
2416 2641
2642 /// Prefix expression with [operator] reading from a super [method], that is,
karlklose 2015/05/13 07:25:59 Same comments for documentation as with superMetho
Johnni Winther 2015/05/13 08:47:59 Done.
2643 /// closurizing [method], and writing to an unresolved super setter.
2644 ///
2645 /// For instance:
2646 /// class B {
2647 /// o() {}
2648 /// set o(_) {}
2649 /// }
2650 /// class C extends B {
2651 /// m() => ++super.o;
2652 /// }
2653 ///
2654 R visitSuperMethodPrefix(
2655 Send node,
2656 FunctionElement method,
2657 IncDecOperator operator,
2658 A arg);
2659
2660 /// Prefix expression with [operator] reading from an unresolved super getter
2661 /// and writing to a super [setter].
2662 ///
2663 /// For instance
2664 /// class B {
2665 /// set o(_) {}
2666 /// }
2667 /// class C extends B {
2668 /// m() => ++super.o;
2669 /// }
2670 ///
2671 ///
2672 R visitUnresolvedSuperGetterPrefix(
2673 Send node,
2674 Element element,
2675 MethodElement setter,
2676 IncDecOperator operator,
2677 A arg);
2678
2679 /// Prefix expression with [operator] reading from a super [getter] and
2680 /// writing to an unresolved super setter.
2681 ///
2682 /// For instance
2683 /// class B {
2684 /// get o => 42
2685 /// }
2686 /// class C extends B {
2687 /// m() => ++super.o;
2688 /// }
2689 ///
2690 ///
2691 R visitUnresolvedSuperSetterPrefix(
2692 Send node,
2693 MethodElement getter,
2694 Element element,
2695 IncDecOperator operator,
2696 A arg);
2697
2417 /// Prefix expression with [operator] on a type literal for a class [element]. 2698 /// Prefix expression with [operator] on a type literal for a class [element].
2418 /// 2699 ///
2419 /// For instance: 2700 /// For instance:
2420 /// class C {} 2701 /// class C {}
2421 /// m() => ++C; 2702 /// m() => ++C;
2422 /// 2703 ///
2423 R errorClassTypeLiteralPrefix( 2704 R visitClassTypeLiteralPrefix(
2424 Send node, 2705 Send node,
2425 ConstantExpression constant, 2706 ConstantExpression constant,
2426 IncDecOperator operator, 2707 IncDecOperator operator,
2427 A arg); 2708 A arg);
2428 2709
2429 /// Prefix expression with [operator] on a type literal for a typedef 2710 /// Prefix expression with [operator] on a type literal for a typedef
2430 /// [element]. 2711 /// [element].
2431 /// 2712 ///
2432 /// For instance: 2713 /// For instance:
2433 /// typedef F(); 2714 /// typedef F();
2434 /// m() => ++F; 2715 /// m() => ++F;
2435 /// 2716 ///
2436 R errorTypedefTypeLiteralPrefix( 2717 R visitTypedefTypeLiteralPrefix(
2437 Send node, 2718 Send node,
2438 ConstantExpression constant, 2719 ConstantExpression constant,
2439 IncDecOperator operator, 2720 IncDecOperator operator,
2440 A arg); 2721 A arg);
2441 2722
2442 /// Prefix expression with [operator] on a type literal for a type variable 2723 /// Prefix expression with [operator] on a type literal for a type variable
2443 /// [element]. 2724 /// [element].
2444 /// 2725 ///
2445 /// For instance: 2726 /// For instance:
2446 /// class C<T> { 2727 /// class C<T> {
2447 /// m() => ++T; 2728 /// m() => ++T;
2448 /// } 2729 /// }
2449 /// 2730 ///
2450 R errorTypeVariableTypeLiteralPrefix( 2731 R visitTypeVariableTypeLiteralPrefix(
2451 Send node, 2732 Send node,
2452 TypeVariableElement element, 2733 TypeVariableElement element,
2453 IncDecOperator operator, 2734 IncDecOperator operator,
2454 A arg); 2735 A arg);
2455 2736
2456 /// Prefix expression with [operator] on the type literal for `dynamic`. 2737 /// Prefix expression with [operator] on the type literal for `dynamic`.
2457 /// 2738 ///
2458 /// For instance: 2739 /// For instance:
2459 /// m() => ++dynamic; 2740 /// m() => ++dynamic;
2460 /// 2741 ///
2461 R errorDynamicTypeLiteralPrefix( 2742 R visitDynamicTypeLiteralPrefix(
2462 Send node, 2743 Send node,
2463 ConstantExpression constant, 2744 ConstantExpression constant,
2464 IncDecOperator operator, 2745 IncDecOperator operator,
2465 A arg); 2746 A arg);
2466 2747
2467 /// Postfix expression with [operator] of the property on [receiver] whose 2748 /// Postfix expression with [operator] of the property on [receiver] whose
2468 /// getter and setter are defined by [getterSelector] and [setterSelector], 2749 /// getter and setter are defined by [getterSelector] and [setterSelector],
2469 /// respectively. 2750 /// respectively.
2470 /// 2751 ///
2471 /// For instance: 2752 /// For instance:
(...skipping 11 matching lines...) Expand all
2483 /// 2764 ///
2484 /// For instance: 2765 /// For instance:
2485 /// m(parameter) => parameter++; 2766 /// m(parameter) => parameter++;
2486 /// 2767 ///
2487 R visitParameterPostfix( 2768 R visitParameterPostfix(
2488 Send node, 2769 Send node,
2489 ParameterElement parameter, 2770 ParameterElement parameter,
2490 IncDecOperator operator, 2771 IncDecOperator operator,
2491 A arg); 2772 A arg);
2492 2773
2774 /// Postfix expression with [operator] on a final [parameter].
2775 ///
2776 /// For instance:
2777 /// m(final parameter) => parameter++;
2778 ///
2779 R visitFinalParameterPostfix(
2780 Send node,
2781 ParameterElement parameter,
2782 IncDecOperator operator,
2783 A arg);
2784
2493 /// Postfix expression with [operator] on a local [variable]. 2785 /// Postfix expression with [operator] on a local [variable].
2494 /// 2786 ///
2495 /// For instance: 2787 /// For instance:
2496 /// m() { 2788 /// m() {
2497 /// var variable; 2789 /// var variable;
2498 /// variable++; 2790 /// variable++;
2499 /// } 2791 /// }
2500 /// 2792 ///
2501 R visitLocalVariablePostfix( 2793 R visitLocalVariablePostfix(
2502 Send node, 2794 Send node,
2503 LocalVariableElement variable, 2795 LocalVariableElement variable,
2504 IncDecOperator operator, 2796 IncDecOperator operator,
2505 A arg); 2797 A arg);
2506 2798
2799 /// Postfix expression with [operator] on a final local [variable].
2800 ///
2801 /// For instance:
2802 /// m() {
2803 /// final variable;
2804 /// variable++;
2805 /// }
2806 ///
2807 R visitFinalLocalVariablePostfix(
2808 Send node,
2809 LocalVariableElement variable,
2810 IncDecOperator operator,
2811 A arg);
2812
2507 /// Postfix expression with [operator] on a local [function]. 2813 /// Postfix expression with [operator] on a local [function].
2508 /// 2814 ///
2509 /// For instance: 2815 /// For instance:
2510 /// m() { 2816 /// m() {
2511 /// function() {} 2817 /// function() {}
2512 /// function++; 2818 /// function++;
2513 /// } 2819 /// }
2514 /// 2820 ///
2515 R errorLocalFunctionPostfix( 2821 R visitLocalFunctionPostfix(
2516 Send node, 2822 Send node,
2517 LocalFunctionElement function, 2823 LocalFunctionElement function,
2518 IncDecOperator operator, 2824 IncDecOperator operator,
2519 A arg); 2825 A arg);
2520 2826
2521 2827
2522 /// Postfix expression with [operator] of the property on `this` whose getter 2828 /// Postfix expression with [operator] of the property on `this` whose getter
2523 /// and setter are defined by [getterSelector] and [setterSelector], 2829 /// and setter are defined by [getterSelector] and [setterSelector],
2524 /// respectively. 2830 /// respectively.
2525 /// 2831 ///
(...skipping 20 matching lines...) Expand all
2546 /// static var field; 2852 /// static var field;
2547 /// m() => field++; 2853 /// m() => field++;
2548 /// } 2854 /// }
2549 /// 2855 ///
2550 R visitStaticFieldPostfix( 2856 R visitStaticFieldPostfix(
2551 Send node, 2857 Send node,
2552 FieldElement field, 2858 FieldElement field,
2553 IncDecOperator operator, 2859 IncDecOperator operator,
2554 A arg); 2860 A arg);
2555 2861
2862 /// Postfix expression with [operator] on a final static [field].
2863 ///
2864 /// For instance:
2865 /// class C {
2866 /// static final field;
2867 /// m() => field++;
2868 /// }
2869 ///
2870 R visitStaticFinalFieldPostfix(
2871 Send node,
2872 FieldElement field,
2873 IncDecOperator operator,
2874 A arg);
2875
2556 /// Postfix expression with [operator] reading from a static [getter] and 2876 /// Postfix expression with [operator] reading from a static [getter] and
2557 /// writing to a static [setter]. 2877 /// writing to a static [setter].
2558 /// 2878 ///
2559 /// For instance: 2879 /// For instance:
2560 /// class C { 2880 /// class C {
2561 /// static get o => 0; 2881 /// static get o => 0;
2562 /// static set o(_) {} 2882 /// static set o(_) {}
2563 /// m() => o++; 2883 /// m() => o++;
2564 /// } 2884 /// }
2565 /// 2885 ///
(...skipping 27 matching lines...) Expand all
2593 /// For instance: 2913 /// For instance:
2594 /// var field; 2914 /// var field;
2595 /// m() => field++; 2915 /// m() => field++;
2596 /// 2916 ///
2597 R visitTopLevelFieldPostfix( 2917 R visitTopLevelFieldPostfix(
2598 Send node, 2918 Send node,
2599 FieldElement field, 2919 FieldElement field,
2600 IncDecOperator operator, 2920 IncDecOperator operator,
2601 A arg); 2921 A arg);
2602 2922
2923 /// Postfix expression with [operator] on a final top level [field].
2924 ///
2925 /// For instance:
2926 /// final field = 42;
2927 /// m() => field++;
2928 ///
2929 R visitTopLevelFinalFieldPostfix(
2930 Send node,
2931 FieldElement field,
2932 IncDecOperator operator,
2933 A arg);
2934
2603 /// Postfix expression with [operator] reading from a top level [getter] and 2935 /// Postfix expression with [operator] reading from a top level [getter] and
2604 /// writing to a top level [setter]. 2936 /// writing to a top level [setter].
2605 /// 2937 ///
2606 /// For instance: 2938 /// For instance:
2607 /// get o => 0; 2939 /// get o => 0;
2608 /// set o(_) {} 2940 /// set o(_) {}
2609 /// m() => o++; 2941 /// m() => o++;
2610 /// 2942 ///
2611 R visitTopLevelGetterSetterPostfix( 2943 R visitTopLevelGetterSetterPostfix(
2612 Send node, 2944 Send node,
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
2741 /// m() => super.o++; 3073 /// m() => super.o++;
2742 /// } 3074 /// }
2743 /// 3075 ///
2744 R visitSuperMethodSetterPostfix( 3076 R visitSuperMethodSetterPostfix(
2745 Send node, 3077 Send node,
2746 FunctionElement method, 3078 FunctionElement method,
2747 FunctionElement setter, 3079 FunctionElement setter,
2748 IncDecOperator operator, 3080 IncDecOperator operator,
2749 A arg); 3081 A arg);
2750 3082
3083 /// Postfix expression with [operator] reading from a super [method], that is,
3084 /// closurizing [method], and writing to an unresolved super.
3085 ///
3086 /// For instance:
3087 /// class B {
3088 /// o() {}
3089 /// set o(_) {}
3090 /// }
3091 /// class C extends B {
3092 /// m() => super.o++;
3093 /// }
3094 ///
3095 R visitSuperMethodPostfix(
3096 Send node,
3097 FunctionElement method,
3098 IncDecOperator operator,
3099 A arg);
3100
3101 /// Prefix expression with [operator] reading from an unresolved super getter
3102 /// and writing to a super [setter].
3103 ///
3104 /// For instance
3105 /// class B {
3106 /// set o(_) {}
3107 /// }
3108 /// class C extends B {
3109 /// m() => super.o++;
3110 /// }
3111 ///
3112 ///
3113 R visitUnresolvedSuperGetterPostfix(
3114 Send node,
3115 Element element,
3116 MethodElement setter,
3117 IncDecOperator operator,
3118 A arg);
3119
3120 /// Prefix expression with [operator] reading from a super [getter] and
3121 /// writing to an unresolved super setter.
3122 ///
3123 /// For instance
3124 /// class B {
3125 /// get o => 42
3126 /// }
3127 /// class C extends B {
3128 /// m() => super.o++;
3129 /// }
3130 ///
3131 ///
3132 R visitUnresolvedSuperSetterPostfix(
3133 Send node,
3134 MethodElement getter,
3135 Element element,
3136 IncDecOperator operator,
3137 A arg);
3138
2751 /// Postfix expression with [operator] on a type literal for a class 3139 /// Postfix expression with [operator] on a type literal for a class
2752 /// [element]. 3140 /// [element].
2753 /// 3141 ///
2754 /// For instance: 3142 /// For instance:
2755 /// class C {} 3143 /// class C {}
2756 /// m() => C++; 3144 /// m() => C++;
2757 /// 3145 ///
2758 R errorClassTypeLiteralPostfix( 3146 R visitClassTypeLiteralPostfix(
2759 Send node, 3147 Send node,
2760 ConstantExpression constant, 3148 ConstantExpression constant,
2761 IncDecOperator operator, 3149 IncDecOperator operator,
2762 A arg); 3150 A arg);
2763 3151
2764 /// Postfix expression with [operator] on a type literal for a typedef 3152 /// Postfix expression with [operator] on a type literal for a typedef
2765 /// [element]. 3153 /// [element].
2766 /// 3154 ///
2767 /// For instance: 3155 /// For instance:
2768 /// typedef F(); 3156 /// typedef F();
2769 /// m() => F++; 3157 /// m() => F++;
2770 /// 3158 ///
2771 R errorTypedefTypeLiteralPostfix( 3159 R visitTypedefTypeLiteralPostfix(
2772 Send node, 3160 Send node,
2773 ConstantExpression constant, 3161 ConstantExpression constant,
2774 IncDecOperator operator, 3162 IncDecOperator operator,
2775 A arg); 3163 A arg);
2776 3164
2777 /// Postfix expression with [operator] on a type literal for a type variable 3165 /// Postfix expression with [operator] on a type literal for a type variable
2778 /// [element]. 3166 /// [element].
2779 /// 3167 ///
2780 /// For instance: 3168 /// For instance:
2781 /// class C<T> { 3169 /// class C<T> {
2782 /// m() => T++; 3170 /// m() => T++;
2783 /// } 3171 /// }
2784 /// 3172 ///
2785 R errorTypeVariableTypeLiteralPostfix( 3173 R visitTypeVariableTypeLiteralPostfix(
2786 Send node, 3174 Send node,
2787 TypeVariableElement element, 3175 TypeVariableElement element,
2788 IncDecOperator operator, 3176 IncDecOperator operator,
2789 A arg); 3177 A arg);
2790 3178
2791 /// Postfix expression with [operator] on the type literal for `dynamic`. 3179 /// Postfix expression with [operator] on the type literal for `dynamic`.
2792 /// 3180 ///
2793 /// For instance: 3181 /// For instance:
2794 /// m() => dynamic++; 3182 /// m() => dynamic++;
2795 /// 3183 ///
2796 R errorDynamicTypeLiteralPostfix( 3184 R visitDynamicTypeLiteralPostfix(
2797 Send node, 3185 Send node,
2798 ConstantExpression constant, 3186 ConstantExpression constant,
2799 IncDecOperator operator, 3187 IncDecOperator operator,
2800 A arg); 3188 A arg);
2801 3189
2802 /// Read of the [constant]. 3190 /// Read of the [constant].
2803 /// 3191 ///
2804 /// For instance 3192 /// For instance
2805 /// const c = c; 3193 /// const c = c;
2806 /// m() => c; 3194 /// m() => c;
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
2901 /// m() => super.foo(); 3289 /// m() => super.foo();
2902 /// } 3290 /// }
2903 /// 3291 ///
2904 R visitUnresolvedSuperInvoke( 3292 R visitUnresolvedSuperInvoke(
2905 Send node, 3293 Send node,
2906 Element element, 3294 Element element,
2907 NodeList arguments, 3295 NodeList arguments,
2908 Selector selector, 3296 Selector selector,
2909 A arg); 3297 A arg);
2910 3298
2911 /// Compound assignment of [rhs] on the unresolved [element]. 3299 /// Compound assignment of [rhs] on a static [setter] where the getter is
3300 /// unresolved.
3301 ///
3302 /// For instance
3303 /// class C {
3304 /// set foo(_) {}
3305 /// }
3306 /// m1() => C.foo += 42;
3307 ///
3308 R visitUnresolvedStaticGetterCompound(
3309 Send node,
3310 Element element,
3311 MethodElement setter,
3312 AssignmentOperator operator,
3313 Node rhs,
3314 A arg);
3315
3316 /// Compound assignment of [rhs] on a top level [setter] where the getter is
3317 /// unresolved.
3318 ///
3319 /// For instance
3320 /// set foo(_) {}
3321 /// m1() => foo += 42;
3322 ///
3323 R visitUnresolvedTopLevelGetterCompound(
3324 Send node,
3325 Element element,
3326 MethodElement setter,
3327 AssignmentOperator operator,
3328 Node rhs,
3329 A arg);
3330
3331 /// Compound assignment of [rhs] on a static [getter] where the setter is
3332 /// unresolved.
3333 ///
3334 /// For instance
3335 /// class C {
3336 /// get foo => 42;
3337 /// }
3338 /// m1() => C.foo += 42;
3339 ///
3340 R visitUnresolvedStaticSetterCompound(
3341 Send node,
3342 MethodElement getter,
3343 Element element,
3344 AssignmentOperator operator,
3345 Node rhs,
3346 A arg);
3347
3348 /// Compound assignment of [rhs] on a top level [getter] where the setter is
3349 /// unresolved.
3350 ///
3351 /// For instance
3352 /// get foo => 42;
3353 /// m1() => foo += 42;
3354 ///
3355 R visitUnresolvedTopLevelSetterCompound(
3356 Send node,
3357 MethodElement getter,
3358 Element element,
3359 AssignmentOperator operator,
3360 Node rhs,
3361 A arg);
3362
3363 /// Compound assignment of [rhs] on a static [method] where the setter is
3364 /// unresolved.
3365 ///
3366 /// For instance
3367 /// class C {
3368 /// foo() {}
3369 /// }
3370 /// m1() => C.foo += 42;
3371 ///
3372 R visitStaticMethodCompound(
3373 Send node,
3374 MethodElement method,
3375 AssignmentOperator operator,
3376 Node rhs,
3377 A arg);
3378
3379 /// Compound assignment of [rhs] where both getter and setter are unresolved.
2912 /// 3380 ///
2913 /// For instance 3381 /// For instance
2914 /// class C {} 3382 /// class C {}
2915 /// m1() => unresolved += 42; 3383 /// m1() => unresolved += 42;
2916 /// m2() => prefix.unresolved += 42; 3384 /// m2() => prefix.unresolved += 42;
2917 /// m3() => Unresolved.foo += 42; 3385 /// m3() => Unresolved.foo += 42;
2918 /// m4() => unresolved.foo += 42; 3386 /// m4() => unresolved.foo += 42;
2919 /// m5() => unresolved.Foo.bar += 42; 3387 /// m5() => unresolved.Foo.bar += 42;
2920 /// m6() => C.unresolved += 42; 3388 /// m6() => C.unresolved += 42;
2921 /// m7() => prefix.C.unresolved += 42; 3389 /// m7() => prefix.C.unresolved += 42;
2922 /// 3390 ///
2923 // TODO(johnniwinther): Split the cases in which a prefix is resolved. 3391 // TODO(johnniwinther): Split the cases in which a prefix is resolved.
2924 R errorUnresolvedCompound( 3392 R visitUnresolvedCompound(
2925 Send node, 3393 Send node,
2926 Element element, 3394 Element element,
2927 AssignmentOperator operator, 3395 AssignmentOperator operator,
2928 Node rhs, 3396 Node rhs,
2929 A arg); 3397 A arg);
2930 3398
2931 /// Prefix operation on the unresolved [element]. 3399 /// Prefix operation on a static [setter] where the getter is unresolved.
3400 ///
3401 /// For instance
3402 /// class C {
3403 /// set foo(_) {}
3404 /// }
3405 /// m1() => ++C.foo;
3406 ///
3407 R visitUnresolvedStaticGetterPrefix(
3408 Send node,
3409 Element element,
3410 MethodElement setter,
3411 IncDecOperator operator,
3412 A arg);
3413
3414 /// Prefix operation on a top level [setter] where the getter is unresolved.
3415 ///
3416 /// For instance
3417 /// set foo(_) {}
3418 /// m1() => ++foo;
3419 ///
3420 R visitUnresolvedTopLevelGetterPrefix(
3421 Send node,
3422 Element element,
3423 MethodElement setter,
3424 IncDecOperator operator,
3425 A arg);
3426
3427 /// Prefix operation on a static [getter] where the setter is unresolved.
3428 ///
3429 /// For instance
3430 /// class C {
3431 /// get foo => 42;
3432 /// }
3433 /// m1() => ++C.foo;
3434 ///
3435 R visitUnresolvedStaticSetterPrefix(
3436 Send node,
3437 MethodElement getter,
3438 Element element,
3439 IncDecOperator operator,
3440 A arg);
3441
3442 /// Prefix operation on a top level [getter] where the setter is unresolved.
3443 ///
3444 /// For instance
3445 /// get foo => 42;
3446 /// m1() => ++foo;
3447 ///
3448 R visitUnresolvedTopLevelSetterPrefix(
3449 Send node,
3450 MethodElement getter,
3451 Element element,
3452 IncDecOperator operator,
3453 A arg);
3454
3455 /// Prefix operation on a static [method] where the setter is unresolved.
3456 ///
3457 /// For instance
3458 /// class C {
3459 /// foo() {}
3460 /// }
3461 /// m1() => ++C.foo;
3462 ///
3463 R visitStaticMethodPrefix(
3464 Send node,
3465 MethodElement method,
3466 IncDecOperator operator,
3467 A arg);
3468
3469 /// Prefix operation on a top level [method] where the setter is unresolved.
3470 ///
3471 /// For instance
3472 /// class C {
3473 /// foo() {}
3474 /// }
3475 /// m1() => ++C.foo;
3476 ///
3477 R visitTopLevelMethodPrefix(
3478 Send node,
3479 MethodElement method,
3480 IncDecOperator operator,
3481 A arg);
3482
3483 /// Prefix operation where both getter and setter are unresolved.
2932 /// 3484 ///
2933 /// For instance 3485 /// For instance
2934 /// class C {} 3486 /// class C {}
2935 /// m1() => ++unresolved; 3487 /// m1() => ++unresolved;
2936 /// m2() => ++prefix.unresolved; 3488 /// m2() => ++prefix.unresolved;
2937 /// m3() => ++Unresolved.foo; 3489 /// m3() => ++Unresolved.foo;
2938 /// m4() => ++unresolved.foo; 3490 /// m4() => ++unresolved.foo;
2939 /// m5() => ++unresolved.Foo.bar; 3491 /// m5() => ++unresolved.Foo.bar;
2940 /// m6() => ++C.unresolved; 3492 /// m6() => ++C.unresolved;
2941 /// m7() => ++prefix.C.unresolved; 3493 /// m7() => ++prefix.C.unresolved;
2942 /// 3494 ///
2943 // TODO(johnniwinther): Split the cases in which a prefix is resolved. 3495 // TODO(johnniwinther): Split the cases in which a prefix is resolved.
2944 R errorUnresolvedPrefix( 3496 R visitUnresolvedPrefix(
2945 Send node, 3497 Send node,
2946 Element element, 3498 Element element,
2947 IncDecOperator operator, 3499 IncDecOperator operator,
2948 A arg); 3500 A arg);
2949 3501
2950 /// Postfix operation on the unresolved [element]. 3502 /// Postfix operation on a static [setter] where the getter is unresolved.
3503 ///
3504 /// For instance
3505 /// class C {
3506 /// set foo(_) {}
3507 /// }
3508 /// m1() => C.foo++;
3509 ///
3510 R visitUnresolvedStaticGetterPostfix(
3511 Send node,
3512 Element element,
3513 MethodElement setter,
3514 IncDecOperator operator,
3515 A arg);
3516
3517 /// Postfix operation on a top level [setter] where the getter is unresolved.
3518 ///
3519 /// For instance
3520 /// set foo(_) {}
3521 /// m1() => foo++;
3522 ///
3523 R visitUnresolvedTopLevelGetterPostfix(
3524 Send node,
3525 Element element,
3526 MethodElement setter,
3527 IncDecOperator operator,
3528 A arg);
3529
3530 /// Postfix operation on a static [getter] where the setter is unresolved.
3531 ///
3532 /// For instance
3533 /// class C {
3534 /// get foo => 42;
3535 /// }
3536 /// m1() => C.foo++;
3537 ///
3538 R visitUnresolvedStaticSetterPostfix(
3539 Send node,
3540 MethodElement getter,
3541 Element element,
3542 IncDecOperator operator,
3543 A arg);
3544
3545 /// Postfix operation on a top level [getter] where the setter is unresolved.
3546 ///
3547 /// For instance
3548 /// get foo => 42;
3549 /// m1() => foo++;
3550 ///
3551 R visitUnresolvedTopLevelSetterPostfix(
3552 Send node,
3553 MethodElement getter,
3554 Element element,
3555 IncDecOperator operator,
3556 A arg);
3557
3558 /// Postfix operation on a static [method] where the setter is unresolved.
3559 ///
3560 /// For instance
3561 /// class C {
3562 /// foo() {}
3563 /// }
3564 /// m1() => C.foo++;
3565 ///
3566 R visitStaticMethodPostfix(
3567 Send node,
3568 MethodElement method,
3569 IncDecOperator operator,
3570 A arg);
3571
3572 /// Postfix operation on a top level [method] where the setter is unresolved.
3573 ///
3574 /// For instance
3575 /// class C {
3576 /// foo() {}
3577 /// }
3578 /// m1() => C.foo++;
3579 ///
3580 R visitTopLevelMethodPostfix(
3581 Send node,
3582 MethodElement method,
3583 IncDecOperator operator,
3584 A arg);
3585
3586 /// Postfix operation where both getter and setter are unresolved.
2951 /// 3587 ///
2952 /// For instance 3588 /// For instance
2953 /// class C {} 3589 /// class C {}
2954 /// m1() => unresolved++; 3590 /// m1() => unresolved++;
2955 /// m2() => prefix.unresolved++; 3591 /// m2() => prefix.unresolved++;
2956 /// m3() => Unresolved.foo++; 3592 /// m3() => Unresolved.foo++;
2957 /// m4() => unresolved.foo++; 3593 /// m4() => unresolved.foo++;
2958 /// m5() => unresolved.Foo.bar++; 3594 /// m5() => unresolved.Foo.bar++;
2959 /// m6() => C.unresolved++; 3595 /// m6() => C.unresolved++;
2960 /// m7() => prefix.C.unresolved++; 3596 /// m7() => prefix.C.unresolved++;
2961 /// 3597 ///
2962 // TODO(johnniwinther): Split the cases in which a prefix is resolved. 3598 // TODO(johnniwinther): Split the cases in which a prefix is resolved.
2963 R errorUnresolvedPostfix( 3599 R visitUnresolvedPostfix(
2964 Send node, 3600 Send node,
2965 Element element, 3601 Element element,
2966 IncDecOperator operator, 3602 IncDecOperator operator,
2967 A arg); 3603 A arg);
2968 3604
2969 /// Invocation of an undefined unary [operator] on [expression]. 3605 /// Invocation of an undefined unary [operator] on [expression].
2970 R errorUndefinedUnaryExpression( 3606 R errorUndefinedUnaryExpression(
2971 Send node, 3607 Send node,
2972 Operator operator, 3608 Operator operator,
2973 Node expression, 3609 Node expression,
(...skipping 733 matching lines...) Expand 10 before | Expand all | Expand 10 after
3707 /// C() : this._(42); 4343 /// C() : this._(42);
3708 /// } 4344 /// }
3709 /// 4345 ///
3710 R errorUnresolvedThisConstructorInvoke( 4346 R errorUnresolvedThisConstructorInvoke(
3711 Send node, 4347 Send node,
3712 Element element, 4348 Element element,
3713 NodeList arguments, 4349 NodeList arguments,
3714 Selector selector, 4350 Selector selector,
3715 A arg); 4351 A arg);
3716 } 4352 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698