This commit is contained in:
Бондарев Иван 2017-12-31 12:50:43 +01:00
parent 7894e3d4f5
commit 4afa3edafe
2 changed files with 19 additions and 1 deletions

View file

@ -4652,12 +4652,19 @@ namespace CodeCompletion
public override void visit(name_assign_expr _name_assign_expr) // SSM 27.06.13
{
returned_scope = null;
if (_name_assign_expr.expr == null)
_name_assign_expr.expr = new ident(_name_assign_expr.name.name);
_name_assign_expr.expr.visit(this);
if (returned_scope != null)
{
ElementScope es = new ElementScope(new SymInfo(_name_assign_expr.name.name, SymbolKind.Property, ""), returned_scope, cur_scope);
cur_scope.AddName(_name_assign_expr.name.name, es);
}
else
{
ElementScope es = new ElementScope(new SymInfo(_name_assign_expr.name.name, SymbolKind.Property, ""), new UnknownScope(new SymInfo("",SymbolKind.Type,"")), cur_scope);
cur_scope.AddName(_name_assign_expr.name.name, es);
}
}
public override void visit(name_assign_expr_list _name_assign_expr_list) // SSM 27.06.13
{
@ -4668,7 +4675,7 @@ namespace CodeCompletion
{
SymScope tmp = cur_scope;
TypeScope ts = null;
cur_scope = ts = new TypeScope(SymbolKind.Class, entry_scope, null);
cur_scope = ts = new TypeScope(SymbolKind.Class, cur_scope, null);
tmp.AddName("class", cur_scope);
ts.loc = get_location(_unnamed_type_object);
ts.si = new SymInfo("class", SymbolKind.Class, "");

View file

@ -0,0 +1,11 @@
type
MyClass = class
a, b, c: integer;
obj := new class(d := 'r', a, b{@property class.b: integer;@}, c);
end;
Begin
var x := new MyClass;
x.obj.b{@property class.b: integer;@} := 2;
var x2{@var x2: class;@} := new class(x);
x2.x{@property class.x: MyClass;@} := nil;
End.