Skip to content

Commit 0b886e9

Browse files
committed
GROOVY-9608: add test case
1 parent eac1a43 commit 0b886e9

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
package groovy.bugs
20+
21+
import org.junit.Test
22+
23+
import static groovy.test.GroovyAssert.assertScript
24+
25+
final class Groovy9608 {
26+
27+
@Test
28+
void testGetFieldOnSuper() {
29+
assertScript '''
30+
import org.codehaus.groovy.runtime.ScriptBytecodeAdapter
31+
32+
class A {
33+
public x = 'A'
34+
}
35+
class B extends A {
36+
public x = 'B'
37+
}
38+
39+
def a = new A()
40+
def ax = a.metaClass.getAttribute(A, a, 'x', false)
41+
assert ax == 'A'
42+
43+
def b = new B()
44+
def bx = b.metaClass.getAttribute(B, b, 'x', false)
45+
assert bx == 'B'
46+
47+
try {
48+
def bSuperX = b.metaClass.getAttribute(A, b, 'x', true)
49+
assert bSuperX == 'A'
50+
bSuperX = ScriptBytecodeAdapter.getFieldOnSuper(A, b, 'x')
51+
assert bSuperX == 'A'
52+
} catch (MissingFieldException e) {
53+
// TODO: Why can't these read public/protected field from super?
54+
}
55+
'''
56+
}
57+
}

0 commit comments

Comments
 (0)