test/langtools/tools/javac/protectedAccess/ProtectedMemberAccess4.java
author vromero
Tue, 03 Apr 2018 23:58:52 -0400
changeset 49518 d0ff431a596e
parent 47216 71c04702a3d5
permissions -rw-r--r--
8198314: javac hidden options violate standard syntax for options Reviewed-by: jjg
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
06bc494ca11e Initial load
duke
parents:
diff changeset
     1
/*
06bc494ca11e Initial load
duke
parents:
diff changeset
     2
 * @test  /nodynamiccopyright/
06bc494ca11e Initial load
duke
parents:
diff changeset
     3
 * @bug 4319507 4785453
06bc494ca11e Initial load
duke
parents:
diff changeset
     4
 * @summary Verify correct implementation of JLS2e 6.6.2.1
06bc494ca11e Initial load
duke
parents:
diff changeset
     5
 * @author maddox
06bc494ca11e Initial load
duke
parents:
diff changeset
     6
 *
49518
d0ff431a596e 8198314: javac hidden options violate standard syntax for options
vromero
parents: 47216
diff changeset
     7
 * @compile/fail/ref=ProtectedMemberAccess4.out --diags=formatterOptions=-simpleNames;layout=%b:%l:%_%m ProtectedMemberAccess4.java
10
06bc494ca11e Initial load
duke
parents:
diff changeset
     8
 */
06bc494ca11e Initial load
duke
parents:
diff changeset
     9
06bc494ca11e Initial load
duke
parents:
diff changeset
    10
// 33 errors expected.
06bc494ca11e Initial load
duke
parents:
diff changeset
    11
06bc494ca11e Initial load
duke
parents:
diff changeset
    12
import pkg.SuperClass;
06bc494ca11e Initial load
duke
parents:
diff changeset
    13
06bc494ca11e Initial load
duke
parents:
diff changeset
    14
