代码提示优化
This commit is contained in:
parent
0332c944fe
commit
9d6627d33f
@ -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
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user