Skip to content

Commit be44c8c

Browse files
authored
Merge pull request #215 from moosetechnology/quick-fix
Managing the resolution of a procedure's parameter pointers
2 parents 2437224 + 102dbf6 commit be44c8c

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

src/EsopeImporter-Tests/FamixEsopeResolverTest.class.st

+32
Original file line numberDiff line numberDiff line change
@@ -1292,6 +1292,38 @@ FamixEsopeResolverTest >> testResolveInvocationsWrongArgumentNumber [
12921292
self assert: invocation candidates size equals: 0
12931293
]
12941294

1295+
{ #category : 'tests' }
1296+
FamixEsopeResolverTest >> testResolvePointeurParameter [
1297+
1298+
| sub entity var |
1299+
"
1300+
subroutine relbk(lib)
1301+
pointeur lib.PSTR
1302+
end
1303+
"
1304+
var := self newEntity: FamixF77Variable named: 'p'.
1305+
var segment: 'point'.
1306+
var isEsope: true.
1307+
1308+
sub := (self newPU: 'relbk')
1309+
addParameter: (self defaultParameter: 'p');
1310+
addLocalVariable: var;
1311+
yourself.
1312+
1313+
resolver resolve.
1314+
1315+
self assert: sub localVariables size equals: 0.
1316+
self assert: (resolver model allWithType: FamixF77Variable) isEmpty.
1317+
1318+
self assert: sub parameters size equals: 1.
1319+
1320+
entity := sub parameters anyOne.
1321+
self assert: entity declaredType class equals: FamixEsopeSegment.
1322+
self assert: entity declaredType name equals: 'point'.
1323+
self assert: entity declaredType isStub
1324+
1325+
]
1326+
12951327
{ #category : 'test - resolveAccess' }
12961328
FamixEsopeResolverTest >> testResolvePointeurWithDeclaredSegmentAccessingField [
12971329

src/EsopeImporter/FamixEsopeResolver.class.st

+4-1
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,9 @@ FamixEsopeResolver >> requalifyParameterDeclaration: param [
202202
do: [ :varDeclaration |
203203
(varDeclaration = param)
204204
ifFalse: [
205+
varDeclaration declaredType
206+
ifNil: [ self resolveDeclaredTypeOfPointers ].
207+
205208
param declaredType: varDeclaration declaredType.
206209
self mergeVariable: varDeclaration into: param
207210
]
@@ -295,7 +298,7 @@ FamixEsopeResolver >> resolveAsImplicitAttribute: variableName in: anAccessor [
295298
FamixEsopeResolver >> resolveAsLocalVariable: variableName in: anAccessor [
296299

297300
^anAccessor allLocalVariables
298-
select: [ :entity | entity name = variableName ]
301+
select: [ :entity | entity name asLowercase = variableName asLowercase ]
299302
]
300303

301304
{ #category : 'symbols resolution' }

0 commit comments

Comments
 (0)