Bug #6963
Incorrect conversion of legacy class constructors with an unknown argument of object type
Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
Due date:
% Done:
0%
billable:
No
vendor_id:
GCD
case_num:
Related issues
History
#1 Updated by Vladimir Tsichevski over 1 year ago
If an unknown value is passed an an argument to a class constructor, the conversion produces an correct call.
The legacy class:
CLASS unittests.SampleClassConstructors : CONSTRUCTOR PUBLIC SampleClassConstructors ( arg1 AS CHARACTER, o1 AS Progress.Lang.Object, o2 AS Progress.Lang.Object): END. END.
The test program ABLUnit
:
USING OpenEdge.Core.Assert. USING unittests.SampleClassConstructors. ROUTINE-LEVEL ON ERROR UNDO, THROW. CLASS unittests.TestClassConstructorObject : DEFINE PRIVATE VARIABLE object1 AS Progress.Lang.Object NO-UNDO. DEFINE PRIVATE VARIABLE object2 AS Progress.Lang.Object NO-UNDO. @Before. METHOD PUBLIC VOID BeforeClass(): object1 = NEW Progress.Lang.Object(). object2 = NEW Progress.Lang.Object(). END METHOD. @Test. METHOD PUBLIC VOID TestObject1 (): Assert:NotNull(NEW SampleClassConstructors("abcd", ?, object2)). END METHOD. @Test. METHOD PUBLIC VOID TestObject2 (): Assert:NotNull(NEW SampleClassConstructors("abcd", object1, ?)). END METHOD. END.
The conversion result:
@LegacySignature(type = Type.METHOD, name = "TestObject1") @Test public void testObject1() { internalProcedure(TestClassConstructorObject.class, this, "TestObject1", new Block((Body) () -> { Assert.notNull(ObjectOps.newInstance(SampleClassConstructors.class, "III", "abcd", object2)); })); } @LegacySignature(type = Type.METHOD, name = "TestObject2") @Test public void testObject2() { internalProcedure(TestClassConstructorObject.class, this, "TestObject2", new Block((Body) () -> { Assert.notNull(ObjectOps.newInstance(SampleClassConstructors.class, "III", "abcd", object1)); })); }
Note: the unknown arguments are just missing in Java calls to ObjectOps.newInstance
.
#3 Updated by Constantin Asofiei about 1 year ago
- Project changed from Conversion Tools to Base Language
#4 Updated by Constantin Asofiei about 1 year ago
- Related to Bug #7315: unknown literal passed as an argument to a 'object' parameter added