< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeInfo.java

Print this page
@@ -29,11 +29,10 @@
  
  import com.sun.source.tree.Tree;
  import com.sun.source.util.TreePath;
  import com.sun.tools.javac.code.*;
  import com.sun.tools.javac.code.Symbol.RecordComponent;
- import com.sun.tools.javac.comp.AttrContext;
  import com.sun.tools.javac.comp.Env;
  import com.sun.tools.javac.tree.JCTree.*;
  import com.sun.tools.javac.tree.JCTree.JCPolyExpression.*;
  import com.sun.tools.javac.util.*;
  import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;

@@ -194,11 +193,12 @@
              case PARENS:
                  return isExplicitThisReference(types, currentClass, skipParens(tree));
              case IDENT: {
                  JCIdent ident = (JCIdent)tree;
                  Names names = ident.name.table.names;
-                 return ident.name == names._this || ident.name == names._super;
+                 return ident.name == names._this && tree.type.tsym == currentClass.tsym ||
+                        ident.name == names._super;
              }
              case SELECT: {
                  JCFieldAccess select = (JCFieldAccess)tree;
                  Type selectedType = types.erasure(select.selected.type);
                  if (!selectedType.hasTag(TypeTag.CLASS))
< prev index next >