40 import com.sun.tools.javac.code.Scope.*; |
40 import com.sun.tools.javac.code.Scope.*; |
41 import com.sun.tools.javac.code.Symbol.*; |
41 import com.sun.tools.javac.code.Symbol.*; |
42 import com.sun.tools.javac.parser.EndPosTable; |
42 import com.sun.tools.javac.parser.EndPosTable; |
43 import com.sun.source.tree.*; |
43 import com.sun.source.tree.*; |
44 import com.sun.source.tree.LambdaExpressionTree.BodyKind; |
44 import com.sun.source.tree.LambdaExpressionTree.BodyKind; |
|
45 import com.sun.source.tree.MemberReferenceTree.ReferenceMode; |
45 |
46 |
46 import static com.sun.tools.javac.code.BoundKind.*; |
47 import static com.sun.tools.javac.code.BoundKind.*; |
47 import static com.sun.tools.javac.tree.JCTree.Tag.*; |
48 import static com.sun.tools.javac.tree.JCTree.Tag.*; |
48 |
49 |
49 /** |
50 /** |
1796 } |
1801 } |
1797 public Name getIdentifier() { return name; } |
1802 public Name getIdentifier() { return name; } |
1798 @Override |
1803 @Override |
1799 public Tag getTag() { |
1804 public Tag getTag() { |
1800 return SELECT; |
1805 return SELECT; |
|
1806 } |
|
1807 } |
|
1808 |
|
1809 /** |
|
1810 * Selects a member expression. |
|
1811 */ |
|
1812 public static class JCMemberReference extends JCExpression implements MemberReferenceTree { |
|
1813 public ReferenceMode mode; |
|
1814 public Name name; |
|
1815 public JCExpression expr; |
|
1816 public List<JCExpression> typeargs; |
|
1817 public Type targetType; |
|
1818 public Symbol sym; |
|
1819 |
|
1820 protected JCMemberReference(ReferenceMode mode, Name name, JCExpression expr, List<JCExpression> typeargs) { |
|
1821 this.mode = mode; |
|
1822 this.name = name; |
|
1823 this.expr = expr; |
|
1824 this.typeargs = typeargs; |
|
1825 } |
|
1826 @Override |
|
1827 public void accept(Visitor v) { v.visitReference(this); } |
|
1828 |
|
1829 public Kind getKind() { return Kind.MEMBER_REFERENCE; } |
|
1830 @Override |
|
1831 public ReferenceMode getMode() { return mode; } |
|
1832 @Override |
|
1833 public JCExpression getQualifierExpression() { return expr; } |
|
1834 @Override |
|
1835 public Name getName() { return name; } |
|
1836 @Override |
|
1837 public List<JCExpression> getTypeArguments() { return typeargs; } |
|
1838 |
|
1839 @Override |
|
1840 public <R,D> R accept(TreeVisitor<R,D> v, D d) { |
|
1841 return v.visitMemberReference(this, d); |
|
1842 } |
|
1843 @Override |
|
1844 public Tag getTag() { |
|
1845 return REFERENCE; |
1801 } |
1846 } |
1802 } |
1847 } |
1803 |
1848 |
1804 /** |
1849 /** |
1805 * An identifier |
1850 * An identifier |
2334 public void visitBinary(JCBinary that) { visitTree(that); } |
2379 public void visitBinary(JCBinary that) { visitTree(that); } |
2335 public void visitTypeCast(JCTypeCast that) { visitTree(that); } |
2380 public void visitTypeCast(JCTypeCast that) { visitTree(that); } |
2336 public void visitTypeTest(JCInstanceOf that) { visitTree(that); } |
2381 public void visitTypeTest(JCInstanceOf that) { visitTree(that); } |
2337 public void visitIndexed(JCArrayAccess that) { visitTree(that); } |
2382 public void visitIndexed(JCArrayAccess that) { visitTree(that); } |
2338 public void visitSelect(JCFieldAccess that) { visitTree(that); } |
2383 public void visitSelect(JCFieldAccess that) { visitTree(that); } |
|
2384 public void visitReference(JCMemberReference that) { visitTree(that); } |
2339 public void visitIdent(JCIdent that) { visitTree(that); } |
2385 public void visitIdent(JCIdent that) { visitTree(that); } |
2340 public void visitLiteral(JCLiteral that) { visitTree(that); } |
2386 public void visitLiteral(JCLiteral that) { visitTree(that); } |
2341 public void visitTypeIdent(JCPrimitiveTypeTree that) { visitTree(that); } |
2387 public void visitTypeIdent(JCPrimitiveTypeTree that) { visitTree(that); } |
2342 public void visitTypeArray(JCArrayTypeTree that) { visitTree(that); } |
2388 public void visitTypeArray(JCArrayTypeTree that) { visitTree(that); } |
2343 public void visitTypeApply(JCTypeApply that) { visitTree(that); } |
2389 public void visitTypeApply(JCTypeApply that) { visitTree(that); } |