浏览代码

fix for array vars

Nicolas Cannasse 11 年之前
父节点
当前提交
e9dabdb941
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      hxsl/Checker.hx

+ 6 - 1
hxsl/Checker.hx

@@ -504,7 +504,12 @@ class Checker {
 	function makeVarType( t : Type, parent : TVar, pos : Position ) {
 	function makeVarType( t : Type, parent : TVar, pos : Position ) {
 		switch( t ) {
 		switch( t ) {
 		case TStruct(vl):
 		case TStruct(vl):
-			return TStruct([for( v in vl ) makeVar({ type : v.type, qualifiers : v.qualifiers, name : v.name, kind : v.kind, expr : null },pos,parent)]);
+			// mutate to allow TArray to access previously declared vars
+			for( i in 0...vl.length ) {
+				var v = vl[i];
+				vl[i] = makeVar( { type : v.type, qualifiers : v.qualifiers, name : v.name, kind : v.kind, expr : null }, pos, parent);
+			}
+			return t;
 		case TArray(t, size):
 		case TArray(t, size):
 			var s = switch( size ) {
 			var s = switch( size ) {
 			case SConst(_): size;
 			case SConst(_): size;