Skip to content

Commit eada3d5

Browse files
committed
fixed handling of star imports
1 parent ed56ef5 commit eada3d5

14 files changed

+68
-39
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## dev branch / next version (2.x.x)
44

5+
## 2.1.4 (2022-05-02)
6+
7+
- fixed handling of star imports
8+
59
## 2.1.3 (2022-05-01)
610

711
- fixed package renaming

haxelib.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
"refactor"
99
],
1010
"description": "A code renaming tool for Haxe",
11-
"version": "2.1.3",
12-
"releasenote": "fixed package renaming",
11+
"version": "2.1.4",
12+
"releasenote": "fixed handling of star imports",
1313
"contributors": [
1414
"AlexHaxe"
1515
],

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@haxecheckstyle/haxe-rename",
3-
"version": "2.1.3",
3+
"version": "2.1.4",
44
"description": "Renaming tool for Haxe",
55
"repository": {
66
"type": "git",

src/refactor/discover/File.hx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,10 @@ class File {
4242
}
4343
var fullModule:String = '$packName.$moduleName';
4444
var fullSubModule:Null<String> = null;
45+
var isMainModule:Bool = true;
4546
if (moduleName != typeName) {
4647
fullSubModule = '$fullModule.$typeName';
48+
isMainModule = false;
4749
}
4850
for (importEntry in importList) {
4951
if (importEntry.moduleName.name == fullModule) {
@@ -58,6 +60,11 @@ class File {
5860
}
5961
return Imported;
6062
}
63+
if (isMainModule && importEntry.starImport) {
64+
if (importEntry.moduleName.name == packName) {
65+
return StarImported;
66+
}
67+
}
6168
}
6269

6370
if (importHxFile == null) {
@@ -152,4 +159,5 @@ enum ImportStatus {
152159
SamePackage;
153160
Imported;
154161
ImportedWithAlias(alias:String);
162+
StarImported;
155163
}

src/refactor/rename/RenameAnonStructField.hx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class RenameAnonStructField {
6060
switch (use.file.importsModule(packName, mainModuleName, type.name.name)) {
6161
case None:
6262
continue;
63-
case Global | SamePackage | Imported | ImportedWithAlias(_):
63+
case Global | SamePackage | Imported | ImportedWithAlias(_) | StarImported:
6464
}
6565
changelist.addChange(use.pos.fileName, ReplaceText(context.what.toName, use.pos), use);
6666
}
@@ -140,7 +140,7 @@ class RenameAnonStructField {
140140
switch (baseTypeName.file.importsModule(use.file.getPackage(), use.file.getMainModulName(), baseTypeName.name)) {
141141
case None:
142142
continue;
143-
case Global | SamePackage | Imported | ImportedWithAlias(_):
143+
case Global | SamePackage | Imported | ImportedWithAlias(_) | StarImported:
144144
}
145145
return use.defineType;
146146
}

src/refactor/rename/RenameEnumField.hx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ class RenameEnumField {
2424
if (alias != typeName) {
2525
continue;
2626
}
27-
case Global:
28-
case SamePackage:
29-
case Imported:
27+
case Global | SamePackage | Imported | StarImported:
3028
}
3129
RenameHelper.replaceTextWithPrefix(use, typeName, context.what.toName, changelist);
3230
}
@@ -65,7 +63,7 @@ class RenameEnumField {
6563
if (alias != typeName) {
6664
continue;
6765
}
68-
case Global | SamePackage | Imported:
66+
case Global | SamePackage | Imported | StarImported:
6967
}
7068
default:
7169
continue;

src/refactor/rename/RenameField.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ class RenameField {
122122
continue;
123123
case ImportedWithAlias(_):
124124
continue;
125-
case Global | SamePackage | Imported:
125+
case Global | SamePackage | Imported | StarImported:
126126
}
127127
RenameHelper.replaceTextWithPrefix(use, '${type.name.name}.', context.what.toName, changelist);
128128
}

