找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 118|回复: 4

[BUG提交] 调试报告:函数声明返回值使用非基础模块模板类解析错误

[复制链接]

6

主题

5

回帖

125

积分

注册会员

积分
125
QQ
发表于 2024-9-22 13:09:36 | 显示全部楼层 |阅读模式
本帖最后由 bestkakkoii 于 2024-9-23 15:42 编辑


# 调试报告:函数声明返回值使用非基础模块模板类解析错误

## 1. 问题描述

在炫语言中,当函数声明的返回值使用任何"非基础模块"的模板类时,IDE 总是无法正确解析该返回类型,并显示"解析错误"的提示。然而,使用基础类型 `动态数组<T>` 作为返回值时不会出现此问题。

### 1.1 具体症状

- 所有使用非基础模块模板类作为返回值类型的函数声明都会触发 IDE 的"解析错误"提示。
- 例如,在声明 `def CXXVector<float> test()` 时,`CXXVector<float>` 部分必定无法被正确解析。
- 使用基础类型 `动态数组<T>` 作为返回值时不会出现解析错误。

### 1.2 环境信息

- 编程语言:炫语言
- 开发环境:使用支持炫语言的 IDE

## 2. 问题复现步骤

1. 准备环境:
   - 设置支持炫语言的 IDE
   - 确保项目中包含至少一个非基础模块的模板类(如 `CXXVector`)

2. 创建测试代码:
   - 在炫语言文件中,声明一个使用非基础模块模板类作为返回类型的函数:

     ```
     def CXXVector<float> test():
         # 函数体内容
         pass
     ```

3. 观察 IDE 反应:
   - 查看 `CXXVector<float>` 部分的语法高亮和提示
   - 确认 IDE 显示"解析错误"或类似的警告

4. 验证问题的普遍性:
   - 使用其他非基础模块的模板类作为返回类型,观察是否一致地出现相同问题
   - 尝试不同的模板参数类型,确认问题与具体的参数类型无关

5. 对比基础类型:
   - 声明一个使用基础类型 `动态数组<T>` 作为返回值的函数,例如:
     ```
     def 动态数组<int> standard_test():
         # 函数体内容
         pass
     ```
   - 确认使用 `动态数组<T>` 作为返回类型时不会出现解析错误

## 3. 补充说明

- 此问题普遍存在于所有使用非基础模块模板类作为返回值类型的函数声明中。
- 问题仅影响函数声明中的返回值类型,不影响函数体内的类型使用。
- 基础类型 `动态数组<T>` 不受此问题影响,可以正常解析。
- 这是一个 IDE 解析问题,需要确认是否也影响实际的编译过程。

18

主题

43

回帖

254

积分

中级会员

积分
254
发表于 2024-9-22 15:11:58 | 显示全部楼层
你试试
def CXXVector test()

6

主题

5

回帖

125

积分

注册会员

积分
125
QQ
 楼主| 发表于 2024-9-23 09:31:22 | 显示全部楼层
C@iNi@o 发表于 2024-9-22 15:11
你试试
def CXXVector test()

这样C++语法翻译就不对了

18

主题

43

回帖

254

积分

中级会员

积分
254
发表于 2024-9-24 12:42:51 | 显示全部楼层
我意思你函数定义的返回值用CXXVector
实际函数return CXXVector<float>
接受函数返回值也用CXXVector<float>
炫语言的IDE目前对基础模块的支持是可以的,但是第三方模块总会因为数据类型而出现各种问题
期待后续能逐步完善

6

主题

5

回帖

125

积分

注册会员

积分
125
QQ
 楼主| 发表于 2024-9-25 11:47:18 | 显示全部楼层
C@iNi@o 发表于 2024-9-24 12:42
我意思你函数定义的返回值用CXXVector
实际函数return CXXVector
接受函数返回值也用CXXVector

那这就是属于BUG,不能用不正常的方法去适应,这样小白会以为 就应该这样写才是对的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|炫语言 | 炫彩界面库 | 用户所需, 正是我所做! ( 鄂ICP备2023014763号-1 )

GMT+8, 2024-11-21 17:15 , Processed in 0.071971 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表