View Issue Details

IDProjectCategoryView StatusLast Update
0035920LazarusIDEpublic2020-04-15 13:40
ReporterSergey Bychkow Assigned ToMattias Gaertner  
Status assignedResolutionopen 
Product Version2.0.2 
Summary0035920: Codetools fail to find declaration of any symbol with darwin objc extensions
DescriptionIf project contains units with objectivec extensions enabled, or project has compiler option "-Mobjectivec2", then any correct declaration for compiler can still be incorrect for codetools when Alt+Up is pressed.
See screenshot attached.
Additional InformationThe project on the screenshot doesn't even use LCL, so this is pure codetools problem.
TagsNo tags attached.
Fixed in Revision
Attached Files


Sergey Bychkow

2019-08-01 17:02


1-codetools-error-objc.png (7,645 bytes)   
1-codetools-error-objc.png (7,645 bytes)   

Juha Manninen

2020-04-15 10:49

developer   ~0122156

I think this is solved already. Dmitry please verify.

Dmitry Boyarintsev

2020-04-15 13:39

developer   ~0122159

the screenshot is made based on Windows, not macOS.

and under Windows Codetools breaks, if {modeswitch objectivec2} is declared in a unit. (I've tested trunk)
(the reason for it to break is a hidden FPC unit "objc" goes blank, and some of the declarations needed for objc are missing)

Obviously, if the project is cross-platform (runs on macOS and Windows) it might cause some problems.
It's however easy to fix, by taking "modeswitch objectivec2" into conditional complication clause:

{$ifdef darwin}
{$modeswitch objectivec2}

However, it won't help, with "-Mobjectivec2" is used. CodeTools on Windows will break.

Issue History

Date Modified Username Field Change
2019-08-01 17:02 Sergey Bychkow New Issue
2019-08-01 17:02 Sergey Bychkow File Added: 1-codetools-error-objc.png
2019-08-01 18:46 Mattias Gaertner Assigned To => Mattias Gaertner
2019-08-01 18:46 Mattias Gaertner Status new => assigned
2020-04-15 10:48 Juha Manninen Assigned To Mattias Gaertner => Dmitry Boyarintsev
2020-04-15 10:49 Juha Manninen Note Added: 0122156
2020-04-15 13:39 Dmitry Boyarintsev Note Added: 0122159
2020-04-15 13:39 Dmitry Boyarintsev Assigned To Dmitry Boyarintsev =>
2020-04-15 13:39 Dmitry Boyarintsev Status assigned => new
2020-04-15 13:39 Dmitry Boyarintsev LazTarget => -
2020-04-15 13:40 Dmitry Boyarintsev Assigned To => Mattias Gaertner
2020-04-15 13:40 Dmitry Boyarintsev Status new => assigned