From e4e6724bc4b7d7d6d8508e4de1c9efe366ca652f Mon Sep 17 00:00:00 2001 From: anquetil Date: Thu, 16 Nov 2023 11:02:53 +0100 Subject: [PATCH] unskipped previous tests + added tests for return qualified names + removed hack in importer's #visitReturnStatement: --- ...JavaSmaCCLocalVariableIntegerTest.class.st | 2 +- ...avaSmaCCReturnAttributeAccessTest.class.st | 7 ++-- .../JavaSmaCCReturnTest.class.st | 34 +++++++++++++++++-- ...vaSmaCCProgramNodeImporterVisitor.class.st | 10 +++--- .../FASTJavaExportVisitorTest.class.st | 2 -- 5 files changed, 38 insertions(+), 17 deletions(-) diff --git a/src/FAST-Java-SmaCC-Importer-Tests/JavaSmaCCLocalVariableIntegerTest.class.st b/src/FAST-Java-SmaCC-Importer-Tests/JavaSmaCCLocalVariableIntegerTest.class.st index e9dfac1..0a76f8d 100644 --- a/src/FAST-Java-SmaCC-Importer-Tests/JavaSmaCCLocalVariableIntegerTest.class.st +++ b/src/FAST-Java-SmaCC-Importer-Tests/JavaSmaCCLocalVariableIntegerTest.class.st @@ -32,7 +32,7 @@ JavaSmaCCLocalVariableIntegerTest >> testReturnStatementExpressionName [ { #category : #tests } JavaSmaCCLocalVariableIntegerTest >> testReturnStatementExpressionType [ - self assert: fastMethod statementBlock statements second expression class equals: FASTJavaIdentifier. + self assert: fastMethod statementBlock statements second expression class equals: FASTJavaVariableExpression. ] { #category : #tests } diff --git a/src/FAST-Java-SmaCC-Importer-Tests/JavaSmaCCReturnAttributeAccessTest.class.st b/src/FAST-Java-SmaCC-Importer-Tests/JavaSmaCCReturnAttributeAccessTest.class.st index a01299f..84d50d8 100644 --- a/src/FAST-Java-SmaCC-Importer-Tests/JavaSmaCCReturnAttributeAccessTest.class.st +++ b/src/FAST-Java-SmaCC-Importer-Tests/JavaSmaCCReturnAttributeAccessTest.class.st @@ -12,13 +12,10 @@ JavaSmaCCReturnAttributeAccessTest >> javaMethod [ ] { #category : #tests } -JavaSmaCCReturnAttributeAccessTest >> testReturnStatementExpressionType [ - - self skip: 'need work, skipping to let CI pass'. - +JavaSmaCCReturnAttributeAccessTest >> testReturnExpressionType [ self assert: (fastModel allWithType: FASTJavaReturnStatement) anyOne expression class - equals: FASTJavaQualifiedName + equals: FASTJavaQualifiedName ] { #category : #tests } diff --git a/src/FAST-Java-SmaCC-Importer-Tests/JavaSmaCCReturnTest.class.st b/src/FAST-Java-SmaCC-Importer-Tests/JavaSmaCCReturnTest.class.st index 602f5b8..8ed5abb 100644 --- a/src/FAST-Java-SmaCC-Importer-Tests/JavaSmaCCReturnTest.class.st +++ b/src/FAST-Java-SmaCC-Importer-Tests/JavaSmaCCReturnTest.class.st @@ -13,10 +13,38 @@ JavaSmaCCReturnTest >> javaMethod [ { #category : #tests } JavaSmaCCReturnTest >> testIdentifierInModelSize [ - self assert: (fastModel allWithType: FASTJavaVariableExpression) size equals: 1 + self assert: (fastModel allWithType: FASTJavaVariableExpression) size equals: 2 ] { #category : #tests } -JavaSmaCCReturnTest >> testNamedEntityInModelSize [ - self assert: (fastModel allWithType: FASTJavaVariableExpression) size equals: 1 +JavaSmaCCReturnTest >> testParameterName [ + self + assert: (fastModel allWithType: FASTJavaParameter) anyOne variable name + equals: 'i' +] + +{ #category : #tests } +JavaSmaCCReturnTest >> testParameterNumber [ + self assert: (fastModel allWithType: FASTJavaParameter) size equals: 1 +] + +{ #category : #tests } +JavaSmaCCReturnTest >> testReturnExpressionType [ + self + assert: (fastModel allWithType: FASTJavaReturnStatement) anyOne expression class + equals: FASTJavaVariableExpression +] + +{ #category : #tests } +JavaSmaCCReturnTest >> testReturnStatementNumber [ + self + assert: (fastModel allWithType: FASTJavaReturnStatement) size + equals: 1 +] + +{ #category : #tests } +JavaSmaCCReturnTest >> testReturnVariableName [ + self + assert: (fastModel allWithType: FASTJavaReturnStatement) anyOne expression name + equals: 'i' ] diff --git a/src/FAST-Java-SmaCC-Importer/JavaSmaCCProgramNodeImporterVisitor.class.st b/src/FAST-Java-SmaCC-Importer/JavaSmaCCProgramNodeImporterVisitor.class.st index 0142112..38cdd19 100644 --- a/src/FAST-Java-SmaCC-Importer/JavaSmaCCProgramNodeImporterVisitor.class.st +++ b/src/FAST-Java-SmaCC-Importer/JavaSmaCCProgramNodeImporterVisitor.class.st @@ -1121,12 +1121,10 @@ JavaSmaCCProgramNodeImporterVisitor >> visitQualifiedTypeName: aQualifiedTypeNam { #category : #visitor } JavaSmaCCProgramNodeImporterVisitor >> visitReturnStatement: aReturnStatement [ - currentFASTEntity := self addToModel: FASTJavaReturnStatement new. - self setStartEndPos: aReturnStatement. - (aReturnStatement expression isKindOf: JavaNameNode) - ifTrue: - [ "If the element is named. It is more than propably an Identifier and not just an named element. So you pass over the normal rules of the importer" currentFASTEntity expression: (self addToModel: (self clone visitIdentifier: aReturnStatement expression)) ] - ifFalse: [ aReturnStatement expression ifNotNil: [ :expression | currentFASTEntity expression: (self clone accept: expression) ] ]. + currentFASTEntity := self create: FASTJavaReturnStatement from: aReturnStatement. + + currentFASTEntity expression: (self clone accept: aReturnStatement expression). + ^ currentFASTEntity ] diff --git a/src/FAST-Java-Tools-Tests/FASTJavaExportVisitorTest.class.st b/src/FAST-Java-Tools-Tests/FASTJavaExportVisitorTest.class.st index 3289a27..6a8950a 100644 --- a/src/FAST-Java-Tools-Tests/FASTJavaExportVisitorTest.class.st +++ b/src/FAST-Java-Tools-Tests/FASTJavaExportVisitorTest.class.st @@ -97,8 +97,6 @@ FASTJavaExportVisitorTest >> testVisitFASTEmptyReturn [ FASTJavaExportVisitorTest >> testVisitFASTEmptyReturnAttributeAccess [ | ast | - - self skip: 'need work, skipping to let CI pass'. ast := self methodAST: 'void mth() { return a.b; }'.