src/refactor/rename/RenameHelper.hx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class RenameHelper {
5353
var search:String = switch (use.file.importsModule(baseType.file.getPackage(), baseType.file.getMainModulName(), baseType.name.name)) {
5454
case None:
5555
continue;
56-
case Global | SamePackage | Imported:
56+
case Global | SamePackage | Imported | StarImported:
5757
baseType.name.name;
5858
case ImportedWithAlias(alias):
5959
alias;
@@ -316,7 +316,7 @@ class RenameHelper {
316316
switch (type.file.importsModule(candidate.file.getPackage(), candidate.file.getMainModulName(), candidate.name.name)) {
317317
case None:
318318
case ImportedWithAlias(_):
319-
case Global | SamePackage | Imported:
319+
case Global | SamePackage | Imported | StarImported:
320320
return candidate;
321321
}
322322
}
@@ -359,7 +359,7 @@ class RenameHelper {
359359
switch (hint.file.importsModule(type.file.getPackage(), type.file.getMainModulName(), type.name.name)) {
360360
case None:
361361
case ImportedWithAlias(_):
362-
case Global | SamePackage | Imported:
362+
case Global | SamePackage | Imported | StarImported:
363363
return Promise.resolve(KnownType(type, typeParams));
364364
}
365365
}

src/refactor/rename/RenamePackage.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class RenamePackage {
6464
}
6565
switch (use.file.importsModule(packageName, mainTypeName, mainTypeName)) {
6666
case None:
67-
case Global | SamePackage:
67+
case Global | SamePackage | StarImported:
6868
var importPos:IdentifierPos = {fileName: use.pos.fileName, start: use.file.importInsertPos, end: use.file.importInsertPos}
6969
changelist.addChange(use.pos.fileName, InsertText('import $newMainModulName;\n', importPos), use);
7070
uniqueFiles.push(use.pos.fileName);

src/refactor/rename/RenameTypeName.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ class RenameTypeName {
5151
if (alias != identifier.name) {
5252
continue;
5353
}
54-
case Global | SamePackage | Imported:
54+
case Global | SamePackage | Imported | StarImported:
5555
}
5656
changes.push(RenameHelper.findTypeOfIdentifier(context, {
5757
name: use.name,

test/refactor/ClassTest.hx

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ class ClassTest extends TestBase {
2121
makeReplaceTestEdit("testcases/classes/BaseClass.hx", "addData", 121, 132),
2222
makeReplaceTestEdit("testcases/classes/ChildClass.hx", "addData", 145, 156),
2323
makeReplaceTestEdit("testcases/classes/ChildClass.hx", "addData", 187, 198),
24-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "addData", 239, 250),
25-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "addData", 355, 366),
26-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "addData", 464, 475),
27-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "addData", 652, 663),
24+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "addData", 228, 239),
25+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "addData", 344, 355),
26+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "addData", 453, 464),
27+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "addData", 641, 652),
2828
];
2929
refactorAndCheck({fileName: "testcases/classes/BaseClass.hx", toName: "addData", pos: 128}, edits, async);
3030
}
@@ -71,14 +71,13 @@ class ClassTest extends TestBase {
7171
makeReplaceTestEdit("testcases/classes/pack/SecondChildHelper.hx", "ItemClass", 38, 48),
7272
makeReplaceTestEdit("testcases/classes/pack/SecondChildHelper.hx", "ItemClass", 111, 121),
7373
makeReplaceTestEdit("testcases/classes/pack/SecondChildHelper.hx", "ItemClass", 163, 173),
74-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 38, 48),
75-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 67, 77),
76-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 143, 153),
77-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 210, 220),
78-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 299, 309),
79-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 423, 433),
80-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 510, 520),
81-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 623, 633),
74+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 56, 66),
75+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 132, 142),
76+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 199, 209),
77+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 288, 298),
78+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 412, 422),
79+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 499, 509),
80+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ItemClass", 612, 622),
8281
];
8382
refactorAndCheck({fileName: "testcases/classes/ChildClass.hx", toName: "ItemClass", pos: 28}, edits, async);
8483
}
@@ -91,16 +90,15 @@ class ClassTest extends TestBase {
9190
makeInsertTestEdit("testcases/classes/EnumType.hx", "import classes.pack.ChildClass;\n", 18),
9291
makeInsertTestEdit("testcases/classes/StaticUsing.hx", "import classes.pack.ChildClass;\n", 18),
9392
makeReplaceTestEdit("testcases/classes/pack/SecondChildHelper.hx", "classes.pack.ChildClass", 30, 48),
94-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "classes.pack.ChildClass", 30, 48),
95-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "classes.pack.ChildClass", 59, 77),
93+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "classes.pack.ChildClass", 48, 66),
9694
];
9795
refactorAndCheck({fileName: "testcases/classes/ChildClass.hx", toName: "classes.pack", pos: 10}, edits, async);
9896
}
9997

