From 6c3785004cb7a296bd475202e233e8f8061103c6 Mon Sep 17 00:00:00 2001 From: Softonik Date: Thu, 8 Feb 2024 22:36:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D1=86=D0=B5=D0=BD=D0=B0=D1=80=D0=B8?= =?UTF-8?q?=D0=B9:=20=D0=A1=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80?= =?UTF-8?q?=D0=B0=20=D1=81=20=D0=BE=D0=B1=D1=8A=D1=8F=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=D0=BC=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D1=85-=D1=83=D0=BA=D0=B0=D0=B7=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D0=B5=D0=B9=20=D0=B8=20=D0=BE=D0=B1=D1=8B=D1=87?= =?UTF-8?q?=D0=BD=D1=8B=D0=BC=20Go=20=D0=BA=D0=BE=D0=BD=D1=81=D1=82=D1=80?= =?UTF-8?q?=D1=83=D0=BA=D1=82=D0=BE=D1=80=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/features/app.feature | 35 ++++++++++++++++++++++++++++++++ pkg/service/func.go | 3 +++ 2 files changed, 38 insertions(+) diff --git a/pkg/service/features/app.feature b/pkg/service/features/app.feature index 58371bf..266e920 100644 --- a/pkg/service/features/app.feature +++ b/pkg/service/features/app.feature @@ -262,4 +262,39 @@ device *dev1,*dev2; void main() { dev1=new device(); } +``` + + Сценарий: Структура с объявлением переменных-указателей и обычным Go конструктором + * Исходник: +``` +package test + +var ( + dev1, dev2 *Device +) + +type Device struct {} + +func NewDevice() *Device { + return &Device{} +} + +func main() { + dev1 = NewDevice() +} +``` + * Результат: +``` +class Device { +public: +}; +Device* NewDevice(); +void main(); +Device *dev1,*dev2; +Device* NewDevice() { +return new Device(); +} +void main() { +dev1=NewDevice(); +} ``` diff --git a/pkg/service/func.go b/pkg/service/func.go index 4bfd40a..fc00abd 100644 --- a/pkg/service/func.go +++ b/pkg/service/func.go @@ -83,6 +83,9 @@ func handleFuncDeclType(t *ast.FuncType) string { switch ft := fl.List[0].Type.(type) { case *ast.Ident: code += handleIdentExpr(ft) + case *ast.StarExpr: + code += handleStarExpr(ft) + code += "*" } return code