override public object Clone() { GenericTypeDefinitionReference clone = new GenericTypeDefinitionReference(); clone._lexicalInfo = _lexicalInfo; clone._endSourceLocation = _endSourceLocation; clone._documentation = _documentation; clone._isSynthetic = _isSynthetic; clone._entity = _entity; if (_annotations != null) { clone._annotations = (Hashtable)_annotations.Clone(); } clone._isPointer = _isPointer; clone._name = _name; clone._genericPlaceholders = _genericPlaceholders; return(clone); }
override public object Clone() { GenericTypeDefinitionReference clone = (GenericTypeDefinitionReference)FormatterServices.GetUninitializedObject(typeof(GenericTypeDefinitionReference)); clone._lexicalInfo = _lexicalInfo; clone._endSourceLocation = _endSourceLocation; clone._documentation = _documentation; clone._entity = _entity; if (_annotations != null) { clone._annotations = (Hashtable)_annotations.Clone(); } clone._isPointer = _isPointer; clone._name = _name; clone._genericPlaceholders = _genericPlaceholders; return(clone); }
public override void OnGenericTypeDefinitionReference(GenericTypeDefinitionReference node) { CheckName(node,node.Name); }
protected TypeReference type_reference() //throws RecognitionException, TokenStreamException { TypeReference tr; tr = null; IToken id = null; TypeReferenceCollection arguments = null; GenericTypeDefinitionReference gtdr = null; try { // for error handling { switch ( LA(1) ) { case SPLICE_BEGIN: { tr=splice_type_reference(); break; } case LPAREN: { tr=array_type_reference(); break; } default: bool synPredMatched251 = false; if (((LA(1)==CALLABLE) && (LA(2)==LPAREN))) { int _m251 = mark(); synPredMatched251 = true; inputState.guessing++; try { { match(CALLABLE); match(LPAREN); } } catch (RecognitionException) { synPredMatched251 = false; } rewind(_m251); inputState.guessing--; } if ( synPredMatched251 ) { { tr=callable_type_reference(); } } else if ((tokenSet_43_.member(LA(1))) && (tokenSet_44_.member(LA(2)))) { { id=type_name(); { if ((LA(1)==LBRACK) && (tokenSet_45_.member(LA(2)))) { { match(LBRACK); { switch ( LA(1) ) { case OF: { match(OF); break; } case CALLABLE: case CHAR: case THEN: case LPAREN: case ID: case MULTIPLY: case SPLICE_BEGIN: { break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } { switch ( LA(1) ) { case MULTIPLY: { { match(MULTIPLY); if (0==inputState.guessing) { gtdr = new GenericTypeDefinitionReference(ToLexicalInfo(id)); gtdr.Name = id.getText(); gtdr.GenericPlaceholders = 1; tr = gtdr; } { // ( ... )* for (;;) { if ((LA(1)==COMMA)) { match(COMMA); match(MULTIPLY); if (0==inputState.guessing) { gtdr.GenericPlaceholders++; } } else { goto _loop260_breakloop; } } _loop260_breakloop: ; } // ( ... )* match(RBRACK); } break; } case CALLABLE: case CHAR: case THEN: case LPAREN: case ID: case SPLICE_BEGIN: { { if (0==inputState.guessing) { GenericTypeReference gtr = new GenericTypeReference(ToLexicalInfo(id), id.getText()); arguments = gtr.GenericArguments; tr = gtr; } type_reference_list(arguments); match(RBRACK); } break; } default: { throw new NoViableAltException(LT(1), getFilename()); } } } } } else if ((LA(1)==OF) && (LA(2)==MULTIPLY)) { { match(OF); match(MULTIPLY); if (0==inputState.guessing) { gtdr = new GenericTypeDefinitionReference(ToLexicalInfo(id)); gtdr.Name = id.getText(); gtdr.GenericPlaceholders = 1; tr = gtdr; } } } else if ((LA(1)==OF) && (tokenSet_46_.member(LA(2)))) { { match(OF); tr=type_reference(); if (0==inputState.guessing) { GenericTypeReference gtr = new GenericTypeReference(ToLexicalInfo(id), id.getText()); gtr.GenericArguments.Add(tr); tr = gtr; } } } else if ((tokenSet_44_.member(LA(1))) && (tokenSet_15_.member(LA(2)))) { if (0==inputState.guessing) { SimpleTypeReference str = new SimpleTypeReference(ToLexicalInfo(id)); str.Name = id.getText(); tr = str; } } else { throw new NoViableAltException(LT(1), getFilename()); } } { if ((LA(1)==NULLABLE_SUFFIX) && (tokenSet_44_.member(LA(2)))) { match(NULLABLE_SUFFIX); if (0==inputState.guessing) { GenericTypeReference ntr = new GenericTypeReference(tr.LexicalInfo, "System.Nullable"); ntr.GenericArguments.Add(tr); tr = ntr; } } else if ((tokenSet_44_.member(LA(1))) && (tokenSet_15_.member(LA(2)))) { } else { throw new NoViableAltException(LT(1), getFilename()); } } } } else { throw new NoViableAltException(LT(1), getFilename()); } break; } } { // ( ... )* for (;;) { if ((LA(1)==MULTIPLY) && (tokenSet_44_.member(LA(2)))) { match(MULTIPLY); if (0==inputState.guessing) { tr = CodeFactory.EnumerableTypeReferenceFor(tr); } } else if ((LA(1)==EXPONENTIATION) && (tokenSet_44_.member(LA(2)))) { match(EXPONENTIATION); if (0==inputState.guessing) { tr = CodeFactory.EnumerableTypeReferenceFor(CodeFactory.EnumerableTypeReferenceFor(tr)); } } else { goto _loop266_breakloop; } } _loop266_breakloop: ; } // ( ... )* } catch (RecognitionException ex) { if (0 == inputState.guessing) { reportError(ex, "type_reference"); recover(ex,tokenSet_44_); } else { throw ex; } } return tr; }
public override void OnGenericTypeDefinitionReference(GenericTypeDefinitionReference node) { NameResolutionService.ResolveSimpleTypeReference(node); }
override public object Clone() { GenericTypeDefinitionReference clone = new GenericTypeDefinitionReference(); clone._lexicalInfo = _lexicalInfo; clone._endSourceLocation = _endSourceLocation; clone._documentation = _documentation; clone._isSynthetic = _isSynthetic; clone._entity = _entity; if (_annotations != null) clone._annotations = (Hashtable)_annotations.Clone(); clone._isPointer = _isPointer; clone._name = _name; clone._genericPlaceholders = _genericPlaceholders; return clone; }
public override void OnGenericTypeDefinitionReference(GenericTypeDefinitionReference node) { OnSimpleTypeReference(node); Write("[of *"); for (int i = 1; i < node.GenericPlaceholders; i++) { Write(", *"); } Write("]"); }