10098
public function testRenameTypedef(async:Async) {
10199
var edits:Array<TestEdit> = [
102100
makeReplaceTestEdit("testcases/classes/ChildClass.hx", "ChildList", 868, 880),
103-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ChildList", 107, 119),
101+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "ChildList", 96, 108),
104102
];
105103
refactorAndCheck({fileName: "testcases/classes/ChildClass.hx", toName: "ChildList", pos: 872}, edits, async);
106104
}
@@ -109,6 +107,7 @@ class ClassTest extends TestBase {
109107
var edits:Array<TestEdit> = [
110108
makeReplaceTestEdit("testcases/classes/ChildHelper.hx", "sumChilds", 62, 65),
111109
makeReplaceTestEdit("testcases/classes/StaticUsing.hx", "sumChilds", 182, 185),
110+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "sumChilds", 706, 709),
112111
];
113112
refactorAndCheck({fileName: "testcases/classes/ChildHelper.hx", toName: "sumChilds", pos: 64}, edits, async);
114113
}
@@ -135,11 +134,11 @@ class ClassTest extends TestBase {
135134
var edits:Array<TestEdit> = [
136135
makeReplaceTestEdit("testcases/classes/ChildClass.hx", "parentBase", 67, 73),
137136
makeReplaceTestEdit("testcases/classes/ChildHelper.hx", "parentBase", 310, 316),
138-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "parentBase", 232, 238),
139-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "parentBase", 348, 354),
140-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "parentBase", 457, 463),
141-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "parentBase", 566, 572),
142-
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "parentBase", 645, 651),
137+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "parentBase", 221, 227),
138+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "parentBase", 337, 343),
139+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "parentBase", 446, 452),
140+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "parentBase", 555, 561),
141+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "parentBase", 634, 640),
143142
];
144143
refactorAndCheck({fileName: "testcases/classes/ChildClass.hx", toName: "parentBase", pos: 69}, edits, async);
145144
}
@@ -176,6 +175,19 @@ class ClassTest extends TestBase {
176175
refactorAndCheck({fileName: "testcases/classes/JsonClass.hx", toName: "jsonWidth", pos: 74}, edits, async);
177176
}
178177

178+
public function testRenameJsonClass(async:Async) {
179+
var edits:Array<TestEdit> = [
180+
makeMoveTestEdit("testcases/classes/JsonClass.hx", "testcases/classes/JsonImporter.hx"),
181+
makeReplaceTestEdit("testcases/classes/JsonClass.hx", "JsonImporter", 24, 33),
182+
makeReplaceTestEdit("testcases/classes/JsonClass.hx", "JsonImporter", 276, 285),
183+
makeReplaceTestEdit("testcases/classes/JsonClass.hx", "JsonImporter", 287, 296),
184+
makeReplaceTestEdit("testcases/classes/JsonClass.hx", "JsonImporter", 319, 328),
185+
makeReplaceTestEdit("testcases/classes/JsonClass.hx", "JsonImporter", 336, 345),
186+
makeReplaceTestEdit("testcases/classes/pack/UseChild.hx", "JsonImporter", 744, 753),
187+
];
188+
refactorAndCheck({fileName: "testcases/classes/JsonClass.hx", toName: "JsonImporter", pos: 28}, edits, async);
189+
}
190+
179191
public function testRenameBaseClassParamterWithShadow(async:Async) {
180192
var edits:Array<TestEdit> = [
181193
makeReplaceTestEdit("testcases/classes/BaseClass.hx", "data", 227, 228),
@@ -198,7 +210,7 @@ class ClassTest extends TestBase {
198210

199211
public function testRenameUseChildClassParentSubPart(async:Async) {
200212
var edits:Array<TestEdit> = [];
201-
failRefactor({fileName: "testcases/classes/UseChild.hx", toName: "data", pos: 233}, "could not find identifier to rename", async);
213+
failRefactor({fileName: "testcases/classes/UseChild.hx", toName: "data", pos: 222}, "could not find identifier to rename", async);
202214
}
203215

204216
public function testRenameBaseClassDataToData(async:Async) {

testcases/classes/import.hx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
package classes;
22

33
import refactor.discover.Identifier;
4+
import classes.*;

testcases/classes/pack/UseChild.hx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package classes.pack;
22

3-
import classes.ChildClass.*;
3+
import classes.*;
44
import classes.ChildClass;
55

66
class UseChild {
@@ -38,4 +38,10 @@ class UseChild {
3838
child.parent.doSomething([]);
3939
}
4040
#end
41+
42+
function helperSum() {
43+
ChildHelper.sum(list[0]);
44+
}
45+
46+
function json(json:JsonClass) {}
4147
}

0 commit comments

Comments
 (0)