Skip to content

Commit 6816270

Browse files
committed
Issue #63 - Corrected finding Impl constructor.
1 parent eaf68ea commit 6816270

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

org.modeldriven.alf/src/org/modeldriven/alf/syntax/expressions/impl/InstanceCreationExpressionImpl.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -171,17 +171,19 @@ protected ElementReference deriveReferent() {
171171
// "Impl" inserted and resolving it makes sure
172172
// that all template bindings are handled
173173
// correctly.
174-
implConstructor = qualification.getQualification();
174+
implConstructor =
175+
qualification.getImpl().copy().getQualification();
175176
if (implConstructor == null) {
176177
implConstructor = new QualifiedName();
177178
implConstructor.getImpl().
178179
setCurrentScope(namespaceDefinition);
179180
}
180181
implConstructor.getImpl().addName("Impl").
181-
addNameBinding(qualification.getUnqualifiedName());
182+
addNameBinding(qualification.getUnqualifiedName());
182183
}
183184

184-
implConstructor.addNameBinding(unqualifiedName);
185+
implConstructor.addNameBinding(unqualifiedName);
186+
implConstructor.getImpl().setIsVisibleOnly(false);
185187
ElementReference implOperationReferent =
186188
implConstructor.getImpl().getOperationReferent();
187189

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
package Library {
2-
public abstract class Class {
3-
@Create public Class() { }
4-
}
5-
6-
private package Impl {
7-
public class Class specializes Library::Class {
8-
@Create public Class() redefines Library::Class::Class { }
1+
package Library_Impl {
2+
public package Library {
3+
public abstract class Class {
4+
@Create public Class() { }
95
}
6+
7+
private package Impl {
8+
public class Class specializes Library::Class {
9+
@Create public Class() redefines Library::Class::Class { }
10+
}
11+
}
1012
}
1113

12-
public activity Instantiate(): Class {
13-
return new Class();
14+
public activity Instantiate(): Library::Class {
15+
return new Library::Class();
1416
}
1517
}

0 commit comments

Comments
 (0)