class ProtectedMemberAccess4 extends pkg.SuperClass {
06bc494ca11e Initial load
duke
parents:
diff changeset
    15
06bc494ca11e Initial load
duke
parents:
diff changeset
    16
  // Access to a protected instance (non-static) field, instance method,
06bc494ca11e Initial load
duke
parents:
diff changeset
    17
  // or member type by a qualified name is always legal in a subclass of
06bc494ca11e Initial load
duke
parents:
diff changeset
    18
  // the class in which the member is declared.  Such access to a protected
06bc494ca11e Initial load
duke
parents:
diff changeset
    19
  // instance field or instance method is allowed only if the qualifying type
06bc494ca11e Initial load
duke
parents:
diff changeset
    20
  // or the type of the qualifying expression is (a subclass of) the class
06bc494ca11e Initial load
duke
parents:
diff changeset
    21
  // in which the reference occurs.  In this test case, the qualifying type
06bc494ca11e Initial load
duke
parents:
diff changeset
    22
  // is a superclass, thus all of the qualified references to instance fields
06bc494ca11e Initial load
duke
parents:
diff changeset
    23
  // and instance methods are illegal.
06bc494ca11e Initial load
duke
parents:
diff changeset
    24
06bc494ca11e Initial load
duke
parents:
diff changeset
    25
  pkg.SuperClass x = new pkg.SuperClass();
06bc494ca11e Initial load
duke
parents:
diff changeset
    26
06bc494ca11e Initial load
duke
parents:
diff changeset
    27
  static pkg.SuperClass sx = new pkg.SuperClass();
06bc494ca11e Initial load
duke
parents:
diff changeset
    28
06bc494ca11e Initial load
duke
parents:
diff changeset
    29
  int i = x.pi;                                 // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
    30
  int j = x.spi;                                // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    31
06bc494ca11e Initial load
duke
parents:
diff changeset
    32
  int n = sx.pi;                                // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
    33
  int m = sx.spi;                               // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    34
06bc494ca11e Initial load
duke
parents:
diff changeset
    35
  static int sn = sx.pi;                        // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
    36
  static int sm = sx.spi;                       // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    37
06bc494ca11e Initial load
duke
parents:
diff changeset
    38
  int w = x.pm();                               // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
    39
  int y = x.spm();                              // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    40
06bc494ca11e Initial load
duke
parents:
diff changeset
    41
  int u = sx.pm();                              // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
    42
  int v = sx.spm();                             // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    43
06bc494ca11e Initial load
duke
parents:
diff changeset
    44
  pkg.SuperClass.pC  obj1;                      // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    45
  pkg.SuperClass.spC obj2;                      // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    46
06bc494ca11e Initial load
duke
parents:
diff changeset
    47
  pkg.SuperClass.pI  obj3;                      // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    48
  pkg.SuperClass.spI obj4;                      // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    49
06bc494ca11e Initial load
duke
parents:
diff changeset
    50
  Object o1 = (pkg.SuperClass.pC) null;         // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    51
  Object o2 = (pkg.SuperClass.spC) null;        // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    52
06bc494ca11e Initial load
duke
parents:
diff changeset
    53
  Object o3 = (pkg.SuperClass.pI) null;         // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    54
  Object o4 = (pkg.SuperClass.spI) null;        // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    55
06bc494ca11e Initial load
duke
parents:
diff changeset
    56
  class C1 extends pkg.SuperClass.pC {}         // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    57
  class C2 extends pkg.SuperClass.spC {}        // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    58
06bc494ca11e Initial load
duke
parents:
diff changeset
    59
  interface I1 extends pkg.SuperClass.pI {}     // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    60
  interface I2 extends pkg.SuperClass.spI {}    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    61
06bc494ca11e Initial load
duke
parents:
diff changeset
    62
  static {
06bc494ca11e Initial load
duke
parents:
diff changeset
    63
06bc494ca11e Initial load
duke
parents:
diff changeset
    64
    pkg.SuperClass lx = new pkg.SuperClass();
06bc494ca11e Initial load
duke
parents:
diff changeset
    65
06bc494ca11e Initial load
duke
parents:
diff changeset
    66
    sx.pi  = 1;                                 // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
    67
    sx.spi = 2;                                 // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    68
06bc494ca11e Initial load
duke
parents:
diff changeset
    69
    lx.pi  = 1;                                 // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
    70
    lx.spi = 2;                                 // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    71
06bc494ca11e Initial load
duke
parents:
diff changeset
    72
    int n = sx.pi;                              // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
    73
    int m = sx.spi;                             // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    74
06bc494ca11e Initial load
duke
parents:
diff changeset
    75
    int k = lx.pi;                              // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
    76
    int l = lx.spi;                             // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    77
06bc494ca11e Initial load
duke
parents:
diff changeset
    78
    int u = sx.pm();                            // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
    79
    int v = sx.spm();                           // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    80
06bc494ca11e Initial load
duke
parents:
diff changeset
    81
    int w = lx.pm();                            // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
    82
    int z = lx.spm();                           // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    83
06bc494ca11e Initial load
duke
parents:
diff changeset
    84
    pkg.SuperClass.pC  obj1;                    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    85
    pkg.SuperClass.spC obj2;                    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    86
06bc494ca11e Initial load
duke
parents:
diff changeset
    87
    pkg.SuperClass.pI  obj3;                    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    88
    pkg.SuperClass.spI obj4;                    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    89
06bc494ca11e Initial load
duke
parents:
diff changeset
    90
    Object o1 = (pkg.SuperClass.pC) null;       // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    91
    Object o2 = (pkg.SuperClass.spC) null;      // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    92
06bc494ca11e Initial load
duke
parents:
diff changeset
    93
    Object o3 = (pkg.SuperClass.pI) null;       // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    94
    Object o4 = (pkg.SuperClass.spI) null;      // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    95
06bc494ca11e Initial load
duke
parents:
diff changeset
    96
    //class C1 extends pkg.SuperClass.pC {}
06bc494ca11e Initial load
duke
parents:
diff changeset
    97
    class C2 extends pkg.SuperClass.spC {}      // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
    98
06bc494ca11e Initial load
duke
parents:
diff changeset
    99
    //interface I1 extends pkg.SuperClass.pI {}
06bc494ca11e Initial load
duke
parents:
diff changeset
   100
    //interface I2 extends pkg.SuperClass.spI {}
06bc494ca11e Initial load
duke
parents:
diff changeset
   101
06bc494ca11e Initial load
duke
parents:
diff changeset
   102
  }
06bc494ca11e Initial load
duke
parents:
diff changeset
   103
06bc494ca11e Initial load
duke
parents:
diff changeset
   104
  void m() {
06bc494ca11e Initial load
duke
parents:
diff changeset
   105
06bc494ca11e Initial load
duke
parents:
diff changeset
   106
    pkg.SuperClass lx = new pkg.SuperClass();
06bc494ca11e Initial load
duke
parents:
diff changeset
   107
06bc494ca11e Initial load
duke
parents:
diff changeset
   108
    x.pi  = 1;                                  // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   109
    x.spi = 2;                                  // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   110
06bc494ca11e Initial load
duke
parents:
diff changeset
   111
    sx.pi  = 1;                                 // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   112
    sx.spi = 2;                                 // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   113
06bc494ca11e Initial load
duke
parents:
diff changeset
   114
    lx.pi  = 1;                                 // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   115
    lx.spi = 2;                                 // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   116
06bc494ca11e Initial load
duke
parents:
diff changeset
   117
    int t = x.pm();                             // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   118
    int y = x.spm();                            // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   119
06bc494ca11e Initial load
duke
parents:
diff changeset
   120
    int u = sx.pm();                            // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   121
    int v = sx.spm();                           // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   122
06bc494ca11e Initial load
duke
parents:
diff changeset
   123
    int w = lx.pm();                            // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   124
    int z = lx.spm();                           // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   125
06bc494ca11e Initial load
duke
parents:
diff changeset
   126
    int i = x.pi;                               // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   127
    int j = x.spi;                              // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   128
06bc494ca11e Initial load
duke
parents:
diff changeset
   129
    int n = sx.pi;                              // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   130
    int m = sx.spi;                             // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   131
06bc494ca11e Initial load
duke
parents:
diff changeset
   132
    int k = lx.pi;                              // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   133
    int l = lx.spi;                             // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   134
06bc494ca11e Initial load
duke
parents:
diff changeset
   135
    pkg.SuperClass.pC  obj1;                    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   136
    pkg.SuperClass.spC obj2;                    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   137
06bc494ca11e Initial load
duke
parents:
diff changeset
   138
    pkg.SuperClass.pI  obj3;                    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   139
    pkg.SuperClass.spI obj4;                    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   140
06bc494ca11e Initial load
duke
parents:
diff changeset
   141
    Object o1 = (pkg.SuperClass.pC) null;       // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   142
    Object o2 = (pkg.SuperClass.spC) null;      // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   143
06bc494ca11e Initial load
duke
parents:
diff changeset
   144
    Object o3 = (pkg.SuperClass.pI) null;       // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   145
    Object o4 = (pkg.SuperClass.spI) null;      // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   146
06bc494ca11e Initial load
duke
parents:
diff changeset
   147
    class C1 extends pkg.SuperClass.pC {}       // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   148
    class C2 extends pkg.SuperClass.spC {}      // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   149
06bc494ca11e Initial load
duke
parents:
diff changeset
   150
    //interface I1 extends pkg.SuperClass.pI {}
06bc494ca11e Initial load
duke
parents:
diff changeset
   151
    //interface I2 extends pkg.SuperClass.spI {}
06bc494ca11e Initial load
duke
parents:
diff changeset
   152
06bc494ca11e Initial load
duke
parents:
diff changeset
   153
  }
06bc494ca11e Initial load
duke
parents:
diff changeset
   154
06bc494ca11e Initial load
duke
parents:
diff changeset
   155
  class Inner {
06bc494ca11e Initial load
duke
parents:
diff changeset
   156
06bc494ca11e Initial load
duke
parents:
diff changeset
   157
    int i = x.pi;                               // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   158
    int j = x.spi;                              // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   159
06bc494ca11e Initial load
duke
parents:
diff changeset
   160
    int n = sx.pi;                              // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   161
    int m = sx.spi;                             // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   162
06bc494ca11e Initial load
duke
parents:
diff changeset
   163
    //static int sn = sx.pi;
06bc494ca11e Initial load
duke
parents:
diff changeset
   164
    //static int sm = sx.spi;
06bc494ca11e Initial load
duke
parents:
diff changeset
   165
06bc494ca11e Initial load
duke
parents:
diff changeset
   166
    int w = x.pm();                             // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   167
    int y = x.spm();                            // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   168
06bc494ca11e Initial load
duke
parents:
diff changeset
   169
    int u = sx.pm();                            // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   170
    int v = sx.spm();                           // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   171
06bc494ca11e Initial load
duke
parents:
diff changeset
   172
    pkg.SuperClass.pC  obj1;                    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   173
    pkg.SuperClass.spC obj2;                    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   174
06bc494ca11e Initial load
duke
parents:
diff changeset
   175
    pkg.SuperClass.pI  obj3;                    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   176
    pkg.SuperClass.spI obj4;                    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   177
06bc494ca11e Initial load
duke
parents:
diff changeset
   178
    Object o1 = (pkg.SuperClass.pC) null;       // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   179
    Object o2 = (pkg.SuperClass.spC) null;      // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   180
06bc494ca11e Initial load
duke
parents:
diff changeset
   181
    Object o3 = (pkg.SuperClass.pI) null;       // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   182
    Object o4 = (pkg.SuperClass.spI) null;      // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   183
06bc494ca11e Initial load
duke
parents:
diff changeset
   184
    class C1 extends pkg.SuperClass.pC {}       // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   185
    class C2 extends pkg.SuperClass.spC {}      // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   186
06bc494ca11e Initial load
duke
parents:
diff changeset
   187
    //interface I1 extends pkg.SuperClass.pI {}
06bc494ca11e Initial load
duke
parents:
diff changeset
   188
    //interface I2 extends pkg.SuperClass.spI {}
06bc494ca11e Initial load
duke
parents:
diff changeset
   189
06bc494ca11e Initial load
duke
parents:
diff changeset
   190
    // Not allowed in inner classes.
06bc494ca11e Initial load
duke
parents:
diff changeset
   191
    // static { ... }
06bc494ca11e Initial load
duke
parents:
diff changeset
   192
06bc494ca11e Initial load
duke
parents:
diff changeset
   193
    void m() {
06bc494ca11e Initial load
duke
parents:
diff changeset
   194
06bc494ca11e Initial load
duke
parents:
diff changeset
   195
      pkg.SuperClass lx = new pkg.SuperClass();
06bc494ca11e Initial load
duke
parents:
diff changeset
   196
06bc494ca11e Initial load
duke
parents:
diff changeset
   197
      x.pi  = 1;                                // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   198
      x.spi = 2;                                // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   199
06bc494ca11e Initial load
duke
parents:
diff changeset
   200
      sx.pi  = 1;                               // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   201
      sx.spi = 2;                               // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   202
06bc494ca11e Initial load
duke
parents:
diff changeset
   203
      lx.pi  = 1;                               // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   204
      lx.spi = 2;                               // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   205
06bc494ca11e Initial load
duke
parents:
diff changeset
   206
      int t = x.pm();                           // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   207
      int y = x.spm();                          // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   208
06bc494ca11e Initial load
duke
parents:
diff changeset
   209
      int u = sx.pm();                          // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   210
      int v = sx.spm();                         // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   211
06bc494ca11e Initial load
duke
parents:
diff changeset
   212
      int w = lx.pm();                          // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   213
      int z = lx.spm();                         // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   214
06bc494ca11e Initial load
duke
parents:
diff changeset
   215
      int i = x.pi;                             // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   216
      int j = x.spi;                            // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   217
06bc494ca11e Initial load
duke
parents:
diff changeset
   218
      int n = sx.pi;                            // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   219
      int m = sx.spi;                           // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   220
06bc494ca11e Initial load
duke
parents:
diff changeset
   221
      int k = lx.pi;                            // illegal
06bc494ca11e Initial load
duke
parents:
diff changeset
   222
      int l = lx.spi;                           // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   223
06bc494ca11e Initial load
duke
parents:
diff changeset
   224
      pkg.SuperClass.pC  obj1;                  // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   225
      pkg.SuperClass.spC obj2;                  // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   226
06bc494ca11e Initial load
duke
parents:
diff changeset
   227
      pkg.SuperClass.pI  obj3;                  // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   228
      pkg.SuperClass.spI obj4;                  // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   229
06bc494ca11e Initial load
duke
parents:
diff changeset
   230
      Object o1 = (pkg.SuperClass.pC) null;     // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   231
      Object o2 = (pkg.SuperClass.spC) null;    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   232
06bc494ca11e Initial load
duke
parents:
diff changeset
   233
      Object o3 = (pkg.SuperClass.pI) null;     // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   234
      Object o4 = (pkg.SuperClass.spI) null;    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   235
06bc494ca11e Initial load
duke
parents:
diff changeset
   236
      class C1 extends pkg.SuperClass.pC {}     // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   237
      class C2 extends pkg.SuperClass.spC {}    // ok
06bc494ca11e Initial load
duke
parents:
diff changeset
   238
06bc494ca11e Initial load
duke
parents:
diff changeset
   239
      //interface I1 extends pkg.SuperClass.pI {}
06bc494ca11e Initial load
duke
parents:
diff changeset
   240
      //interface I2 extends pkg.SuperClass.spI {}
06bc494ca11e Initial load
duke
parents:
diff changeset
   241
06bc494ca11e Initial load
duke
parents:
diff changeset
   242
    }
06bc494ca11e Initial load
duke
parents:
diff changeset
   243
06bc494ca11e Initial load
duke
parents:
diff changeset
   244
  }
06bc494ca11e Initial load
duke
parents:
diff changeset
   245
06bc494ca11e Initial load
duke
parents:
diff changeset
   246
}