fixed access to private outer class methods with params

This commit is contained in:
Egor.Ushakov
2017-01-23 18:07:50 +03:00
parent 85f61bee81
commit 45384fb8c5
6 changed files with 109 additions and 5 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,69 @@
package pkg;
public class TestAccessReplace {
private static void fooS() {
}// 19
private void foo() {
}// 20
private static void fooSParams(long a, long b) {
}// 21
private void fooParams(long a, long b) {
}// 22
public class Inner {
public Inner(String b) {
TestAccessReplace.fooS();// 25
TestAccessReplace.this.foo();
TestAccessReplace.fooSParams(1L, 2L);// 28
TestAccessReplace.this.fooParams(1L, 2L);// 29
}// 30
}
}
class 'pkg/TestAccessReplace' {
method 'fooS ()V' {
0 4
}
method 'foo ()V' {
0 7
}
method 'fooSParams (JJ)V' {
0 10
}
method 'fooParams (JJ)V' {
0 13
}
}
class 'pkg/TestAccessReplace$Inner' {
method '<init> (Lpkg/TestAccessReplace;Ljava/lang/String;)V' {
0 17
1 18
2 19
3 20
10 19
11 19
18 20
19 20
1f 21
}
}
Lines mapping:
19 <-> 5
20 <-> 8
21 <-> 11
22 <-> 14
25 <-> 18
28 <-> 20
29 <-> 21
30 <-> 22
Not mapped:
26
27

View File

@@ -0,0 +1,32 @@
/*
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package pkg;
public class TestAccessReplace {
private static void fooS() {};
private void foo() {};
private static void fooSParams(long a, long b) {};
private void fooParams(long a, long b) {};
public class Inner {
public Inner(String b) {
fooS();
foo();
fooSParams(1,2);
fooParams(1,2);
}
}
}