2008 (Intellipad 사용) 다음 코드는 잘 컴파일 :오슬로 오류 설명 "M0197 : '텍스트'유형 컨텍스트에서 사용할 수 없습니다?" 마이크로 소프트 오슬로 SDK CTP에서
module M {
type T {
Text : Text;
}
}
아래의 코드를 컴파일하면 오류 "M0197 : 타입 컨텍스트에서 사용할 수 없습니다 '텍스트'"리드하면서
을module M {
type T {
Text : Text;
Value : Text; // error
}
}
첫 번째 경우와 마찬가지로 텍스트가 유형 컨텍스트에서 사용되는 것과 같이 예제간에 차이점이 표시되지 않습니다.
UPDATE :
필드를 선언 어휘 오버라이드 (override) :
이module M { type X; type T { X : X; Y : X; } }
M 언어 사양한다고 :
도 잘 컴파일 다음의 예를 고려 혼란에 추가하려면 범위 선언은 선언 자체에 대한 바인딩 선언의 유형을 방지합니다. 필드 선언의 유형은 선언 자체가 아니어야합니다. 그러나 선언문은 제약 조건에서 사용될 수 있습니다. 다음 예제를 고려하십시오.
유형 A; 유형 B { A : A; }
필드 선언의 형식 ascription에 대한 어휘를 둘러싸는 범위는 엔티티 선언 B입니다. 예외없이 유형 ascription A는 오류 인 순환 참조의 필드 선언에 바인딩됩니다. 이 경우에는 어휘 검색에서 필드 선언을 건너 뛸 수 있습니다.
사용자 정의 유형과 내장 (내장) 유형은 동일하게 취급되지 않는 것 같습니다.
UPDATE2 : 위의 예에서 값이 예약 된 키워드 아니라고
가참고. 값을에서 Y으로 변경하면 같은 오류가 발생합니다.
아이디어가 있으십니까?
Text : Text
을 한 다음 값의 유형을 위해 그것을 사용하려고 : 나는 당신이 Text
재정의 한보고있는 무슨에서
질문에 대답하는 "Oslo"포럼에 대한 링크. –