Mercurial > projects > ddmd
diff dmd/SliceExp.d @ 72:2e2a5c3f943a
reduced warnings by adding override to the methods
think this also normalizes different line endings used all over the place
author | Trass3r |
---|---|
date | Sat, 28 Aug 2010 16:19:48 +0200 |
parents | 4290d870944a |
children | be2ab491772e |
line wrap: on
line diff
--- a/dmd/SliceExp.d Sat Aug 28 16:14:07 2010 +0200 +++ b/dmd/SliceExp.d Sat Aug 28 16:19:48 2010 +0200 @@ -1,13 +1,13 @@ -module dmd.SliceExp; - -import dmd.Expression; -import dmd.expression.ArrayLength; -import dmd.backend.elem; -import dmd.UnaExp; -import dmd.Identifier; -import dmd.IdentifierExp; -import dmd.ArrayExp; -import dmd.STC; +module dmd.SliceExp; + +import dmd.Expression; +import dmd.expression.ArrayLength; +import dmd.backend.elem; +import dmd.UnaExp; +import dmd.Identifier; +import dmd.IdentifierExp; +import dmd.ArrayExp; +import dmd.STC; import dmd.InterState; import dmd.ScopeDsymbol; import dmd.WANT; @@ -22,21 +22,21 @@ import dmd.TypeClass; import dmd.TY; import dmd.Type; -import dmd.AggregateDeclaration; -import dmd.OutBuffer; -import dmd.Loc; -import dmd.Scope; -import dmd.InlineCostState; +import dmd.AggregateDeclaration; +import dmd.OutBuffer; +import dmd.Loc; +import dmd.Scope; +import dmd.InlineCostState; import dmd.VarDeclaration; import dmd.ErrorExp; import dmd.TypeExp; import dmd.Argument; -import dmd.ExpInitializer; -import dmd.IRState; -import dmd.InlineDoState; -import dmd.ArrayTypes; -import dmd.HdrGenState; -import dmd.InlineScanState; +import dmd.ExpInitializer; +import dmd.IRState; +import dmd.InlineDoState; +import dmd.ArrayTypes; +import dmd.HdrGenState; +import dmd.InlineScanState; import dmd.TOK; import dmd.TypeSArray; import dmd.GlobalExpressions; @@ -52,8 +52,8 @@ import dmd.backend.TYM; import dmd.codegen.Util; -import core.stdc.string; - +import core.stdc.string; + class SliceExp : UnaExp { Expression upr; // null if implicit 0 @@ -62,26 +62,26 @@ VarDeclaration lengthVar = null; this(Loc loc, Expression e1, Expression lwr, Expression upr) - { + { super(loc, TOK.TOKslice, SliceExp.sizeof, e1); this.upr = upr; this.lwr = lwr; } - Expression syntaxCopy() + override Expression syntaxCopy() { - Expression lwr = null; - if (this.lwr) - lwr = this.lwr.syntaxCopy(); - - Expression upr = null; - if (this.upr) - upr = this.upr.syntaxCopy(); - + Expression lwr = null; + if (this.lwr) + lwr = this.lwr.syntaxCopy(); + + Expression upr = null; + if (this.upr) + upr = this.upr.syntaxCopy(); + return new SliceExp(loc, e1.syntaxCopy(), lwr, upr); } - Expression semantic(Scope sc) + override Expression semantic(Scope sc) { Expression e; AggregateDeclaration ad; @@ -260,29 +260,29 @@ return e; } - void checkEscape() + override void checkEscape() { e1.checkEscape(); } version (DMDV2) { - int isLvalue() + override int isLvalue() { return 1; } } - Expression toLvalue(Scope sc, Expression e) + override Expression toLvalue(Scope sc, Expression e) { return this; } - Expression modifiableLvalue(Scope sc, Expression e) + override Expression modifiableLvalue(Scope sc, Expression e) { error("slice expression %s is not a modifiable lvalue", toChars()); return this; } - void toCBuffer(OutBuffer buf, HdrGenState* hgs) + override void toCBuffer(OutBuffer buf, HdrGenState* hgs) { expToCBuffer(buf, hgs, e1, precedence[op]); buf.writeByte('['); @@ -301,7 +301,7 @@ buf.writeByte(']'); } - Expression optimize(int result) + override Expression optimize(int result) { Expression e; @@ -329,54 +329,54 @@ return e; } - Expression interpret(InterState istate) + override Expression interpret(InterState istate) { - Expression e; - Expression e1; - Expression lwr; - Expression upr; - -version (LOG) { - printf("SliceExp.interpret() %s\n", toChars()); -} - e1 = this.e1.interpret(istate); - if (e1 is EXP_CANT_INTERPRET) - goto Lcant; - if (!this.lwr) - { - e = e1.castTo(null, type); - return e.interpret(istate); - } - - /* Set the $ variable - */ - e = ArrayLength(Type.tsize_t, e1); - if (e is EXP_CANT_INTERPRET) - goto Lcant; - if (lengthVar) - lengthVar.value = e; - - /* Evaluate lower and upper bounds of slice - */ - lwr = this.lwr.interpret(istate); - if (lwr is EXP_CANT_INTERPRET) - goto Lcant; - upr = this.upr.interpret(istate); - if (upr is EXP_CANT_INTERPRET) - goto Lcant; - - return Slice(type, e1, lwr, upr); - - Lcant: + Expression e; + Expression e1; + Expression lwr; + Expression upr; + +version (LOG) { + printf("SliceExp.interpret() %s\n", toChars()); +} + e1 = this.e1.interpret(istate); + if (e1 is EXP_CANT_INTERPRET) + goto Lcant; + if (!this.lwr) + { + e = e1.castTo(null, type); + return e.interpret(istate); + } + + /* Set the $ variable + */ + e = ArrayLength(Type.tsize_t, e1); + if (e is EXP_CANT_INTERPRET) + goto Lcant; + if (lengthVar) + lengthVar.value = e; + + /* Evaluate lower and upper bounds of slice + */ + lwr = this.lwr.interpret(istate); + if (lwr is EXP_CANT_INTERPRET) + goto Lcant; + upr = this.upr.interpret(istate); + if (upr is EXP_CANT_INTERPRET) + goto Lcant; + + return Slice(type, e1, lwr, upr); + + Lcant: return EXP_CANT_INTERPRET; } - void dump(int indent) + override void dump(int indent) { assert(false); } - elem* toElem(IRState* irs) + override elem* toElem(IRState* irs) { elem* e; Type t1; @@ -487,41 +487,41 @@ return e; } - void scanForNestedRef(Scope sc) + override void scanForNestedRef(Scope sc) { - e1.scanForNestedRef(sc); - - if (lengthVar) - { - //printf("lengthVar\n"); - lengthVar.parent = sc.parent; - } - if (lwr) - lwr.scanForNestedRef(sc); - if (upr) + e1.scanForNestedRef(sc); + + if (lengthVar) + { + //printf("lengthVar\n"); + lengthVar.parent = sc.parent; + } + if (lwr) + lwr.scanForNestedRef(sc); + if (upr) upr.scanForNestedRef(sc); } - void buildArrayIdent(OutBuffer buf, Expressions arguments) + override void buildArrayIdent(OutBuffer buf, Expressions arguments) { - buf.writestring("Slice"); + buf.writestring("Slice"); arguments.shift(cast(void*)this); } - Expression buildArrayLoop(Arguments fparams) + override Expression buildArrayLoop(Arguments fparams) { - Identifier id = Identifier.generateId("p", fparams.dim); - Argument param = new Argument(STCconst, type, id, null); - fparams.shift(cast(void*)param); - Expression e = new IdentifierExp(Loc(0), id); - Expressions arguments = new Expressions(); - Expression index = new IdentifierExp(Loc(0), Id.p); - arguments.push(cast(void*)index); - e = new ArrayExp(Loc(0), e, arguments); + Identifier id = Identifier.generateId("p", fparams.dim); + Argument param = new Argument(STCconst, type, id, null); + fparams.shift(cast(void*)param); + Expression e = new IdentifierExp(Loc(0), id); + Expressions arguments = new Expressions(); + Expression index = new IdentifierExp(Loc(0), Id.p); + arguments.push(cast(void*)index); + e = new ArrayExp(Loc(0), e, arguments); return e; } - int inlineCost(InlineCostState* ics) + override int inlineCost(InlineCostState* ics) { int cost = 1 + e1.inlineCost(ics); if (lwr) @@ -531,7 +531,7 @@ return cost; } - Expression doInline(InlineDoState ids) + override Expression doInline(InlineDoState ids) { SliceExp are = cast(SliceExp)copy(); @@ -574,7 +574,7 @@ return are; } - Expression inlineScan(InlineScanState* iss) + override Expression inlineScan(InlineScanState* iss) { e1 = e1.inlineScan(iss); if (lwr)