From 19d0ae31ce549ccd93bdbfe6edfac50bf6da8fcc Mon Sep 17 00:00:00 2001 From: Gabriel-Darbord Date: Sat, 27 Jun 2026 21:37:08 +0200 Subject: [PATCH] Cover compiler error notice compatibility Co-authored-by: Codex --- ...haroCompatibilityP13SurfacePharo12Test.class.st | 13 +++++++++++++ ...haroCompatibilityP13SurfacePharo14Test.class.st | 14 ++++++++++++++ .../OCCodeError.extension.st | 14 ++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 src/PharoCompatibility-Pharo13Surface-Pharo14/OCCodeError.extension.st diff --git a/src/PharoCompatibility-Pharo13Surface-Pharo12-Tests/PharoCompatibilityP13SurfacePharo12Test.class.st b/src/PharoCompatibility-Pharo13Surface-Pharo12-Tests/PharoCompatibilityP13SurfacePharo12Test.class.st index d08a81c..130a828 100644 --- a/src/PharoCompatibility-Pharo13Surface-Pharo12-Tests/PharoCompatibilityP13SurfacePharo12Test.class.st +++ b/src/PharoCompatibility-Pharo13Surface-Pharo12-Tests/PharoCompatibilityP13SurfacePharo12Test.class.st @@ -50,6 +50,19 @@ PharoCompatibilityP13SurfacePharo12Test >> testSyntaxErrorNoticeClassName [ equals: #RBSyntaxErrorNotice ] +{ #category : 'tests' } +PharoCompatibilityP13SurfacePharo12Test >> testUndeclaredVariableNodeFromCompileWarning [ + + | node | + [ Object + compile: 'pharoCompatibilityBrokenMethod ^ missingCompatibilityVariable' ] + on: Exception + do: [ :error | + node := PharoCompatibility undeclaredVariableNodeFromException: error ]. + self assert: node notNil. + self assert: node name equals: #missingCompatibilityVariable +] + { #category : 'tests' } PharoCompatibilityP13SurfacePharo12Test >> testWithNonInteractiveAuthorUsesAuthorWhenNoAuthorIsConfigured [ diff --git a/src/PharoCompatibility-Pharo13Surface-Pharo14-Tests/PharoCompatibilityP13SurfacePharo14Test.class.st b/src/PharoCompatibility-Pharo13Surface-Pharo14-Tests/PharoCompatibilityP13SurfacePharo14Test.class.st index f9d60d1..cc7c33a 100644 --- a/src/PharoCompatibility-Pharo13Surface-Pharo14-Tests/PharoCompatibilityP13SurfacePharo14Test.class.st +++ b/src/PharoCompatibility-Pharo13Surface-Pharo14-Tests/PharoCompatibilityP13SurfacePharo14Test.class.st @@ -114,6 +114,20 @@ PharoCompatibilityP13SurfacePharo14Test >> testSyntaxErrorNoticeClassName [ equals: #OCSyntaxErrorNotice ] +{ #category : 'tests' } +PharoCompatibilityP13SurfacePharo14Test >> testSyntaxNoticeFromCodeError [ + + | compiler notice | + compiler := SmalltalkImage current compiler. + compiler compilationContext isScripting: true. + [ compiler evaluate: '1 +' ] + on: Exception + do: [ :error | + notice := PharoCompatibility syntaxNoticeFromException: error ]. + self assert: notice notNil. + self assert: notice class name equals: #OCSyntaxErrorNotice +] + { #category : 'tests' } PharoCompatibilityP13SurfacePharo14Test >> testUndeclaredVariableNodeFromCompilationError [ diff --git a/src/PharoCompatibility-Pharo13Surface-Pharo14/OCCodeError.extension.st b/src/PharoCompatibility-Pharo13Surface-Pharo14/OCCodeError.extension.st new file mode 100644 index 0000000..6d3c207 --- /dev/null +++ b/src/PharoCompatibility-Pharo13Surface-Pharo14/OCCodeError.extension.st @@ -0,0 +1,14 @@ +Extension { #name : 'OCCodeError' } + +{ #category : '*PharoCompatibility-Pharo13Surface-Pharo14' } +OCCodeError >> pharoCompatibilitySyntaxNotice [ + + ^ self notice +] + +{ #category : '*PharoCompatibility-Pharo13Surface-Pharo14' } +OCCodeError >> pharoCompatibilityUndeclaredVariableNode [ + + ^ self notice ifNotNil: [ :syntaxNotice | + syntaxNotice pharoCompatibilityUndeclaredVariableNode ] +]