equal
deleted
inserted
replaced
28 import java.util.*; |
28 import java.util.*; |
29 import javax.tools.JavaFileObject; |
29 import javax.tools.JavaFileObject; |
30 import javax.tools.JavaFileManager; |
30 import javax.tools.JavaFileManager; |
31 |
31 |
32 import com.sun.tools.javac.code.*; |
32 import com.sun.tools.javac.code.*; |
|
33 import com.sun.tools.javac.code.Kinds.KindSelector; |
33 import com.sun.tools.javac.code.Scope.*; |
34 import com.sun.tools.javac.code.Scope.*; |
34 import com.sun.tools.javac.code.Symbol.*; |
35 import com.sun.tools.javac.code.Symbol.*; |
35 import com.sun.tools.javac.code.Type.*; |
36 import com.sun.tools.javac.code.Type.*; |
36 import com.sun.tools.javac.jvm.*; |
37 import com.sun.tools.javac.jvm.*; |
37 import com.sun.tools.javac.main.Option.PkgInfo; |
38 import com.sun.tools.javac.main.Option.PkgInfo; |
41 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition; |
42 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition; |
42 import com.sun.tools.javac.util.List; |
43 import com.sun.tools.javac.util.List; |
43 |
44 |
44 |
45 |
45 import static com.sun.tools.javac.code.Flags.*; |
46 import static com.sun.tools.javac.code.Flags.*; |
46 import static com.sun.tools.javac.code.Kinds.*; |
47 import static com.sun.tools.javac.code.Kinds.Kind.*; |
47 |
48 |
48 /** This class enters symbols for all encountered definitions into |
49 /** This class enters symbols for all encountered definitions into |
49 * the symbol table. The pass consists of two phases, organized as |
50 * the symbol table. The pass consists of two phases, organized as |
50 * follows: |
51 * follows: |
51 * |
52 * |
400 // We are seeing a local or inner class. |
401 // We are seeing a local or inner class. |
401 // Set outer_field of this class to closest enclosing class |
402 // Set outer_field of this class to closest enclosing class |
402 // which contains this class in a non-static context |
403 // which contains this class in a non-static context |
403 // (its "enclosing instance class"), provided such a class exists. |
404 // (its "enclosing instance class"), provided such a class exists. |
404 Symbol owner1 = owner; |
405 Symbol owner1 = owner; |
405 while ((owner1.kind & (VAR | MTH)) != 0 && |
406 while (owner1.kind.matches(KindSelector.VAL_MTH) && |
406 (owner1.flags_field & STATIC) == 0) { |
407 (owner1.flags_field & STATIC) == 0) { |
407 owner1 = owner1.owner; |
408 owner1 = owner1.owner; |
408 } |
409 } |
409 if (owner1.kind == TYP) { |
410 if (owner1.kind == TYP) { |
410 ct.setEnclosingType(owner1.type); |
411 ct.setEnclosingType(owner1.type); |