代码提示优化

This commit is contained in:
mxd 2021-12-20 20:54:27 +08:00
parent 0332c944fe
commit 9d6627d33f
2 changed files with 10 additions and 4 deletions

View File

@ -424,10 +424,11 @@ class Import extends Node {
}
class VarDefine extends Node {
constructor(span, varName, expression) {
constructor(span, varName, expression, defineType) {
super(span)
this.varName = varName;
this.expression = expression;
this.defineType = defineType
}
getVarName() {
@ -439,7 +440,12 @@ class VarDefine extends Node {
}
async getJavaType(env) {
let type = await this.expression.getJavaType(env);
let type = 'java.lang.Object'
if(this.defineType){
type = env[this.defineType] || type
}else if(this.expression){
type = await this.expression.getJavaType(env);
}
env[this.varName] = type
return type
}

View File

@ -339,9 +339,9 @@ export class Parser {
this.checkKeyword(token.getSpan());
let varDefine;
if (this.stream.match(TokenType.Assignment, true)) {
varDefine = new VarDefine(new Span(opening, this.stream.getPrev().getSpan()), token.getText(), this.parseExpression());
varDefine = new VarDefine(new Span(opening, this.stream.getPrev().getSpan()), token.getText(), this.parseExpression(), opening.getText());
} else {
varDefine = new VarDefine(new Span(opening, this.stream.getPrev().getSpan()), token.getText(), null);
varDefine = new VarDefine(new Span(opening, this.stream.getPrev().getSpan()), token.getText(), null, opening.getText());
}
return varDefine;
}