Добавлены типы функций в объявлениях и определениях

Этот коммит содержится в:
Softonik 2022-11-22 02:29:03 +03:00 коммит произвёл Nikolay Kopitonenko
родитель a46d19130e
коммит f92c01d1a7
2 изменённых файлов: 32 добавлений и 9 удалений

Просмотреть файл

@ -311,9 +311,6 @@ func handleFuncDecl(decl ast.Decl) string {
fp := handleFuncDeclParams(fd.Type)
code += fp
if ft == "" {
ft = "int"
}
addFunctionDeclaration(ft + " " + name + "(" + fp + ");")
code += ") {"
@ -417,8 +414,19 @@ func handleFuncDeclName(ident *ast.Ident) string {
func handleFuncDeclType(t *ast.FuncType) string {
code := ""
if t.Results == nil {
code = "void"
return "void"
}
fl := t.Results
if fl.NumFields() == 0 {
panic("handleFuncDeclType: fl.NumFields() == 0")
}
switch ft := fl.List[0].Type.(type) {
case *ast.Ident:
code += handleIdent(ft)
}
return code
}

Просмотреть файл

@ -283,7 +283,7 @@ var _ = Describe("Go Translator", func() {
void foo() {
foo2();
}
foo2() {
int foo2() {
return 0;
}
`
@ -708,7 +708,7 @@ var _ = Describe("Go Translator", func() {
void setup() {}
void loop() {
}
MyFunction() {
int MyFunction() {
}
`
Compare(source, expected)
@ -731,7 +731,7 @@ var _ = Describe("Go Translator", func() {
void setup() {}
void loop() {
}
MyFunction() {
int MyFunction() {
return 0;
}
`
@ -755,7 +755,7 @@ var _ = Describe("Go Translator", func() {
void setup() {}
void loop() {
}
MyFunction() {
int MyFunction() {
return -1;
}
`
@ -781,12 +781,27 @@ var _ = Describe("Go Translator", func() {
void loop() {
int x = MyFunction();
}
MyFunction() {
int MyFunction() {
return 0;
}
`
Compare(source, expected)
})
It("Объявление bool функции с return false", func() {
source := `package test
func MyFunction() bool {
return false
}
`
expected := `
bool MyFunction();
bool MyFunction() {
return false;
}
`
Compare(source, expected)
})
})
Describe("Циклы", func() {