diff --git a/CHANGELOG.md b/CHANGELOG.md
index 414146639..9aa99d0da 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ All notable changes to this project will be documented in this file.
- #1088 ECMA Number to string conversion
- AS3 getslot/setslot in certain situations
- #1185 AS3 Incorrect imports in obfuscated files
+- #1186 Missing import when item is fully qualified
## [13.0.1] - 2021-02-09
### Fixed
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/Trait.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/Trait.java
index 57478c668..ace55aa30 100644
--- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/Trait.java
+++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/traits/Trait.java
@@ -232,8 +232,6 @@ public abstract class Trait implements Cloneable, Serializable {
}
String name = ipath.getLast();
if (importnames.contains(name)) {
- imports.remove(i);
- i--;
fullyQualifiedNames.add(DottedChain.parseWithSuffix(name));
} else {
importnames.add(name);
diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassTest.java
index a53c75a05..a61b4e63b 100644
--- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassTest.java
+++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassTest.java
@@ -294,4 +294,31 @@ public class ActionScript3ClassTest extends ActionScript3DecompileTestBase {
+ " trace(globalVar2);\n"
+ "}");
}
+
+ @Test
+ public void testImports() {
+ decompileScriptPack("standard", "tests_classes.TestImports", "package tests_classes\n"
+ + "{\n"
+ + " import tests_classes.myjson.JSON;\n"
+ + " import tests_classes.myjson2.JSON;\n"
+ + " \n"
+ + " public class TestImports\n"
+ + " {\n"
+ + " \n"
+ + " \n"
+ + " public function TestImports()\n"
+ + " {\n"
+ + " super();\n"
+ + " }\n"
+ + " \n"
+ + " public function run() : *\n"
+ + " {\n"
+ + " var j1:tests_classes.myjson.JSON = new tests_classes.myjson.JSON();\n"
+ + " var j2:tests_classes.myjson2.JSON = new tests_classes.myjson2.JSON();\n"
+ + " trace(j1);\n"
+ + " trace(j2);\n"
+ + " }\n"
+ + " }\n"
+ + "}");
+ }
}
diff --git a/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf b/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf
index f7cd67ba2..dde138f64 100644
Binary files a/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf and b/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf differ
diff --git a/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.flex.swf b/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.flex.swf
index 7a1fd3e0c..e6592f93c 100644
Binary files a/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.flex.swf and b/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.flex.swf differ
diff --git a/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.old b/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.old
index 3182c7cb8..c4f2d0660 100644
--- a/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.old
+++ b/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.old
@@ -16,7 +16,7 @@
CONFIG::timeStamp
- '09.02.2021'
+ '10.02.2021'
CONFIG::air
diff --git a/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.xml b/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.xml
index 3182c7cb8..c4f2d0660 100644
--- a/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.xml
+++ b/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.xml
@@ -16,7 +16,7 @@
CONFIG::timeStamp
- '09.02.2021'
+ '10.02.2021'
CONFIG::air
diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/Main.as b/libsrc/ffdec_lib/testdata/as3_new/src/Main.as
index 44567da15..f1e52ac78 100644
--- a/libsrc/ffdec_lib/testdata/as3_new/src/Main.as
+++ b/libsrc/ffdec_lib/testdata/as3_new/src/Main.as
@@ -7,6 +7,7 @@ package
import tests_classes.mypackage2.SetupMyPackage2;
import tests_classes.mypackage3.SetupMyPackage3;
import tests_classes.TestThisOutsideClass;
+ import tests_classes.TestImports;
/**
* ...
@@ -81,7 +82,6 @@ package
TestSwitchComma;
TestSwitchDefault;
TestTernarOperator;
- TestThisOutsideClass;
TestTry;
TestTryIf;
TestTryReturn;
@@ -100,6 +100,9 @@ package
SetupMyPackage2;
SetupMyPackage3;
+ TestThisOutsideClass;
+ TestImports;
+
public function Main()
{
if (stage) init();
diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/TestImports.as b/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/TestImports.as
new file mode 100644
index 000000000..0d046ba76
--- /dev/null
+++ b/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/TestImports.as
@@ -0,0 +1,16 @@
+package tests_classes
+{
+ import tests_classes.myjson.JSON;
+ import tests_classes.myjson2.JSON;
+
+ public class TestImports
+ {
+ public function run():*
+ {
+ var j1:tests_classes.myjson.JSON = new tests_classes.myjson.JSON();
+ var j2:tests_classes.myjson2.JSON = new tests_classes.myjson2.JSON();
+ trace(j1);
+ trace(j2);
+ }
+ }
+}
diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/myjson/JSON.as b/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/myjson/JSON.as
new file mode 100644
index 000000000..4119712fe
--- /dev/null
+++ b/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/myjson/JSON.as
@@ -0,0 +1,17 @@
+package tests_classes.myjson
+{
+ /**
+ * ...
+ * @author JPEXS
+ */
+ public class JSON
+ {
+
+ public function JSON()
+ {
+
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/myjson2/JSON.as b/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/myjson2/JSON.as
new file mode 100644
index 000000000..473096504
--- /dev/null
+++ b/libsrc/ffdec_lib/testdata/as3_new/src/tests_classes/myjson2/JSON.as
@@ -0,0 +1,17 @@
+package tests_classes.myjson2
+{
+ /**
+ * ...
+ * @author JPEXS
+ */
+ public class JSON
+ {
+
+ public function JSON()
+ {
+
+ }
+
+ }
+
+}
\ No newline at end of file