فهرست منبع

Fixed const access from new object expr. Fixes #242.

woollybah 8 سال پیش
والد
کامیت
08dc66f32b
1فایلهای تغییر یافته به همراه9 افزوده شده و 3 حذف شده
  1. 9 3
      expr.bmx

+ 9 - 3
expr.bmx

@@ -920,10 +920,10 @@ Type TNewObjectExpr Extends TExpr
 				
 				' find other member decl (field, etc)
 				If Not errorDetails Then
-					Local decl:TVarDecl = TVarDecl(cdecl.GetDecl(id))
-					If decl Then
+					Local decl:TValDecl = TValDecl(cdecl.GetDecl(id))
+					If TVarDecl(decl) Then
 						Local tmp:TLocalDecl=New TLocalDecl.Create( "", eType, expr,, True )
-						Local varExpr:TExpr = New TMemberVarExpr.Create(New TVarExpr.Create( tmp ), decl).Semant()
+						Local varExpr:TExpr = New TMemberVarExpr.Create(New TVarExpr.Create( tmp ), TVarDecl(decl)).Semant()
 						expr = New TStmtExpr.Create( New TDeclStmt.Create( tmp ), varExpr ).Semant()
 						eType = decl.ty
 						If TObjectType(eType) Then
@@ -934,6 +934,12 @@ Type TNewObjectExpr Extends TExpr
 						End If
 						Continue
 					End If
+					If TConstDecl(decl) Then
+						decl.Semant()
+						expr = New TConstExpr.Create(decl.ty, TConstDecl(decl).value).Semant()
+						eType = decl.ty
+						Continue
+					End If
 				End If	
 
 				' didn't match member or function??