@@ -295,7 +295,7 @@ private void CheckBaseTypeGenericKind(ref bool hasExtendSelf, INamedTypeSymbol t
295295 }
296296 }
297297
298- private LuaSpeaicalGenericType CheckSpeaicalGenericArgument ( INamedTypeSymbol typeSymbol ) {
298+ private LuaSpeaicalGenericType CheckSpecialGenericArgument ( INamedTypeSymbol typeSymbol ) {
299299 var interfaceType = typeSymbol . AllInterfaces . FirstOrDefault ( i => i . IsGenericIEnumerableType ( ) ) ;
300300 if ( interfaceType != null ) {
301301 bool isBaseImplementation = typeSymbol . BaseType != null && typeSymbol . BaseType . AllInterfaces . Any ( i => i . IsGenericIEnumerableType ( ) ) ;
@@ -362,7 +362,7 @@ private void BuildBaseTypes(INamedTypeSymbol typeSymbol, LuaTypeDeclarationSynta
362362 if ( typeSymbol . IsRecordType ( ) ) {
363363 baseTypes . Add ( GetRecordInterfaceTypeName ( typeSymbol ) ) ;
364364 }
365- var genericArgument = CheckSpeaicalGenericArgument ( typeSymbol ) ;
365+ var genericArgument = CheckSpecialGenericArgument ( typeSymbol ) ;
366366 var baseCopyFields = GetBaseCopyFields ( types . FirstOrDefault ( ) ) ;
367367 typeDeclaration . AddBaseTypes ( baseTypes , genericArgument , baseCopyFields ) ;
368368 if ( hasExtendSelf && ! generator_ . IsExplicitStaticCtorExists ( typeSymbol ) ) {
@@ -600,8 +600,8 @@ public override LuaSyntaxNode VisitDelegateDeclaration(DelegateDeclarationSyntax
600600 }
601601
602602 private void VisitYield ( IMethodSymbol symbol , LuaFunctionExpressionSyntax function ) {
603- var retrurnTypeSymbol = ( INamedTypeSymbol ) symbol . ReturnType ;
604- string name = LuaSyntaxNode . Tokens . Yield + retrurnTypeSymbol . Name ;
603+ var returnTypeSymbol = ( INamedTypeSymbol ) symbol . ReturnType ;
604+ string name = LuaSyntaxNode . Tokens . Yield + returnTypeSymbol . Name ;
605605 var invokeExpression = LuaIdentifierNameSyntax . System . MemberAccess ( name ) . Invocation ( ) ;
606606 var wrapFunction = new LuaFunctionExpressionSyntax ( ) ;
607607 if ( symbol . IsAsync ) {
@@ -612,8 +612,8 @@ private void VisitYield(IMethodSymbol symbol, LuaFunctionExpressionSyntax functi
612612 wrapFunction . ParameterList . Parameters . AddRange ( parameters ) ;
613613 wrapFunction . AddStatements ( function . Body . Statements ) ;
614614 invokeExpression . AddArgument ( wrapFunction ) ;
615- if ( retrurnTypeSymbol . IsGenericType ) {
616- var typeName = retrurnTypeSymbol . TypeArguments . First ( ) ;
615+ if ( returnTypeSymbol . IsGenericType ) {
616+ var typeName = returnTypeSymbol . TypeArguments . First ( ) ;
617617 var expression = GetTypeName ( typeName ) ;
618618 invokeExpression . AddArgument ( expression ) ;
619619 } else {
@@ -3480,11 +3480,11 @@ public override LuaSyntaxNode VisitVariableDeclaration(VariableDeclarationSyntax
34803480 public override LuaSyntaxNode VisitVariableDeclarator ( VariableDeclaratorSyntax node ) {
34813481 LuaIdentifierNameSyntax identifier = node . Identifier . ValueText ;
34823482 CheckLocalVariableName ( ref identifier , node ) ;
3483- var variableDeclarator = new LuaVariableDeclaratorSyntax ( identifier ) ;
3483+ var variable = new LuaVariableDeclaratorSyntax ( identifier ) ;
34843484 if ( node . Initializer != null ) {
3485- variableDeclarator . Initializer = node . Initializer . Accept < LuaEqualsValueClauseSyntax > ( this ) ;
3485+ variable . Initializer = node . Initializer . Accept < LuaEqualsValueClauseSyntax > ( this ) ;
34863486 }
3487- return variableDeclarator ;
3487+ return variable ;
34883488 }
34893489
34903490 public override LuaSyntaxNode VisitEqualsValueClause ( EqualsValueClauseSyntax node ) {
@@ -3890,7 +3890,7 @@ public override LuaSyntaxNode VisitBreakStatement(BreakStatementSyntax node) {
38903890 private LuaExpressionSyntax BuildEnumToStringExpression ( ITypeSymbol typeInfo , bool isNullable , LuaExpressionSyntax original , ExpressionSyntax node ) {
38913891 if ( original is LuaLiteralExpressionSyntax ) {
38923892 var symbol = semanticModel_ . GetSymbolInfo ( node ) . Symbol ;
3893- return new LuaConstLiteralExpression ( new LuaStringLiteralExpressionSyntax ( symbol . Name ) , typeInfo . ToString ( ) ) ;
3893+ return new LuaConstLiteralExpression ( new LuaStringLiteralExpressionSyntax ( symbol ! . Name ) , typeInfo . ToString ( ) ) ;
38943894 }
38953895
38963896 AddExportEnum ( typeInfo ) ;
@@ -4436,11 +4436,11 @@ private bool IsSingleLineUnary(ExpressionSyntax node) {
44364436 return false ;
44374437 }
44384438
4439- private void ChecktIncrementExpression ( ExpressionSyntax operand , ref LuaExpressionSyntax expression , bool isAddOrAssignment ) {
4439+ private void CheckIncrementExpression ( ExpressionSyntax operand , ref LuaExpressionSyntax expression , bool isAddOrAssignment ) {
44404440 var symbol = semanticModel_ . GetTypeInfo ( operand ) . Type ;
44414441 if ( ! symbol . IsNumberType ( ) ) {
4442- var op_Implicits = symbol . GetMembers ( "op_Implicit" ) . OfType < IMethodSymbol > ( ) ;
4443- var methodSymbol = op_Implicits . FirstOrDefault ( i => isAddOrAssignment ? i . ReturnType . IsIntegerType ( ) : i . ReturnType . EQ ( symbol ) ) ;
4442+ var method = symbol . GetMembers ( "op_Implicit" ) . OfType < IMethodSymbol > ( ) ;
4443+ var methodSymbol = method . FirstOrDefault ( i => isAddOrAssignment ? i . ReturnType . IsIntegerType ( ) : i . ReturnType . EQ ( symbol ) ) ;
44444444 if ( methodSymbol != null ) {
44454445 expression = BuildConversionExpression ( methodSymbol , expression ) ;
44464446 }
@@ -4449,9 +4449,9 @@ private void ChecktIncrementExpression(ExpressionSyntax operand, ref LuaExpressi
44494449
44504450 private LuaSyntaxNode BuildPrefixUnaryExpression ( bool isSingleLine , string operatorToken , LuaExpressionSyntax operand , PrefixUnaryExpressionSyntax node , bool isLocalVar = false ) {
44514451 var left = operand ;
4452- ChecktIncrementExpression ( node . Operand , ref left , true ) ;
4452+ CheckIncrementExpression ( node . Operand , ref left , true ) ;
44534453 LuaExpressionSyntax binary = left . Binary ( operatorToken , LuaIdentifierNameSyntax . One ) ;
4454- ChecktIncrementExpression ( node . Operand , ref binary , false ) ;
4454+ CheckIncrementExpression ( node . Operand , ref binary , false ) ;
44554455 if ( isSingleLine ) {
44564456 return operand . Assignment ( binary ) ;
44574457 } else {
@@ -4470,9 +4470,9 @@ private LuaSyntaxNode BuildPrefixUnaryExpression(bool isSingleLine, string opera
44704470 private LuaSyntaxNode BuildPropertyPrefixUnaryExpression ( bool isSingleLine , string operatorToken , LuaPropertyAdapterExpressionSyntax get , LuaPropertyAdapterExpressionSyntax set , PrefixUnaryExpressionSyntax node ) {
44714471 set . IsGetOrAdd = false ;
44724472 LuaExpressionSyntax left = get ;
4473- ChecktIncrementExpression ( node . Operand , ref left , true ) ;
4473+ CheckIncrementExpression ( node . Operand , ref left , true ) ;
44744474 LuaExpressionSyntax binary = left . Binary ( operatorToken , LuaIdentifierNameSyntax . One ) ;
4475- ChecktIncrementExpression ( node . Operand , ref binary , false ) ;
4475+ CheckIncrementExpression ( node . Operand , ref binary , false ) ;
44764476 if ( isSingleLine ) {
44774477 set . ArgumentList . AddArgument ( binary ) ;
44784478 return set ;
@@ -4615,17 +4615,17 @@ public override LuaSyntaxNode VisitPrefixUnaryExpression(PrefixUnaryExpressionSy
46154615 private LuaSyntaxNode BuildPostfixUnaryExpression ( bool isSingleLine , string operatorToken , LuaExpressionSyntax operand , PostfixUnaryExpressionSyntax node ) {
46164616 if ( isSingleLine ) {
46174617 var left = operand ;
4618- ChecktIncrementExpression ( node . Operand , ref left , true ) ;
4618+ CheckIncrementExpression ( node . Operand , ref left , true ) ;
46194619 LuaExpressionSyntax binary = left . Binary ( operatorToken , LuaIdentifierNameSyntax . One ) ;
4620- ChecktIncrementExpression ( node . Operand , ref binary , false ) ;
4620+ CheckIncrementExpression ( node . Operand , ref binary , false ) ;
46214621 return operand . Assignment ( binary ) ;
46224622 } else {
46234623 var temp = GetTempIdentifier ( ) ;
46244624 CurBlock . Statements . Add ( new LuaLocalVariableDeclaratorSyntax ( temp , operand ) ) ;
46254625 LuaExpressionSyntax left = temp ;
4626- ChecktIncrementExpression ( node . Operand , ref left , true ) ;
4626+ CheckIncrementExpression ( node . Operand , ref left , true ) ;
46274627 LuaExpressionSyntax binary = left . Binary ( operatorToken , LuaIdentifierNameSyntax . One ) ;
4628- ChecktIncrementExpression ( node . Operand , ref binary , false ) ;
4628+ CheckIncrementExpression ( node . Operand , ref binary , false ) ;
46294629 CurBlock . Statements . Add ( operand . Assignment ( binary ) ) ;
46304630 return temp ;
46314631 }
@@ -4635,18 +4635,18 @@ private LuaSyntaxNode BuildPropertyPostfixUnaryExpression(bool isSingleLine, str
46354635 set . IsGetOrAdd = false ;
46364636 if ( isSingleLine ) {
46374637 LuaExpressionSyntax left = get ;
4638- ChecktIncrementExpression ( node . Operand , ref left , true ) ;
4638+ CheckIncrementExpression ( node . Operand , ref left , true ) ;
46394639 LuaExpressionSyntax binary = left . Binary ( operatorToken , LuaIdentifierNameSyntax . One ) ;
4640- ChecktIncrementExpression ( node . Operand , ref binary , false ) ;
4640+ CheckIncrementExpression ( node . Operand , ref binary , false ) ;
46414641 set . ArgumentList . AddArgument ( binary ) ;
46424642 return set ;
46434643 } else {
46444644 var temp = GetTempIdentifier ( ) ;
46454645 CurBlock . Statements . Add ( new LuaLocalVariableDeclaratorSyntax ( temp , get ) ) ;
46464646 LuaExpressionSyntax left = temp ;
4647- ChecktIncrementExpression ( node . Operand , ref left , true ) ;
4647+ CheckIncrementExpression ( node . Operand , ref left , true ) ;
46484648 LuaExpressionSyntax binary = left . Binary ( operatorToken , LuaIdentifierNameSyntax . One ) ;
4649- ChecktIncrementExpression ( node . Operand , ref binary , false ) ;
4649+ CheckIncrementExpression ( node . Operand , ref binary , false ) ;
46504650 set . ArgumentList . AddArgument ( binary ) ;
46514651 CurBlock . AddStatement ( set ) ;
46524652 return temp ;
@@ -4841,15 +4841,15 @@ public override LuaSyntaxNode VisitDoStatement(DoStatementSyntax node) {
48414841 }
48424842
48434843 public override LuaSyntaxNode VisitYieldStatement ( YieldStatementSyntax node ) {
4844- var curMehod = CurMethodInfoOrNull ;
4845- curMehod . HasYield = true ;
4844+ var curMethod = CurMethodInfoOrNull ;
4845+ curMethod . HasYield = true ;
48464846 if ( node . IsKind ( SyntaxKind . YieldBreakStatement ) ) {
48474847 return new LuaReturnStatementSyntax ( ) ;
48484848 } else {
48494849 string yieldToken = node . YieldKeyword . ValueText ;
48504850 var expression = node . Expression . AcceptExpression ( this ) ;
48514851 LuaExpressionSyntax targetMethod ;
4852- if ( curMehod . Symbol . IsAsync ) {
4852+ if ( curMethod . Symbol . IsAsync ) {
48534853 targetMethod = LuaIdentifierNameSyntax . Async . MemberAccess ( yieldToken , true ) ;
48544854 } else {
48554855 targetMethod = LuaIdentifierNameSyntax . System . MemberAccess ( yieldToken ) ;
@@ -5005,10 +5005,10 @@ private LuaExpressionSyntax BuildEnumAndNumberCastExpression(LuaExpressionSyntax
50055005 }
50065006
50075007 private LuaExpressionSyntax BuildNullableCastExpression ( LuaExpressionSyntax expression , ITypeSymbol originalType , ITypeSymbol targetType ) {
5008- var targetNullableElemetType = targetType . NullableElemetType ( ) ;
5009- var originalNullableElemetType = originalType . NullableElemetType ( ) ;
5010- if ( targetNullableElemetType != null ) {
5011- if ( originalNullableElemetType != null ) {
5008+ var targetNullableElementType = targetType . NullableElemetType ( ) ;
5009+ var originalNullableElementType = originalType . NullableElemetType ( ) ;
5010+ if ( targetNullableElementType != null ) {
5011+ if ( originalNullableElementType != null ) {
50125012 bool isIdentifier = false ;
50135013 LuaIdentifierNameSyntax identifier ;
50145014 if ( expression is LuaIdentifierNameSyntax identifierName ) {
@@ -5017,7 +5017,7 @@ private LuaExpressionSyntax BuildNullableCastExpression(LuaExpressionSyntax expr
50175017 } else {
50185018 identifier = GetTempIdentifier ( ) ;
50195019 }
5020- var castExpression = BuildEnumAndNumberCastExpression ( identifier , originalNullableElemetType , targetNullableElemetType ) ;
5020+ var castExpression = BuildEnumAndNumberCastExpression ( identifier , originalNullableElementType , targetNullableElementType ) ;
50215021 if ( castExpression != null ) {
50225022 if ( castExpression == identifier ) {
50235023 return expression ;
@@ -5028,12 +5028,12 @@ private LuaExpressionSyntax BuildNullableCastExpression(LuaExpressionSyntax expr
50285028 return identifier . And ( castExpression ) ;
50295029 }
50305030 } else {
5031- return BuildEnumAndNumberCastExpression ( expression , originalType , targetNullableElemetType ) ;
5031+ return BuildEnumAndNumberCastExpression ( expression , originalType , targetNullableElementType ) ;
50325032 }
5033- } else if ( originalNullableElemetType != null ) {
5033+ } else if ( originalNullableElementType != null ) {
50345034 var explicitMethod = ( IMethodSymbol ) originalType . GetMembers ( "op_Explicit" ) . First ( ) ;
50355035 expression = BuildConversionExpression ( explicitMethod , expression ) ;
5036- return BuildEnumAndNumberCastExpression ( expression , originalNullableElemetType , targetType ) ;
5036+ return BuildEnumAndNumberCastExpression ( expression , originalNullableElementType , targetType ) ;
50375037 }
50385038 return null ;
50395039 }
@@ -5045,6 +5045,7 @@ public override LuaSyntaxNode VisitCastExpression(CastExpressionSyntax node) {
50455045 }
50465046
50475047 var targetType = semanticModel_ . GetTypeInfo ( node . Type ) . Type ;
5048+ Contract . Assert ( targetType != null ) ;
50485049 var expression = node . Expression . AcceptExpression ( this ) ;
50495050 if ( targetType . SpecialType == SpecialType . System_Object || targetType . Kind == SymbolKind . DynamicType ) {
50505051 return expression ;
0 commit comments